6. CALYPSO Manual

basic inputs and outputs

6.1. CALYPSO Inputs

the main input file named as input.dat, contains all necessary parameters for the structure prediction. the file consists of input tags that can be given in any order, or be omitted while the default values are used. below we offer a quick view of the syntax of the tags:

  1. the general syntax is tag labels = value1 value2 value3 ... for matrix input, it starts with @tag and ends with @end. values that are not specified in the input.dat file are assigned as default values. input values should be separated by space.

  2. the labels are case insensitive.

  3. all text following the “#” character is taken as comment.

  4. logical values can be given as t (or true), or f (or false).

below are brief descriptions on necessary input parameters.

6.1.1. Common parameters

6.1.1.1. systemname

systemname = string

A description string of the targeted system(max. 40 characters).

Default: calypso

6.1.1.2. numberofspecies

numberofspecies = integer

Number of different atomic (or chemical) species in the system.

For example, it is “2” for MgB2.

There is no default. you must define it.

6.1.1.3. nameofatoms

nameofatoms = string1 string2 string3 ...

Elemental symbols of each atomic species separated by space.

Taking MgB2 and MgB3 and MgSiO3 as examples, one writes “nameofatoms = Mg B” and “nameofatoms = Mg Si O”, respectively.

There is no default. you must define it.

6.1.1.4. numberofatoms

numberofatoms = integer1 integer2 integer3 ...

Number of atoms for each chemical species per formula unit.

Taking MgB2 and MgSiO3 as examples, one writes “numberofatoms = 1 2” and “numberofatoms = 1 1 3”, respectively.

There is no default. you must define it.

6.1.1.5. numberofformula

numberofformula = integer1 integer2

Defining the number of formula units in the simulation cell.

integer1 and integer2 are the minimal and maximal number of formula units used in the simulation cell, respectively.

If integer1 equals to integer2, then only single choice of formula unit will be adopted.

For example, “NumberOfFormula = 4 4” indicates one single run of 4 formula units in your simulation, while “NumberOfFormula = 1 4” indicates that four separate structure prediction runs for 1, 2, 3, and 4 formula units, respectively, will be performed.

Default: 1 4

6.1.1.6. Volume

Volume = real

The volume (in unit of angstrom^3) per formula unit.

If you cannot provide a good estimation on the volume, please use the default value. The program will automatically generate an estimated volume by using the ionic radii of given atoms.

Default: 0

6.1.1.7. @DistanceOfIon

@DistanceOfIon
real11   real12   real13   ...
real21   real22   real23   ...
real31   real32   real33   ...
...      ...      ...      ...
@End

Minimal interatomic distances (in unit of angstrom) in a format of nxn matrix.

The rank n of the matrix is determined by the “NumberOfSpecies. If we take MgB2 as an example with “NumberOfSpecies = 2”, the 2x2 matrix is defined as:

@DistanceOfIon
d_Mg_Mg   d_Mg_B
d_B_Mg    d_B_B
@End

Here, d_Mg_Mg and d_Mg_B define the minimal Mg-Mg and Mg-B distances, respectively, while d_B_Mg and d_B_B define the minimal B-Mg and B-B distances, respectively.

Default: 0.7

6.1.1.8. Ialgo

Ialgo = integer

Defines which PSO algorithm to be adopted in the simulation.

1

global PSO algorithm

2

local PSO algorithm

3

ABC algorithm with symmetry

Default: 2

6.1.1.9. ICode

ICode = integer

Defines which code to be used for local structure optimization during the structure prediction.

1

VASP

2

SIESTA

3

GULP

4

PWSCF

5

CASTEP

6

CP2K

7

Gaussian

8

DFTB+

9

LAMMPS

Default: 1

6.1.1.10. NumberOfLocalOptim

NumberOfLocalOptim = integer

Defines how many times a structure should be optimized once it is generated during structure prediction.

