*variable* `symmetries`

*Meaning*: Possible space groups for crystals, plane groups for 2D crystals/surfaces, or point groups for clusters. A certain number of structures will be produced using randomly selected groups from this list, using randomly generated lattice parameters and atomic coordinates. During this process special Wyckoff sites can be produced from general positions (Fig. 6).

*Default*:

For 3D crystals: 2-230

For 2D crystals/surfaces: 2-17

For clusters: E C2 D2 C4 C3 C6 T S2 Ch1 Cv2 S4 S6 Ch3 Th Ch2 Dh2 Ch4 D3 Ch6 O D4 Cv3 D6 Td Cv4 Dd3 Cv6 Oh Dd2 Dh3 Dh4 Dh6 Oh C5 S5 S10 Cv5 Ch5 D5 Dd5 Dh5 I Ih

*Format*:

`% symmetries 195-198 200 215-230 % EndSymmetries`

*variable* `fracGene`

*Meaning*: Percentage of structures obtained by heredity; 0.1 means 10%, *etc*.

*Default*: `0.5`

*Format*:

`0.5 : fracGene`

*variable* `fracRand`

*Meaning*: Fraction of the generation produced randomly from the space groups specified by the user.

*Default*: `0.2`

*Format*:

`0.20 : fracRand`

*variable* `fracPerm`

*Meaning*: Percentage of structures obtained by permutation; 0.1 means 10%, *etc.*

*Default*: `0.1 if there is more than one type of atom/molecule; 0 otherwise.`

*Format*:

`0.1 : fracPerm`

*variable* `fracAtomsMut`

*Meaning*: Specifies the percentage of structures obtained by softmutation or coormutation.

*Default*: `0.1`

*Format*:

`0.1 : fracAtomsMut`

**Note:** You can use softmutation or coormutation by specifying `softMutTill`.

*variable* `fracRotMut`

*Meaning*: Percentage of structures obtained mutating molecular orientations; 0.1 means 10%, *etc.*

*Default*: `0.1 for molecular crystals; 0 otherwise.`

*Format*:

`0.1 : fracRotMut`

*variable* `fracLatMut`

*Meaning*: Percentage of structures obtained from lattice mutations; 0.1 means 10%, *etc.*

*Default*: `0 for fixed cell prediction; 0.1 otherwise.`

*Format*:

`0.1 : fracLatMut`

**Note: If the sum of all the fractions ( fracGene + fracRand + fracPerm + …) is not equal to 1, they will be rescaled.**

*variable* `howManySwaps`

*Meaning*: For permutation, the number of pairwise swaps will be randomly drawn from a uniform distribution between 1 and `howManySwaps`.

*Default*: `0.5(maximum number of possible swaps). If atoms and , and atoms and are swappable, then the total number of possible swaps is , and the default for howManySwaps is . In most cases, it is a good idea to rely on this default.`

*Format*:

`5 : howManySwaps`

*variable* `specificSwaps`

*Meaning*: Specifies which atom types you allow to swap in permutation.

*Default*: `blank line, which means no specific swaps and all atoms are permutable.`

*Format*:

`% specificSwaps 1 2 % EndSpecific`

**Note:** In this case, atoms of type 1 could be swapped with atoms of type 2. If you want to try all possible swaps, just leave a blank line inside this keyblock, or delete the block.

*variable* `mutationDegree`

*Meaning*: The maximum displacement in softmutation in . The displacement vectors for softmutation or coormutation are scaled so that the largest displacement magnitude equals `mutationDegree`.

*Default*: `3(average atomic radius)`

*Format*:

`2.5 : mutationDegree`

*variable* `mutationRate`

*Meaning*: Standard deviation of the epsilons in the strain matrix for lattice mutation. The strain matrix components are selected randomly from the Gaussian distribution and are only allowed to take values between -1 and 1. Lattice mutation essentially incorporates the ideas of metadynamics into our method ^{6; 22}, where new structures are found by building up cell distortions of some known structure. Unlike in metadynamics, the distortions are not accumulated in our method, so the strain components should be large to obtain new structures.

*Default*: `0.5`

*Format*:

`0.5 : mutationRate`

It is a good idea to combine lattice mutation with a weak softmutation:

*variable* `DisplaceInLatmutation`

*Meaning*: Specifies softmutation as part of lattice mutation and sets the maximum displacement in .

*Default*: `1.0`

*Format*:

`1.0 : DisplaceInLatmutation`

*variable* `AutoFrac`

*Meaning*: Enables automatic evolution of variation operators (parameter control), which speeds up the calculation by up to 2 times. To switch to user defined variation operators, set `AutoFrac`=0.

*Default*: `0`

*Format*:

`1 : AutoFrac`