To switch on the variable-composition mode, you have to:
Specify 301 or 311 or 201 : calculationType.
Specify compositional building blocks in numSpecies (see the description of numSpecies variable).
Optionally specify the approximate atomic volumes for each atom type (or for each compositional block) using keyblock Latticevalues. However, we recommend relying on their default values, built into the program.
Specify the following options that are applicable only for variable-composition runs::
variable firstGeneMax
Meaning: How many different compositions are sampled in the first generation. If 0, then the number is equal to initialPopSize/4. For binaries, we recommend firstGeneMax=11, for ternaries a higher value is needed, e.g. 30.
Default: 11
Format:
10 : firstGeneMax
variable minAt
Meaning: Minimum number of atoms (for calculationType=301/201/300) or molecules (for calculationType=311) in the primitive unit cell for the first generation.
Default: No default
Format:
10 : minAt
variable maxAt
Meaning: Maximum number of atoms (for calculationType=301/201/300 or in META calculations) or molecules (for calculationType=311) in the primitive unit cell for the first generation. Note: minAt and maxAt should not differ by more than 2-3 times.
Default: No default
Format:
20 : maxAt
variable fracTrans
Meaning: Percentage of structures obtained by transmutation. In this operator, a randomly selected atom is transmuted into another chemical species present in the system — the new chemical identity is chosen randomly by default.
Default: 0.1
Format:
0.1 : fracTrans
variable howManyTrans
Meaning: Maximum percentage of atoms in the structure that are being transmuted (0.1 = 10%). The fraction of atoms that will be transmuted is drawn randomly from a homogeneous distribution bounded from 0 to the fractional parameter howManyTrans.
Default: 0.2
Format:
0.2 : howManyTrans
In the case of variable-composition runs, parameter keepBestHM takes a new meaning — all structures on the convex hull (i.e., thermodynamically stable states of the multicomponent system) survive, along with a few metastable states closest to the convex hull — the total number is keepBestHM. Also, parameter stopCrit has a new meaning in variable-composition calculations: its value (we recommend to set stopCrit=20 in variable-composition runs) indicates the maximum number of generations during which a structure can appear as a parent of new structures.
For variable-composition runs, it is particularly important to set up the first generation wisely. Choose a suitably large initial population size initialPopSize. Choose a reasonably large number of different compositions firstGeneMax to be sampled in the first generation (but not too large — each composition needs to be sampled several times at least). Finally, minAt and maxAt should not differ by more than 2 times, and you may need a few calculations with different system sizes: e.g., 4–8, 8–16, 16–30 atoms, etc.
An additional comment for VASP users — if you want to perform a variable-composition run, let’s say for the Na-Cl system, you should make sure the atomic types are given correctly in INPUT.txt, and put pseudopotential files POTCAR_Na and POTCAR_Cl in the folder /StructurePrediction/Specific/. USPEX will then recognize each atom and take each atom’s POTCAR file appropriately for the calculations. Convex hull in Fig. 9 show stable sodium chlorides discovered using USPEX and confirmed by experiment 26.