The reason why we optimize the structure by several times is because the generated structures are often far from their local minima. A single fine structure optimization typically leads to a non-converged calculation. Our tests indicated that three or four-steps optimizations of one structure are the best solution. During the course of these multiple optimizations, the optimization degree should increase gradually: coars->medium->fine. If one uses VASP for structure optimization, three or four input INCAR files should be therefore provided. The same multiple-optimization procedure applies also to the use of other optimization codes. More details can be found in examples.

Default: 4

6.1.1.11. PsoRatio

PsoRatio = real

Defines what percentage of the structures per generation should be produced by PSO.

The rest of structures will then be randomly generated with symmetry constraints.

Default: 0.6

6.1.1.12. PopSize

PopSize = integer

The population size, i.e., the total number of structures per generation.

Normally, a larger population size is needed for a larger system. Very large population size should be used for simulations of automatic variation of chemical compositions.

Default: 30

6.1.1.13. Kgrid (removed)

Warning

This argument is not working since v6.0. Please explicitly provide KSPACING in INCAR or KPOINTS file if you intend to use VASP.

Kgrid = real_1   real_2

The precision of the K-point sampling for local geometric optimization for VASP, Quantum-Esspresso and DFTB+ codes.

The Brillouin zone sampling uses a grid of spacing \(2\pi\cdot\text{Kgrid}\cdot\mathring{A}^{-1}\).

real_1 controls the precision of the first two or three local optimizations, and the real_2 with denser K-points controls the last optimization. The smaller value gives finer optimization results. Note that this setting of Kgrid is only applicable to the uses of VASP, DFTB+ and Quantum-Esspresso codes. For uses of other ab initio codes (e.g., CASTEP, CP2K, and Gaussian, etc.), please prepare appropriate Kgrid settings in their input files.

Default: 0.12 0.06

6.1.1.14. Command

Command = string

The command to submit structure optimization jobs in your computer.

Default value: submit.sh.

6.1.1.15. MaxStep

MaxStep = integer

The maximum number of generations to be executed for the entire structure prediction simulation.

Typically, a larger number of generations are needed for a larger system.

Default: 50

6.1.1.16. PickUp

PickUp = logical

If this variable is set as True, structure prediction will start from a specified generation (see PickStep) where a previous structure prediction job was unexpectedly interrupted.

Default: False

6.1.1.17. PickStep

PickStep = integer

At which generation the previously interrupted calculation should be re-started.

There is no default. If PickUp=True, you must define this variable.

6.1.1.18. MaxTime

MaxTime = integer

The running wall-time limit (in unit of seconds) of one single structure optimization.

If the optimization time goes beyond MaxTime, the current structure optimization will be terminated.

Default: 7200

6.1.1.19. LMC

LMC = logical

Determines whether the Metropolis criterion should be applied during the PSO structure evolution.

For cluster structure prediction, it is highly recommended to set this variable as “True”.

Default: False

6.1.2. Parameters for structural prediction of two-dimensional layers

Here are Detailed Examples

6.1.2.1. 2D

2D = logical

Switcher to perform of 2-dimensional layer structure prediction or not.

Default: False

6.1.2.2. LFilm

LFilm = logical

Switcher to perform of 2-dimensional thin film structure prediction

Default: False

6.1.2.3. Thickness

Thickness = real

The thickness of thin film (in unit of angstrom).

There is no default. You must supply this variable if switch LFilm on.

6.1.2.4. Area

Area = real

The area (in unit of angstrom^2) per formula unit.

If you cannot provide a good estimation on the area, please use the default value. The program will automatically generate an estimated area by using the ionic radii of given atoms.

Default: 0.0

6.1.2.5. MultiLayer

MultiLayer = integer

Defines the number of layers you would like to design.

Default: 1

6.1.2.6. DeltaZ

DeltaZ = real

The distortion value (in unit of angstrom) along the c direction, i.e., perpendicular to the a-b plane of the layer.

If this parameter is set to be zero, then a strict flat layer will be designed. Otherwise, a buckled layer is designed.

