4.1 Type of run and system

$\triangleright $ variable calculationMethod

Meaning: Specifies the method of calculation

Possible values (characters):

Default: USPEX


USPEX : calculationMethod

$\triangleright $ variable calculationType

Meaning: Specifies type of calculation, i.e., whether the structure of a bulk crystal, nanoparticle, or surface is to be predicted. This variable consists of three indices: dimensionality, molecularity and compositional variability:

Default: 300


301 : calculationType

Note: If calculationType=310, i.e., a prediction for a molecular crystal is to be performed, then USPEX expects you to provide files MOL_1, MOL_2, …with molecular geometries for all types of molecules, and these molecules will be placed in the newly generated structures as whole objects. Available options: 300, 301, 310, 000, 200, 201, –200 (and not yet released: 110, 311).

$\triangleright $ variable optType

Meaning: This variable allows you to specify the property that you want to optimize.

Possible values (characters):






to find the stable phases



volume minimization


(to find the densest structure)



hardness maximization


(to find the hardest phase)



maximization of the degree of order


(to find the most ordered structure)



maximization of average structural differences within a





maximization of the static dielectric susceptibility


(only for VASP and GULP)



maximization of the band gap


(only for VASP)



maximization of electrical energy storage capacity


(only for VASP)



maximization of the magnetization


(only for VASP)



maximization of structural quasientropy

Elasticity-related properties (“11**”):




K, Bulk Modulus


maximization of bulk modulus

G, Shear Modulus


maximization of shear modulus

E, Young’s Modulus


maximization of Young’s modulus

v, Poisson’s ratio


maximization of Poisson’s ratio

G/K, Pugh’s modulus ratio


maximization of Pugh’s modulus ratio

Hv, Vickers hardness


maximization of Vickers hardness

Kg, Fracture toughness


maximization of fracture toughness

D, Debye temperature


maximization of Debye temperature

Vm, sound velocity


maximization of sound velocity

S-wave velocity


maximization of S-wave velocity

P-wave velocity


maximization of P-wave velocity

Note: Elasticity-related properties are supported only for VASP (starting from VASP 5.1) and GULP. For VASP users, you need to add one more INCAR_* file to the Specific/ folder with the parameters IBRION=6, ISIF$\geq $3 and NFREE=4. The estimates of bulk, shear and Young’s moduli are the Voigh-Reuss-Hill (VRH) averages. The Vickers hardness is calculated with the Chen-Niu model 19. Fracture toughness optimization uses the lowest theoretical fracture toughness as fitness.

Default: enthalpy


enthalpy : optType


(1) If you want to do the opposite optimization, add a minus sign. For instance, to minimize the static dielectric constant, put “-diel_sus”.

(2) If optType=gap or diel_gap, instead of the gap we use an extended function that also behaves continuously for metals — namely, $\Delta E_ g - g(E_ F)/N$, where $\Delta E_ g$ is the gap, $g(E_ F)$ is the density of states at the Fermi level (for metals) and $N$ is the number of atoms in the unit cell. Thanks to the continuity of this function, global maximization of gap-related quantities can even be performed for metallic solutions. For metals it is equal to the DOS at the Fermi level, for semiconductors and insulators — to the band gap.

Fig. 5 gives an example of hardness maximization for TiO$_2$ (optType=hardness), showing maximum possible hardness $\sim $14 GPa 20 and refuting claims of Dubrovinsky (2001) about ultrahardness of TiO$_2$ 21. A good example of how a simple USPEX run can resolve a long-standing dispute.

Figure 5: Predictions of the hardest structure of TiO$_2$.

Now, you need to specify what you know about the system.

$\triangleright $ variable atomType

Meaning: Describes the identities of each type of atom.

Default: none, must specify explicitly


If you prefer to use the atomic numbers from Mendeleev’s Periodic Table of the Elements, specify:

% atomType
12 14 8
% EndAtomType

Or, if you prefer to use atomic names, specify:

% atomType
Mg Si O
% EndAtomType

