4.13 Seldom used keywords

$\triangleright $ variable ordering_active

Meaning: Switch on the biasing of variation operators by local order parameters.

Default: 1


1 : ordering_active

$\triangleright $ variable symmetrize

Meaning: Switches on a transformation of all structures to standard symmetry-adapted crystallographic settings.

Default: 0


1 : symmetrize

$\triangleright $ variable valenceElectr

Meaning: Number of valence electrons for each type of atoms.

Default: these numbers are constants for all atoms, and we have tabulated them, no need to specify explicitly.


% valenceElectr
2 6
% EndValenceElectr

$\triangleright $ variable percSliceShift

Meaning: Probability of shifting slabs (used in heredity) in all dimensions, 1.0 means 100%.

Default: 1.0


0.5 : percSliceShift

$\triangleright $ variable dynamicalBestHM


Specifies whether the number of surviving best structures will vary during the calculation, with keepBestHM as the upper limit.

Possible values (integer): 0 = no variation, 1 and 2 = see note

Default: 2


1 : dynamicalBestHM

Note: If you set dynamicalBestHM=1, the code will choose up to keepBestHM lowest-energy structures (without duplicate structures, which are defined as having fingerprint distance below user-defined toleranceBestHM). If dynamicalBestHM=2 (our preferred choice), then clustering algorithm selects exactly keepBestHM maximally different structures in the entire energy interval corresponding to bestFrac, and optimum toleranceBestHM is determined automatically — this promotes diversity while retaining memory of good structures.

$\triangleright $ variable softMutOnly

Meaning: How many generations should be produced by softmutation only.

Default: 0


% softMutOnly
% EndSoftOnly

Note: In the example above, the generations up to 5$^{th}$ generation (excluding, of course, the first generation) are produced by softmutation alone. Note that upon softmutation, each parent produces TWO softmutants. You can also specify particular generations to be softmutated throughout the run, for example to softmutate every 10$^{th}$ generation you can write:

% softMutOnly 
2 12 22 32 42
% EndSoftOnly

$\triangleright $ variable maxDistHeredity

Meaning: Specifies the maximal cosine distances between structures that participate in heredity. This specifies the radius on the landscape within which structures can mate. Use with care (or do not use at all).

Default: 0.5


0.5 : maxDistHeredity

$\triangleright $ variable manyParents

Meaning: Specifies whether more than two slices (or more than two parent structures) should be used for heredity. This may be beneficial for very large systems.

Possible values (integer):

0 — only 2 parents are used, 1 slice each.

1 — many structures are used as parents, 1 slice each.

2 — two structures are used as parents, many slices (determined dynamically using parameters minSlice and maxSlice) are chosen independently from each one.

3 — two structures are used as parents, many slices (determined dynamically using parameters minSlice and maxSlice) are cut from the cell with a fixed offset. This is the preferred option for large systems. For example, we cut both structures into slices of approximately the same thickness and then choose the even slices from parent 1 and odd slices form parent 2, making a multilayered “sandwich”, or a “zebra”.

Default: 0


3 : manyParents

minSlice, maxSlice: Determines the minimal and maximal thickness of the slices in $\text {\r{A}}$ that will be cut out of the parent structures to participate in creation of the child structure. We want the slices to be thick enough to carry some information about the parent (but not too thick to make heredity ineffective). Reasonable values for these parameters are around 1 and 6 $\text {\r{A}}$, respectively.

For clusters, you can directly specify the number of parents participating in heredity (but we found this to be of little use):

$\triangleright $ variable numberparents

Meaning: Defines the number of parents in heredity for clusters.

Default: 2


2 : numberparents