Default: 0.2

6.1.2.7. LayerGap

LayerGap = real

The gap between two layers, i.e., the inter-layer distance (in unit of angstrom).

If this parameter is set as zero, then one single layer will be designed.

Default: 5.0

6.1.2.8. VacuumGap

VacuumGap = real

Defines the separations (in unit of angstrom) between the designed single layer (or multi-layers) and its nearest-neighboring periodic images.

This value should be large enough to ensure that interactions between the designed layer and its nearest-neighboring periodic images are negligible.

Default: 10.0

6.1.2.9. @LayerType

@LayerType
integer11 integer12 integer13 ...
integer21 integer22 integer23 ...
@End

Design of multi-layers materials with desirable compositions in a format of m×n matrix.

The row (m) and column (n) ranks of the matrix are determined by the “MultiLayer” and “NumberOfSpecies”, respectively. For each row (i.e., each layer), the matrix column values are defined as the number of atoms for each chemical species as listed in the “NameOfAtoms”.

We take the design of double layers of B-C-N materials as an example. Here we have

MultiLayer      = 2
NumberOfSpecies = 3
NameOfAtoms     = B C N

If we purposely design the materials with the first layer having 6 C and 4 N atoms and the second layer having 3 B, 4 C, and 7 N atoms. The 2×3 matrix can be written as follows:

@LayerType
0 6 4
3 4 7
@End

There is no default. You must define these numbers.

6.1.2.10. LAtom_Dis

LAtom_Dis = real

The minimal interatomic distance in unit of angstrom.

Default: 1.0

6.1.3. Parameters for cluster structure prediction

Here are Detailed Examples

6.1.3.1. Cluster

Cluster = logical

Swicher to perform a nanocluster structure prediction

Default: False

6.1.3.2. Vacancy

Vacancy = real_1 real_2 real_3

The isolated cluster is placed into an orthorhombic box where the periodic boundary condition is applied.

This variable defines the separations (in unit of angstrom) between the studied cluster and its nearest-neighboring periodic images. It should be large enough to ensure that interactions between the studied cluster and its nearest-neighboring images are negligible.

Default: 10.0 10.0 10.0

For cluster structure prediction, we do not recommend the use of VASP for the structure optimization for large systems since computationally VASP calculations are very expensive. We recommend using SIESTA, CP2K, and Gaussian codes when cluster sizes are larger than 10 atoms.

6.1.4. Parameters for rigid Molecules prediction

Here are Detailed Examples

6.1.4.1. MOL

MOL = logical

Switcher to perform structure prediction with fixed rigid molecules

This is a useful technique for structure design of molecular systems, especially when rigid molecules are known constituent of certain structures. Note that a file named as MOL is needed to define the rigid molecule.

Please refer to examples for settings of MOL.

Default: False

6.1.4.2. NumberOfTypeMolecule

NumberOfTypeMolecule = integer

The number of different types of molecules in the simulation cell.

There is no default. You must supply this variable.

6.1.4.3. NumberOfMolecule

NumberOfMolecule = integer1 integer2 ...

The number of molecules for different molecular species.

There is no default. You must supply this variable.

6.1.4.4. DistOfMol

DistOfMol = real

The minimum distance (in unit of angstrom) between two rigid molecules.

Default: 1.5

6.1.5. Parameters for with variational stoichiometry structure prediction

Here are Detailed Examples

6.1.5.1. VSC

VSC = logical

Switcher to perform structure prediction of automatic variation of chemical compositions

This technique is designed to explore all possible stoichiometries for given binary systems (e.g., AxBy system) at once. However, one has to take his/her own risk for the use of this technique. The search space has been significantly enlarged due to the existence of large number of possible stoichiometries. We highly recommend separate simulations with fixed stoichiometries for confirmation of their results.

Default: False

6.1.5.2. MaxNumAtom

MaxNumAtom = integer

The maximal number of atoms allowed in the simulation cell.