You can alternatively specify the full names of the elements, for example:

% atomType
Magnesium Silicon Oxygen
% EndAtomType

$\triangleright $ variable numSpecies

Meaning: Describes the number of atoms of each type.

Default: none, must specify explicitly


% numSpecies
4 4 12
% EndNumSpecies

This means there are 4 atoms of the first type, 4 of the second type, and 12 of the third type.

Notes: For variable-composition calculations, you have to specify the compositional building blocks as follows:

% numSpecies
2 0 3
0 1 1
% EndNumSpecies

This means that the first building block has formula A$_2$C$_3$ and the second building block has formula BC, where A, B and C are described in the block atomType. All structures will then have the formula $x$A$_2$C$_3$ + $y$BC with $x$, $y$ = (0,1,2,…) — or A$_{2x}$B$_ y$C$_{3x+y}$. If you want to do prediction of all possible compositions in the A-B-C system, you should specify:

% numSpecies
1 0 0
0 1 0
0 0 1
% EndNumSpecies

You can also do fixed-composition calculations with a variable number of formula units; in this case set just one line (and calculationType=301), for example for compound A$_2$BC$_4$:

% numSpecies
2 1 4
% EndNumSpecies

$\triangleright $ variable ExternalPressure

Meaning: Specifies external pressure at which you want to find structures, in GPa.

Default: 0


100 : ExternalPressure

Note: As of USPEX 9.4.1 pressure value (in GPa) is set by the tag ExternalPressure in the INPUT.txt file. Please NO LONGER specify it in relaxation files in the Specific/ folder.

$\triangleright $ variable valences

Meaning: Describes the valences of each type of atom. Used only to evaluate bond hardnesses, which are used for computing the approximate dynamical matrix (for softmutation) and hardness of the crystal.

Default: USPEX has a table of default valences (see Appendix 9.8). Beware, however, that for some elements (e.g., N, S, W, Fe, Cr, etc.) many valence states are possible. Unless you calculate hardness, this is not a problem and you can use the default values. If you do calculate the hardness, you need to carefully specify the valence explicitly.


% valences
2 4 2
% EndValences

$\triangleright $ variable goodBonds

Meaning: Specifes, in the matrix form, the minimum bond valences for contacts that will be considered as important bonds. Like the IonDistances matrix (see below), this is a square matrix cast in an upper-triangular form. This is only used in calculations of hardness and in softmutation. One can estimate these values for a given bond type taking goodBonds=$\frac{valence}{max\_ coordination\_ number}$ or slightly smaller.

Default: USPEX can make a reasonable default estimation of goodBonds, you will see the values in OUTPUT.txt file. This should be sufficient for most purposes, but for hardness calculations you may need to carefully examine these values and perhaps set them manually. For more details, see Appendix 9.9


% goodBonds
10.0 10.0 0.2
0.0 10.0 0.5
0.0 0.0 10.0
% EndGoodBonds

Notes: The dimensions of this matrix must be equal to either the number of atomic species or unity. If only one number is used, the matrix is filled with this number. The matrix above reads as follows: to be considered a bond, the Mg–Mg distance should be short enough to have bond valence of 10 or more, the same for Mg–Si, Si–Si, and O–O bonds (by using such exclusive criteria, we effectively disregard these interactions from the softmutation and hardness calculations), whereas Mg–O bonds that will be considered for hardness and softmutation calculations will have a bond valence of 0.2 or more, and the Si–O bonds will have a bond valence of 0.5 or more.

$\triangleright $ variable checkMolecules

Meaning: Switches on/off post-relaxation check that original molecules (files MOL_1, MOL_2, …) are intact. Useful for molecular crystals (calculationType=310, 311).

Possible values (integer):

Default: 1


1 : checkMolecules

$\triangleright $ variable checkConnectivity

Meaning: Switches on/off hardness calculation and connectivity-related criteria in softmutation.

Possible values (integer):

Default: 0


1 : checkConnectivity