Default: 20

6.1.5.3. @CtrlRange

@CtrlRange
integer11 integer12
integer21 integer22
@End

Defining the compositional range for each type of constituent atom in the binary AxBy system.

For atom A, x varies from integer11 to integer12, while for atom B, y varies from integer21 to integer22.

Default:

@CtrlRange
1  6
1  6
@End

6.1.6. Parameters for surface reconstruction prediction

Here are Detailed Examples

6.1.6.1. LSurface

LSurface = logical

The flag specifies whether surface reconstruction prediction will be performed.

Default: False

6.1.6.2. SurfaceThickness

SurfaceThickness = real

This variable (in unit of angstrom) specifies the thickness of surface reconstruction, and it should be set as a value slightly larger than the double distance of two adjacent atomic layers in bulk materials.

Default: 3.0

6.1.6.3. Substrate (surface)

Substrate = string

This variable allows the users to define their own substrates.

string is the name of the user defined substrate file, which contains the structure data of the substrate (i.e., lattice parameters and atomic positions). Here, both POSCAR and cif file formats are supported.

For POSCAR file format, users can use ‘Selective dynamics’ tag to define the relaxable atomic layers, otherwise all the atoms in the substrate will remain un-relaxed during surface reconstruction calculations.

For cif file format, users need to insert ‘_selective’ tag beneath ‘_atom_site_fract_z’, and then include ‘T’ after atomic positions to define the relaxable atomic layers, while ‘F’ for the unrelaxable bulk.

Please refer to examples for more details.

By defining this variable to ‘Automatic’ or ‘Auto’, the substrate will be generated automatically from its bulk structure. See below controlling parameters for generation of substrate based on its bulk structure.

Default: SUBSTRATE.surf

6.1.6.4. SurfaceAStoms

@SurfaceAtoms
string_11  integer_12
string_21  integer_22
...
@End

Defining the reconstructed surface region with desirable compositions in a format of mx2 matrix.

The row (m) rank of the matrix is determined by “NumberOfSpecies”. For each row, the matrix contains two columns. The first column (string) is the elemental symbol of each chemical species, followed by the number of atoms for such a chemical species (integer).

Please refer to the examples for more detailed setting of these parameters.

There is no default. You must supply this variable.

6.1.6.5. SpaceSaving

SpaceSaving = logical

If this parameter is set as “True”, the output files for structure relaxation will be deleted.

Since the output files for structure relaxation are very large, it is desirable to save the storage space in hard driver by deleting these redundant files. However, one might set this parameter as “False” only in case of debugging the results.

Default: True

6.1.6.6. ECR

ECR = logical

If this parameter is set as “True”, only those initial structures that meet electron counting rule are accepted.

For more information on electron counting rule, please refer to the paper by Lu et al., [Nat. Commun. 5, 3666 (2014)]. Note that ECR only works for semiconductors with large band gaps.

Default: False

6.1.7. Parameters for automatic generate substrate

The controlling parameters below are used to generate substrate from bulk crystal structure ONLY when Substrate = Automatic(or “Auto” for short).

6.1.7.1. CifFilePath

CifFilePath = string

Specifies the name of crystal structure (in CIF format), whose surface structure prediction is to be performed.

There is no default value.

6.1.7.2. MillerIndex

MillerIndex = h k l

Defines the targeted surface as determined by the Miller indices h, k, and l for doing surface reconstruction calculations.

For a known bulk structure, once the Miller indices are defined, CALYPSO will automatically generate the idea surface structure denoted by lattice vectors (a1, a2) ready for performing surface reconstruction simulations.

See below tag of MatrixNotation for how to define a reconstructed surface denoted by lattice vectors (b1, b2). CALYPSO also supports the use of 4-numbered (h k i l) Miller index for hexagonal and rhombohedral lattice systems. Here, the variable should be defined as MillerIndex = h k i l.

There is no default value.

6.1.7.3. @MatrixNotation

@MatrixNotation
interger_11  interger_12
interger_21  interger_22
@End

This 2x2 matrix is used to define the reconstructed surface. Reconstructed surface lattice vectors (b1, b2) can be obtained via multiplying this matrix by the ideal surface lattice vectors (a1, a2).

\(b1b2 = integer11 integer12 integer21 integer22 a1a2\)

For example, for the reconstructed surface 1, the 2×2 matrix is written as 3002, for the reconstructed surface 2, the 2×2 matrix is written as 111-1 .

There is no default value.

6.1.7.4. SlabVacuumThick

SlabVacuumThick = real

This parameter (in units of angstrom) defines the vacuum region, where the whole slab is separated from its periodic images.

Default: 10.0

6.1.7.5. SlabTopMost

SlabTopMost = string

Control the topmost layer of the substrate that contains multi-elements.

For example, for a binary system of TiO2, this parameter should be defined as “Ti” or “O”. For single-element system, this parameter can be neglected.

Default: CALYPSO

6.1.7.6. SlabNumLayers

SlabNumLayers = integer

Number of layers in the substrate.

Default : 6

6.1.7.7. NumRelaxedLayers

NumRelaxedLayers = integer

Number of the relaxable layers in the substrate, must be smaller than SlabNumLayers.

Default: 2

6.1.7.8. CapBondsWithH

CapBondsWithH = logical

Switcher to passivate the dangling bonds in the bottom side of the slab via pseudo-hydrogen atoms.

Default: True

6.1.8. Parameters for solid-solid interfacial prediction

Here are Detailed Examples

6.1.8.1. LSurface (deprecated)

LSurface = logical

Switcher to perform surface reconstruction prediction. This parameter is set as “True” for interfacial structure prediction.

Default: False

6.1.8.2. LInterface

LInterface = logical

Switcher to perform interface structure prediction.

Default: False

6.1.8.3. InterfaceTranslation

InterfaceTranslation = logical

Determines the direction of the rigid-body displacement between two bulk phases.

If this parameter is set as “a” (“b”), the displacement is performed along the direction of a (b) vector of simulated cell. “ab” represents that the displacement is performed on lateral plane of interface.

Default: False

6.1.8.4. TranslationLimitA

TranslationLimitA = real

Specifies the maximum rigid-body displacement (in unit of angstrom) along the direction of a vector.

Default: 0

6.1.8.5. TranslationLimitB

TranslationLimitB = real

Specifies the maximum rigid-body displacement (in unit of angstrom) along the direction of b vector.

Default: 0

6.1.8.6. Rand_Scheme

Rand_Scheme = integer

Determines which interface structure generation methods should be adopted.

Rand_Scheme Methods
0 Random generations of structures
1 Generating structures with 2D symmetry constraints
2 Generating structures with the bonding constraints

Default: 1

6.1.8.7. Interface_thickness

Interface_thickness = real

Specifies the thickness of interface region, in unit of angstrom.

6.1.8.8. @SURFACE_ATOMS

@SURFACE_ATOMS  # |atomic symbol | count|   (CAN CHANGE TO INTERFACE_ATOMS)
string_11  integer_12
string_21  integer_22
@END

Defines the atomic compositions at interface region in a format of mx2 matrix.

For each row, the matrix contains two columns. The first column (string) is the elemental symbol of each chemical species, followed by the number of atoms for such a chemical species (integer).

Please refer to the Examples for more detailed setting of these parameters.

There is no default. You must specify it.

6.1.8.9. @COORDINATE_NUMBER

@COORDINATE_NUMBER
string_11  string_12  integer_13  real15  real_16
string_21  string_22  integer_23  real25  real_26
string_21  string_32  integer_33  real35  real_36
string_41  string_42  integer_43  real45  real_46
@END

This mx5 parametric matrix controls the structure generation under the bonding constraint, which is only required when the parameter of “RandScheme” is set to 3.

Here each atom is regarded as a central atom, and a nearest-neighbor shell of this atom is defined. If a generated atom as a neighboring atom locates at this nearest-neighbor shell, it is regarded as a coordinated atom of the central atom.

For each row, the 1st column (string) represents the elemental symbol of central atom. The 2nd column (string) represents the elemental symbol of neighboring atom. The 3rd column represents the maximum coordination number in the generation of interface structures. The 4th and 5th column specify the minimum and maximum radius of the nearest-neighbor shell (in unit of angstrom), respectively.

There is no default. You must specify it.

6.1.8.10. Substrate (interface)

Substrate = string

Specifies the filename of the 1st slab model of bulk phase. (CAN CHANGE TO “BulkStructure”)

Default: SUBSTRATE.surf

6.1.8.11. Substrate2

Substrate2 = string

Specifies the filename of the 2nd slab model of bulk phase. (CAN CHANGE TO “BulkStructure2”)

Default: SUBSTRATE2.surf

6.1.8.12. Twin_Interface

Twin_Interface = integer

Determines which model should be adopted in the prediction of interface structure.

Twin_Interface model
0 Slab model
1 An inversion-symmetric model with two equivalent interfaces
2 A mirror-symmetric model with two equivalent interfaces

6.1.9. Parameters for inverse design of superhard materials

Example is given in next section.

6.1.9.1. Hardness

Hardness = logical

Switcher to perform structure design of superhard materials.

Here, we introduce an inverse-design scheme where “hardness” is used as the fitness function, instead of “energy” in a standard structure prediction.

After the simulation of CALYPSO inverse-design of superhard materials, one can plot out hardness values versus energy map to dig out the candidate superhard structures possessing simultaneously high hardness and low energies.

For more details, please refer to the paper by Zhang et al, J. Chem. Phys. 138, 114101 (2013).

Default: False

6.1.10. Parameters for atom or molecule adsorption of 2D layer materials

Here are Detailed Examples

6.1.10.1. Adsorption

Adsorption = logical

Switcher to perform 2D materials prediction with atom or molecule adsorption.

Default: False

6.1.10.2. AdsorptionStyle

AdsorptionStyle = integer

Determines which method should be adopted for generation of adsorption structures in the simulation cell.

AdsorptionStyle method
1 Random generations of structures
2 Generating structures with fixed positions of adatom

Default: 1

6.1.10.3. NumberOfTypeAtom

NumberOfTypeAtom = integer

Number of different types of adatoms in the simulation cell.

There is no default. You must specify this variable.

6.1.10.4. BothSide

BothSide = logical

Swicher to adsorb the adatoms on both sides of a 2D layer or on single side.

Default: False

6.1.10.5. @Adatoms

@Adatoms
string_11  integer_12  (integer_13)
string_21  integer_22  (integer_23)
...
End

Defines the adatoms in a format of mx2 for BothSide = F or mx3 matrix for BothSide = T.

The row (m) rank of the matrix is determined by NumberOfTypeAtom.

When BothSide = F, the matrix contains two columns for each line. The first column (string) is the elemental symbol of each adatom, followed by the number of adatoms in the simulation cell (integer).

We take the 4x4 supercell of graphene adsorbing eight hydrogen atoms as an example. The 1x2 matrix is defined as:

@Adatoms
H  8
@End

Here, H is the elemental symbol of adatom, 8 indicates that 8 H atoms are adsorbed for 4x4 supercell of graphene.

When BothSide = T, the matrix contains three columns for each line. The first column (string) is the elemental symbol of each adatom. The second column is the number of adatoms on one side. The third column is the number of adatoms on the other side.

We take the 4x4 supercell of graphene adsorbing eight hydrogen atoms as an example. The 1x3 matrix is defined as:

@Adatoms
H  4  4
@End

Here, H is the elemental symbol of adatom, the first 4* indicates that 4 H atoms are adsorbed on one side of 4x4 supercell of graphene. the second 4 indicates that 4 H atoms are adsorbed on the other side of 4x4 supercell of graphene.

There is no default. You must specify this variable.

6.1.10.6. @SuperCell

SuperCell
interger_11  interger_12
interger_21  interger_22
End

This 2x2 matrix is used to define the substrate. Whose lattice vectors can be obtained via multiplying this matrix by the ideal lattice vectors.

There is no default value.

6.1.10.7. RangeOfZAxis

RangeOfZAxis = real_1 real_2

Defines the range of distances between the 2D layer and adatoms.

real_1 and real_2 specify the maximal and minimal distance, respectively.

Default: 1.7 1.2

6.1.11. Parameters for design of optical materials with desirable band gap

Example is given in next section

6.1.11.1. BandGapDesign

BandGapDesign = logical

Switcher to perform inverse design of optical materials with desirable band gap.

Default: False

6.1.11.2. TarBandGap

TarBandGap = real

Defines the desirable band gap.

6.1.12. Parameters for special constraints

Here are Detailed Examples

6.1.12.1. SpeSpaceGroup

SpeSpaceGroup = integer1 integer2

Defines the space groups ranging from integer1 to integer2 for generation of structures.

If integer1 equals to integer2, structure generations will be confined to this specified space group.

This option is particularly useful when one tries to perform a fixed space group calculation.

For a general structure prediction, please use the default value. All 230-space groups will be allowed for generation of structures.

Default: 1 230

6.1.12.2. FixCell

FixCell = logical

Switcher to perform the structure prediction with fixed cell parameters.

Note that a file named as cell.dat is needed to define the fixed cell parameters.

Please refer to examples for settings of cell.dat.

Default: False

6.1.12.3. FixAtom

FixAtom = logical

Switcher to perform the structure prediction with fixed atomic positions.

Note that a file named as cell.dat is needed to define the fixed atomic positions.

Please refer to examples for settings of cell.dat.

Default: False

6.1.13. Parameters for X-ray diffraction data assisted structural prediction

Example is given in next section

6.1.13.1. LXRD

LXRD = logical

Switcher to perform the X-ray diffraction data assisted structural prediction.

A file named as XRD.dat containing the experimental XRD data should be provided.

Default: False

6.1.13.2. WaveLength

WaveLength = real

Defines the wavelength used in the experimental XRD measurement.

There is no default. You must specify this variable.

6.1.13.3. RangeOf2Theta

RangeOf2Theta = real1 real2

Defines the range of \(2\theta\) angles from real1 to real2 for comparison with the experimental XRD data.

There is no default. You must specify this variable.

6.1.13.4. StandardPeakPosition

StandardPeakPosition = real1 real2

Defines the position of characteristic peak of experimental XRD data in the \(2\theta\) range from real1 to real2.

The peak of experimental XRD with maximum intensity is selected as the characteristic peak.

There is no default. You must specify this variable.

6.1.14. Parameters for Prediction of Transition States in Solids

Example is given in next section

6.1.14.1. LTranState

LTranState = logical

Switcher to perform transition states prediction in solids.

Within this module, only VASP code can be used to perform local structure optimization at the current stage. Note that a file named as IF_struct.dat is needed to provide structural information for initial and final solid states.

Please refer to examples for settings of IF_struct.dat.

Default: False

6.1.14.2. NumberOfImages

NumberOfImages = integer

Defines the number of images, which are used to sample the transition state by the modified nudged elastic band method, for each trial transition path.

For the sake of simplicity, this parameter should be divided evenly by PopSize. For example, if PopSize = 30, NumberOfImages can be chosen as 3, 5, or 6.

With our modified nudged elastic band method, the number of images for sampling the transition state can be chosen as small as 3 for eight-atom silicon system. A slightly larger NumberOfImages is expected for a more complex system.

There is no default. You must specify this variable.

6.2. Other Inputs

Local Optimization Required Files
VASP INCAR_* and pseudopotential file POTCAR
SIESTA sinput_* and pseudopotential files *.psf
GULP ginput_*
CP2K cp2k.inp_*

6.3. CALYPSO Outputs

All the major output files are listed in the folder of “results”:

File Name Description
CALYPSO_input.dat Backup of the initial input file
similar.dat Contains the geometrical structure parameters of predicted structures.
pso_ini_* Includes the information of the initial structures of the *-th generation.
pso_opt_* Includes the enthalpy data and structural parameters of the geometrically optimized structures of the *-th generation.
pso_sor_* The enthalpy data sorted in ascending order of the *-th generation.
struct.dat Necessary information for all predicted structures (the space group number, the volume, the number of atoms, etc.).

6.4. Analysis of Results

CALYPSO calculations typically generate a large number of structures. It is necessary to devise a versatile tool for data analyses.

Here we develop CALYPSO ANALYSIS KIT (CAK) allowing automatic structure analysis.

6.4.1. Installation of CAK

CAK should be installed on a Linux or a Mac OS X system. Structure analysis through CAK tool needs the use of mathematic lib of numpy package in Python. You might need to link the path of Python to the variable ‘PYBIN’ in your Makefile. Installation of CAK is simple.

cd CALYPSO_ANALYSIS_KIT
make

Then add source /path/caly.sh in .bashrc.

6.4.2. CAK Commands

Please go to the directory “results” and type ‘cak.py’.

cd path-to-calculation/results
cak.py

An output file named as “Analysis_Output.dat” will be generated.

By default, “Analysis_Output.dat” contains space-group and enthalpy information of 50 energetically best structures. Note that space groups of structures are determined with a tolerance of 0.1 \(\AA\) by default. Below we show several more advanced analyzing options.

Analysis, and output all structures generated by CALYPSO:

cak.py -a

Analysis, and output the specified number of best structures:

cak.py -n <integer>

Specify values ranging from 0.01 to 1.0 Å will be used as the tolerance for symmetry analyses of given structures:

cak.py -t <real ...>

The default value is set as 0.1. Multi-tolerance values (separated by space) are allowed.

Output structure files with CIF format in directories of ‘dir_n’ (n indicates the tolerance value for symmetry analysis):

cak.py --cif -m <real ...>

Output structure files with VASP POSCAR format in directories of ‘dir_n’ (n indicates the tolerance value for symmetry analysis):

cak.py --vasp -m <real ...>

Output the primitive cells of structures:

cak.py --pri --vasp/cif

Plot the figure of lowest enthalpy as a function of generations:

cak.py -p

Output the structures in the descending order of hardness:

cak.py --hard

6.4.3. CAK Outputs

(1) Analysis_Output.dat

At least three columns are present in this file by default.

The first column is the index of the structures sorted by enthalpies in the ascending order (the numbers in bracket indicate the structure number out of all structures generated in the CALYPSO calculation). The second column shows the enthalpy data. The corresponding space-group numbers as obtained by the desirable tolerance value for the structures are listed in the third column.

(2) Convexhull.dat

This file contains two columns. The first column shows various stoichiometries for a given binary system. The second column presents the lowest enthalpy for each stoichiometry.

(3) plot.dat

This file contains two columns. The first column shows the generation number, while the second gives the lowest enthalpy for each generation.

(4) UCell_m_n.vasp

This file contains the structure data in conventional cell in the POSCAR format of VASP. m and n indicate the enthalpy ranking number and the space group number of the structure, respectively.

(5) PCell_m_n.vasp

This file contains the structure data in primitive cell in the POSCAR format of VASP. m and n indicate the enthalpy ranking number and the space group number of the structure, respectively.

(7) m_n.cif

This file contains the structure data in conventional cell in the .cif format. m and n indicate the enthalpy ranking number and the space group number of the structure, respectively.

(8) m_n_p.cif

This file contains the structure data within a primitive unit cell in the .cif format. m and n indicate the enthalpy ranking number and the space group number of the structure, respectively.