7. Examples

Warning

KGrid parameter is no longer taking effect in input.dat, and removed from all following examples. You should specify it accroding to the different local optimization software.

Taking VASP for example, set KSPACING in INCAR, or give KPOINTS file.

7.1. Crystal Structure Prediction

This section is to show the examples for the three-dimensional crystal structure prediction using CALYPSO code.

We take the structure prediction of cubic boron nitride (cBN) as an example. Here, VASP code was used for geometry optimization and enthalpy calculations.

CALYPSO input file input.dat and VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential file for VASP
submit.sh Job submission file

calypso.x can be downloaded in the webpage of http://www.calypso.cn according to different operating systems.

Parameters in input.dat are shown below:

SystemName = BN
NumberOfSpecies = 2
NameOfAtoms = B N
NumberOfAtoms = 1 1
NumberOfFormula = 1 1
Volume = 20.0
@DistanceOfIon
1.0 0.8
0.8 0.8
@End
Ialgo = 2
PsoRatio = 0.6
PopSize = 30
ICode = 1
NumberOfLocalOptim = 4
Kgrid = 0.12 0.06
Command = sh submit.sh
MaxStep = 30

For VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) files should be in accordance with the setting tag NumberOfLocalOptim.

In this example, four INCAR files are used for structure relaxation:

INCAR_1 and INCAR_2 files are used to perform very coarse structure relaxation with the fixed volume, and INCAR_3 and INCAR_4 files are used to perform full structure relaxation (i.e., variable lattice parameters, variable volumes, and variable atomic coordinates) with medium and accurate precision, respectively.

INCAR_1

SYSTEM = local optimization
PREC = LOW
EDIFF = 3e-2
IBRION = 2
ISIF = 2
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.5
LWAVE = FALSE
LCHARG = FALSE
ISTART = 0
PSTRESS = 3000
EDIFFG = -4e-2

INCAR_2

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-2
IBRION = 2
ISIF = 4
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.2
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = -4e-1

INCAR_3

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-4
IBRION = 1
ISIF = 3
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = 2e-3

INCAR_4

SYSTEM = local optimization
ENCUT = 600
EDIFF = 1e-5
IBRION = 2
ISIF = 3
NSW = 80
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = 2e-3

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

For using VASP software to optimize generated structures, CALYPSO supports accelerating structure search by modifying submit.sh file in Version 7.3.6. Here are the examples of submit.sh.

#!/bin/sh
nohup  ./badopt.py &> badopt.log &
for(( i=1; i<=3; i++ ));
do
        cp INCAR_$i INCAR
        if [[ "$i" == "3" ]]
        then
          sg=`./sym.py`
        fi
        if [[ "$sg" == "1" ||  "$sg" == "610612509" ]]
        then
          break
        fi
        if [[ "$i" == "3" ]]
        then
          nohup ./sym_split.py &> sym.log &
        fi
        killall -9 vasp_std
        mpirun -np 36  /data/software/vasp.5.4.1/bin/vasp_std > vasp.log_$i
        cp CONTCAR POSCAR
done
killall -9 python

Three scripts (badopt.py, sym.py and sym_split.py) are used to accelerate structure search.

badopt.py: check the error information during VASP structure optimization.

sym.py: check the space group of the structures after VASP structure optimization with low precision. If the space group is P1, the last structure optimization with high precision will be not carried out.

sym_split.py: check the space group of the structures during VASP structure optimization with high precision. If the space group is P1, the structure optimization will stop.

Users can choose any one of three scripts by according to own requirements. For using this submit.sh file to accelerate structure search, “NumberOfLocalOptim” in the input.dat file should be set as “1”. It’s requried to install numpy for your python environment.

The following is the script to run structure optimaztions using VASP for accelerate structure search using CALYPSO split mode:

#!/bin/sh
#BSUB -n 36
#BSUB -R 'span[ptile=36]'
#BSUB -q mym4
#BSUB -o %J.out

cp ../badopt.py .
nohup  ./badopt.py &> badopt.log &
for(( i=1; i<=3; i++ ));
do
        cp INCAR_$i INCAR
        cp CONTCAR POSCAR
        if [[ "$sg" == "1" ||  "$sg" == "610612509" ]]
        then
          cp ../sym.py .
          sg=`./sym.py`
        fi
        if [[ "$sg" == "1" ]]
        then
          break
        fi
        if [[ "$i" == "3" ]]
        then
          cp ../sym_split.py .
          nohup ./sym_split.py &> sym.log &
        fi
        killall -9 vasp_std
        mpirun -np 36  /data/software/vasp.5.4.1/bin/vasp_std > vasp.log_$i
done
killall -9 python

Once all input files are ready, you can simply type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it in a queue system.

CALYPSO run will generate the results folder in the current directory you have specified. The results folder contains all the outputs files of CALYPSO.

To analyze the results, please simply type the following commands:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order will present in the Analysis_Output.dat file, and all predicted structure files by CALYPSO with cif formats are shown in the dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.2. Two-Dimensional Structure Prediction

This section is to show the examples for the two-dimensional structure prediction using CALYPSO code.

We take the structure prediction of B3N2 two-dimensional system as an example. Here, VASP code was used for geometry optimization and enthalpy calculations.

CALYPSO input file of input.dat and VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown below:

SystemName = B3N2
NumberOfSpecies = 2
NameOfAtoms = B N
NumberOfAtoms = 3 2
Ialgo = 2
PsoRatio = 0.6
PopSize = 20
ICode = 1
NumberOfLocalOptim = 3
Command = sh submit.sh
MaxStep = 50
2D = T
MultiLayer = 2
Area = 14
DeltaZ = 0
LayerGap = 5
VacuumGap = 5
@LayerType
1 1
2 1
@End
LAtom_Dis = 1.4

For VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) files should be in accordance with the setting tag NumberOfLocalOptim.

In this example, we use three INCAR files for structure relaxation. INCAR_1 and INCAR_2 are used to perform very coarse structure relaxation keeping the volume fixed, INCAR_3 is used to** perform full structure relaxation with accurate precision.

INCAR_1

SYSTEM = B3N2
PREC = LOW
EDIFF = 3e-3
IBRION = 2
ISIF = 2
NSW = 50
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.5
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 4e-2

INCAR_2

SYSTEM = B3N2
PREC = LOW
EDIFF = 2e-3
IBRION = 2
ISIF = 4
NSW = 50
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.2
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 1e-2

INCAR_3

SYSTEM = B3N2
PREC = Accurate
ENCUT = 400
EDIFF = 2e-4
IBRION = 2
ISIF = 3
NSW = 60
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 1e-4

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files. To analyze the results of CALYPSO, just type following command:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.3. Cluster Structure Prediction

This section is to show the examples for the cluster structure prediction using CALYPSO code.

Here an example for boron clusters that composed of 6 atoms (B6) is presented. Gaussian09 code was used for geometry optimization and energy calculations.

Here an example for Ti4 clusters is given, and the local optimization is performed by VASP.

Finally, here an example for B12 clusters is provided. The CP2K code was used for geometry optimization and energy calculations.

7.3.1. Tutorial for B6 clusters

In this tutorial, a CALYPSO structure search for B6 clusters is presented. The local structure optimizations are performed by Gaussian09 code, so you have to install the Gaussian09 in your machine.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
gsinput_* Input files for Gaussian
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown below:

SystemName = B6Cluster
NumberOfSpecies = 1
NameOfAtoms = B
NumberOfAtoms = 6
NumberOfFormula = 1 1
@DistanceOfIon
1.7
@End
Ialgo = 2
PsoRatio = 0.8
PopSize = 20
ICode = 7
NumberOfLocalOptim = 2
Command = sh submit.sh
MaxStep = 50
LMC = T
Cluster= T
Vacancy = 15 15 15

For Gaussian, the number of gsinput_* (gsinput_1 and gsinput_2) should be in accordance with the setting tag NumberOfLocalOptim.

In this example, we use two gsinput_* files for structure relaxation. The gsinput_1 is used to perform very coarse structure relaxation, and gsinput_2 is used to perform structure relaxation with medium precision. During the structure relaxation, gsinput_* files will be copied to gsinput, and atomic coordinates will be automatically attached by CALYPSO.

gsinput_1

%chk=calypso.chk
%nprocs=12
%Mem=12GB
#p RHF/PBEPBE/3-21G
SCF=(fermi,MaxCycle=565,conver=4)
OPT=(Redundant,MaxCycle=50,MaxStep=29,loose)
NoSymm

dr38 Geometry Optimization

0 1

gsinput_2

%chk=calypso.chk
%nprocs=12
%Mem=12GB
#p RHF/PBEPBE/3-21G
SCF=(xqc,MaxCycle=565,conver=5)
OPT=(Redundant,MaxCycle=1500,MaxStep=29,loose)
NoSymm

dr38 Geometry Optimization

0 1

Hint

We strongly suggest that you use the multi-stage strategy for structure relaxation.

submit.sh is the job submission file for the Gaussian calculation:

Here is an example of submit.sh:

#!/bin/bash
g09 < gsinput > gsoutput

Once all the input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all most the output files.

To analyze the results, just type following command:

cd results
cak.py –cif

The index of the structures sorted by energies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_origin directory.

Please see here for more information about the analyses of CALYPSO results.

7.3.2. Tutorial for Ti4 clusters

In this tutorial, a CALYPSO structure search for Ti4 clusters is presented. The local structural optimizations are performed by VASP, so you have to install the VASP code in your machine.

All the reference files can be found in Path-to-CALYPSO/Example/Ti4_VASP.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown below:

SystemName Ti
NumberOfSpecies = 1
NameOfAtoms = Ti
NumberOfAtoms = 4
NumberOfFormula = 1 1
@DistanceOfIon
2.6
@End
Ialgo = 2
PsoRatio = 0.8
ICode = 1
NumberOfLocalOptim = 1
Command = sh submit.sh
MaxStep = 50
LMC = T
Cluster = T
Vacancy = 12 12 12

In this example, geometry optimization is performed by VASP code and only one input file for VASP (named INCAR_1) is needed.

INCAR_1

SYSTEM = Ti
PREC = Accurate
ENCUT = 300
EDIFF = 1e-4
IBRION = 2
ISIF = 2
NSW = 1000
ISMEAR = 0 ; SIGMA = 0.0001
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
EDIFFG = -0.01
ISPIN = 2
ISYM = 0

POTCAR should be provided.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all the input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the “results” folder, which contains all most the output files. To analyze the CALYPSO results, just type following command:

cd results
cak.py --cif

The index of the structures sorted by energies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.3.3. Tutorial for B12 clusters

In this tutorial, a CALYPSO structure search for B12 clusters is presented. The local structural optimizations are performed by CP2K, so you have to install the CP2K code in your machine.

All the reference files can be found in Path-to-CALYPSO/Example/B12_cp2k.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
EMSL_BASIS_SETS Basis sets files for CP2K
POTENTIAL Pseudopotential files for CP2K
input.dat The input file of CALYPSO containing controllable key parameters
cp2k.inp_* Input files for CP2K
submit.sh Job submission file

The calypso.x can be downloaded according to different operating system.

Parameters in input.dat are shown for the B12 cluster:

SystemName = B
NumberOfSpecies = 1
NameOfAtoms = B
NumberOfFormula = 1 1
@DistanceOfIon
1.7
@End
Ialgo = 2
PsoRatio = 0.8
PopSize = 30
ICode = 6
NumberOfLocalOptim = 1
Command = sh submit.sh
MaxStep = 50
LMC = T
Cluster = T
Vacancy = 12 12 12

In this example, geometry optimization is performed by CP2K code and only one input file for CP2K (named as cp2k.inp_1) is needed. During the structure relaxation, it will be renamed as cp2k.inp, and atomic coordinates will be automatically inserted into this file (behind the marker line “########”).

cp2k.inp_1

&FORCE_EVAL
  METHOD QS
  &DFT
    BASIS_SET_FILE_NAME EMSL_BASIS_SETS
    POTENTIAL_FILE_NAME POTENTIAL
    &MGRID
      CUTOFF 250
      REL_CUTOFF 50
    &END MGRID
        &QS
      EPS_DEFAULT 1.0E-10

        &END QS
    &POISSON
        PSOLVER MT
    &END POISSON
    &SCF
      SCF_GUESS ATOMIC
      &OT ON
        MINIMIZER DIIS
      &END OT
      MAX_SCF 100
      EPS_SCF 1.0E-5
      &PRINT
        &RESTART OFF
        &END
      &END
    &END SCF
    &XC
      &XC_FUNCTIONAL PBE
      &END XC_FUNCTIONAL
    &END XC
  &END DFT
  &SUBSYS
########
    &KIND B
      BASIS_SET 6-311Gxx
      POTENTIAL GTH-PBE-q3
    &END KIND
  &END SUBSYS
&END FORCE_EVAL
&GLOBAL
  PROJECT cp2k
  RUN_TYPE GEOMETRY_OPTIMIZATION
  PRINT_LEVEL LOW
  &TIMINGS
    THRESHOLD 0.000001
  &END
&END GLOBAL
&MOTION
  &GEO_OPT
    OPTIMIZER BFGS
    MAX_ITER  1000
    MAX_FORCE 0.00045
    RMS_FORCE 0.0003
  &END GEO_OPT
&END MOTION

The users should provide the EMSL_BASIS_SETS and POTENTIAL files, which contain the basis set and pseudopotential for running CP2K code.

submit.sh is the job submission file for performing the CP2K calculations. Here is an example of submit.sh:

#!/bin/bash
mpirun.lsf cp2k.popt -i cp2k.inp > out.cp2k 2>&1

Once all the input files are ready, you can just type

./calypso.x > caly.log &

to execute the code in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the “results” folder in current directory, which contains all most the outputs files of CALYPSO. To analyze the results, just type following command:

cd results
cak.py  --cif

The index of the structures sorted by energies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_orign directory.

Please see here for more information about the analyses of CALYPSO results.

7.4. Molecular Structure Prediction

This section is to show the example for the structure prediction with fixed rigid molecules using CALYPSO code.

Here, SIESTA code was used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat, rigid molecular structure information file of MOL, SIESTA input files of sinput_* and pseudopotential file of *.psf are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
sinput_* Input files for SIESTA
MOL Rigid molecular structure information with Z_Matrix format
*.psf Pseudopotential for SIESTA
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat for the CH4 system are shown below:

SystemName = CH4
NumberOfSpecies = 2
NameOfAtoms = C H
NumberOfAtoms = 1 4
NumberOfFormula = 1 1
Volume = 60
@DistanceOfIon
1.0 1.0
1.0 1.0
@End
Ialgo = 2
PsoRatio = 0.6
PopSize = 20
ICode = 2
NumberOfLocalOptim = 3
Kgrid = 0.1 0.07
Command = sh submit.sh
MaxStep = 50
Mol = T
NumberOfTypeMolecule = 1
NumberOfMolecule = 2
DistOfMol = 1.5

MOL file contains the rigid molecular structure information with Z_Matrix format.

The Z_matrix is a way to represent a system built of atoms with internal coordinates. It provides a description of each atom in a molecule in terms of its atomic type, bond length, bond angle, and dihedral angle.

The detailed descriptions about Z-Matrix can be found in here.

MOL example of CH4 is shown below:

this the internal coordinate title and no need to write in MOL file

Nspecie   I J K   R      A      T   ifr ifa ift

this is what the file contains

5
1         0 0 0   0.0   0.0    0.0   1   1   1
2         1 0 0   1.044 0.0    0.0   0   1   1
2         1 2 0   1.044 109.48 0.0   0   0   1
2         1 2 3   1.044 109.48 120   0   0   0
2         1 2 3   1.044 109.48 120   0   0   0

The first line gives the total number of the atoms in the rigid molecular structure information and the following lines give the internal coordinates of each atoms.

The internal coordinates consist of ten parts:

Nspecie (integer)

the species number of the atom.

I, J, K (integer)

atomic order in molecule is used to define the internal coordinates for current atomic coordinates

R (real)

bond length of current atom with respect to I atom.

A (real)

bond angle of current atom with respect to I and J atoms.

T (real)

dihedral angle of current atom with respect to I, J and K atoms.

ifr, ifa, ift (integer)

flags that indicate whether r, a, and t should be varied during local structural relaxation. 0 for fixed and 1 for varying.

For SIESTA, the number of sinput_* (sinput_1, sinput_2, …) should be in accordance with the setting tag of NumberOfLocalOptim.

In this example, we use three SIESTA input files for structure relaxation. sinput_1 and sinput_2 are used to perform very coarse structure relaxation, while sinput_3 is used to perform full structure relaxation with accurate precision.

sinput_1

SystemName siesta
SystemLabel siesta
NumberOfSpecies 2
NumberOfAtoms  10
%block ChemicalSpeciesLabel
1    6 C
2    1 H
%endblock ChemicalSpeciesLabel
PAO.BasisSize   SZ
kgrid_cutoff    8.0 Ang
MeshCutoff      80 Ry
PAO.EnergyShift 0.02 Ry
XC.functional           GGA
XC.authors              PBE
MaxSCFIterations        100
DM.MixingWeight         0.150
DM.Tolerance            1.d-4
DM.NumberPulay          5      
# Relaxation, smearing, etc.
ElectronicTemperature   3000 K
MD.TypeOfRun            cg     
Optim.Broyden           .true.
MD.VariableCell         .true.
MD.ConstantVolume       .false.
MD.MaxForceTol          1d-3 eV/Ang
MD.NumCGsteps           5
Use-Save-CG             .true.
Use-Save-XV             .true.
MD.Broyden.Initial.Inverse.Jacobian 0.20
MD.RemoveIntramolecularPressure .true.
MD.TargetPressure       100.0 GPa
ZM.ForceTolLen 0.04 eV/Ang
ZM.ForceTolAng 0.0001 eV/deg
ZM.MaxDisplLen 0.1 Ang
ZM.MaxDisplAng 20.0 deg
AtomicCoordinatesFormat NotScaledCartesianAng
%include Zmatrix.data
%block MM.Potentials
1 1 C6 16.292 0.5
2 2 C6  0.735 0.5
1 2 C6  3.185 0.5
%endblock MM.Potentials

sinput_2

SystemName siesta
SystemLabel siesta
NumberOfSpecies 2
NumberOfAtoms   10
%block ChemicalSpeciesLabel
1    6 C
2    1 H
%endblock ChemicalSpeciesLabel
PAO.BasisSize   SZ
%endblock PAO.BasisSizes
kgrid_cutoff    8.0 Ang
MeshCutoff      80 Ry
PAO.EnergyShift 0.01 Ry
XC.functional           GGA
XC.authors              PBE
MaxSCFIterations        100
DM.MixingWeight         0.150
DM.Tolerance            1.d-5
DM.NumberPulay          5    
ElectronicTemperature   3000 K
MD.TypeOfRun            cg    
Optim.Broyden           .true.
MD.VariableCell         .true.
MD.ConstantVolume       .false.
MD.MaxForceTol          2d-5 eV/Ang
MD.NumCGsteps           40
Use-Save-CG             .true.
Use-Save-XV             .true.
MD.Broyden.Initial.Inverse.Jacobian 0.20
MD.RemoveIntramolecularPressure .true.
MD.TargetPressure       100.000010 GPa
ZM.ForceTolLen 0.04 eV/Ang
ZM.ForceTolAng 0.0001 eV/deg
ZM.MaxDisplLen 0.1 Ang
ZM.MaxDisplAng 20.0 deg
AtomicCoordinatesFormat NotScaledCartesianAng
%include Zmatrix.data
%block MM.Potentials
1 1 C6 16.292 1.392
2 2 C6  0.735 2.025
1 2 C6  3.185 1.649
%endblock MM.Potentials

sinput_3

SystemName siesta
SystemLabel siesta
NumberOfSpecies 2
NumberOfAtoms   10
%block ChemicalSpeciesLabel
1    6 C
2    1 H
%endblock ChemicalSpeciesLabel
PAO.BasisSize   DZ
kgrid_cutoff    8.0 Ang
MeshCutoff      80 Ry
PAO.EnergyShift 0.002 Ry
XC.functional           GGA
XC.authors              PBE
MaxSCFIterations        100
DM.MixingWeight         0.150
DM.Tolerance            1.d-5
DM.NumberPulay          5     
ElectronicTemperature   3000 K
MD.TypeOfRun            cg     
Optim.Broyden           .false.
MD.VariableCell         .true.
MD.ConstantVolume       .false.
MD.MaxForceTol          2d-5 eV/Ang
MD.NumCGsteps           60
Use-Save-CG             .true.
Use-Save-XV             .true.
MD.RemoveIntramolecularPressure .true.
MD.TargetPressure       100.000010 GPa
ZM.ForceTolLen 0.04 eV/Ang
ZM.ForceTolAng 0.0001 eV/deg
ZM.MaxDisplLen 0.1 Ang
ZM.MaxDisplAng 20.0 deg
AtomicCoordinatesFormat NotScaledCartesianAng
%include Zmatrix.data
%block MM.Potentials
1 1 C6 16.292 1.392
2 2 C6  0.735 2.025
1 2 C6  3.185 1.649
%endblock MM.Potentials

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

The psedopotential files *.psf (C.psf and H.psf in this case) should be provided by the user.

submit.sh is the job submission file for performing the SIESTA calculation. Here is an example of submit.sh:

#!/bin/bash
siesta < siesta.fdf > siesta.out

Important

the SIESTA output file should be named as “siesta.out”

Once all the input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO code in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all the output files of CALYPSO. To analyze the CALYPSO results, just type following command:

cd results
cak.py  --cif

The index of the structures sorted by enthalpies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.5. Variable Stoichiometry Structure Prediction

This section is to show the example for variable stoichiometry structure prediction using CALYPSO code. Here, VASP code was used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat, VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

File: Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown for the LiH system:

########### The Parameters of CALYPSO #############
# A string of one or several words contain a descriptive 
# name of the system (max. 40 characters).
SystemName = LiH
# Number of different atomic species in the simulation, 
# where it has two type elements (B and N).
NumberOfSpecies = 2
# Element symbols of the different chemical species. 
NameOfAtoms = Li H
# The range of formula unit per cell in your simulation.
NumberOfFormula = 1 1
# The volume of 1 f.u. unit=angstrom^3. 
Volume = 5.0
# Minimal distances between atoms of each chemical species. 
@DistanceOfIon
 1.0 0.8
 0.8 0.8
@End
# It determines which algorithm should be adopted in the simulation.
Ialgo = 2
# The proportion of the structures generated by PSO 
# against the new structures in each generation.
PsoRatio = 0.6
# The population size. Normally, it is larger for larger systems.
PopSize = 30
# It determines which local optimization program 
# should be used in the simulation.
ICode = 1
# The Number of local optimization for each structure.
NumberOfLocalOptim = 4
# It is the k-point sampling solution in local optimization. 
# Kgrid = 0.12 0.06
# The script for submitting local optimization calculations.
Command = sh submit.sh
# The Max step for iteration
MaxStep =30
# If True, Variational Stoichiometry structure prediction is performed
VSC=T
VSCEnergy= 0 0
# The Max Number of Atoms in unit cell
MaxNumAtom=20
# The Variation Range for each type atom 
@CtrlRange
1 1
1 7
@End
#################### End Parameters #######################

For VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) is in accordance with the setting tag of NumberOfLocalOptim.

In this example, we use four INCAR files for structure relaxation. INCAR_1 and INCAR_2 are used to perform very crude structure relaxation keeping the volume fixed, INCAR_3 is used to perform full structure relaxation with medium precision, while INCAR_4 is used to perform very accurate calculation.

INCAR_1

SYSTEM = local optimization
PREC = LOW
EDIFF = 3e-2
IBRION = 2
ISIF = 2
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.50
LWAVE = FALSE
LCHARG = FALSE
ISTART = 0
PSTRESS = 3000
EDIFFG = -4e-2

INCAR_2

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-2
IBRION = 2
ISIF = 4
NSW = 40
ISMEAR = 0 
SIGMA = 0.05
POTIM = 0.2
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = -1e-2

INCAR_3

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-4
IBRION = 1
ISIF = 3
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = 1e-3

INCAR_4

SYSTEM = local optimization
ENCUT = 600
EDIFF = 1e-5
IBRION = 2
ISIF = 3
NSW = 80
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 3000
EDIFFG = 1e-4

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the submission job file for performing the VASP calculations.

Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO code in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all the output files of CALYPSO. To analyze the results, just type following command:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order is presented in ./dir_Li*H*/Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

7.6. Surface Structure Prediction

This section introduces the surface structure prediction module. It includes a description of the required input files, a typical run of the program, and result analysis.

Note

This part of CALYPSO package is currently in the early stage of development, there might be large changes on the control parameters and output files in the following versions.

For surface structure prediction, DFTB+ and VASP package are supported for local optimization by now.

This section will give a general introduction to the files used to run the program in the first place, then a relatively detailed description of each files, followed by two example runs of the program via VASP and DFTB+ packages.

The most important input files are: input.dat (control parameters), SUBSTRATE.surf (the structure files of substrate, both cif and VASP POSCAR format are supported), and input files for VASP/DFTB+. Most of the output files reside in results directory.

7.6.1. Diamond (111) surface reconstruction prediction

This subsection will introduce how to predict the (111) surface reconstruction of diamond using VASP as the local relaxation code.

In this example, the substrate will be generated automatically from crystal structures.

To perform surface structure prediction, one needs to create a directory and prepare the following files:

File Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO specifying the controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to operating system.

input.dat specifies all the control parameters that tell the program how to do the job of global surface structure search.

Most of the parameters have default values and do not need to be changed. Here is an example for diamond (111) surface reconstruction prediction:

LSurface    = T  # Surface reconstruction predictions
ICode        = 1  #VASP
Kgrid        = 0.2 
PopSize      = 20
MaxStep      = 30
PsoRatio     = 0.6
SurfaceThickness = 2.0
#|atomic symbol|count|
@SurfaceAtoms 
C    4   
@End
#--------------------------------------------------
#Following parameters are used to build 
#the surface from bulk crystal info reconstruction symmetry
Substrate  = Automatic
@MatrixNotation             
2     0
0     1
@End
UseCifFile = T         
CifFilePath = dia-vasp.cif
MillerIndex = 1 1 1 
SlabDepth = 0.0            
SlabNumLayers = 6
NumRelaxedLayers = 2
CapBondsWithH = T

Note that the Substrate tag is specified to “Automatic”, which means the substrate will be generated from the bulk crystal.

INCAR_*, POTCAR-* files must present in the current work directory for VASP users.

INCAR_1 and INCAR_2 are the central input files for VASP. The structures will be relaxed by a set of relatively low precision control parameters in INCAR_1 first; then the coarsely relaxed structures will be further relaxed by a set of relatively high-precision parameters in INCAR_2.

INCAR_1

PREC   = LOW
EDIFF  = 3e-2
EDIFFG = -4e-2
IBRION = 2
ISIF   = 0
NSW    = 45
ISMEAR = 0 ; SIGMA = 0.05
POTIM  = 0.050
LWAVE  = FALSE
LCHARG = FALSE
ISTART = 0

INCAR_2

ENCUT  = 500
EDIFF  = 1e-4
EDIFFG = 1e-3
IBRION = 2
ISIF   = 0
NSW    = 100
ISMEAR = 0; SIGMA = 0.05
POTIM  = 0.0300
LCHARG = FALSE
LWAVE  = FALSE
ISTART = 0

Users do NOT need to cat POTCAR of each atomic species together. The program will do the job automatically. However, one has to copy POTCAR for each element to this directory and rename it to POTCAR-* format, while the star (*) stands for the name of the element.

Taking surface structures constructed by C and H atoms for example, one needs to copy POTCAR of C and H to this directory and rename them to POTCAR-C and POTCAR-H, respectively. For pseudo-hydrogens with fractional valence electrons, such as Z=0.75, its POTCAR should be renamed to POTCAR-H.75.

submit.sh is the script for local relaxation via VASP. Here is an example:

mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all the input files are ready, you may run the structure prediction via the following command, or alternatively, put this execution command into a job submision script.

./calypso.x >  caly.log &

The result analysis process of surface structure prediction is similar to the crystal structure predictions. You may run the following commands:

cd results
cak.py --cif 

and will see the surface formation enthalpy order of predicted structures in Analysis_Output.dat file, and these newly predicted structure files with cif format can be found in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.6.2. Hydrogenated diamond (100) surface reconstruction

Example to perform hydrogenated diamond (100) surface reconstruction prediction using predefined substrate file and DFTB+ local relaxation will be demonstrated in this subsection.

Files needed to run this example are listed below:

File Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO specifying the controllable key parameters
SUBSTRATE.surf Substrate file (cif and POSCAR formatted are supported)
DFTB+ input files dftb_in.hsd_PRE_1, dftb_in.hsd_PRE_2, SK files
submit.sh A script to run VASP or DFTB+.

calypso.x can be downloaded according to different operating systems.

input.dat contains all the parameters to run the surface structure predictions.

In this example, we show how to control the program to adopt user specified substrate and use DFTB+ code to relax structures locally. Here is an example:

LSurface     = T  # Surface reconstruction predictions
ICode        = 8  # DFTB+
Kgrid        = 0.2 
PopSize      = 20
MaxStep      = 30
PsoRatio     = 0.6
SurfaceThickness = 2.0
@SurfaceAtoms #|atomic symbol|count|
C    4   
H    4
@End
Substrate  = SUBSTRATE.surf

SUBSTRATE.surf is a optional user defined substrate file. The surface will be generated on top of this substrate. Both VASP and CIF files can be recognized by CALYPSO.

One can set the Substrate control parameter in input.dat to “Auto” or “Automatic” in order to generate substrate automatically via crystal info.

Please see previous example for more information.

For VASP format, chemical symbols should be inserted just before the line of the numbers of atoms.

Diamond-100
1.00000
   5.054258   0.000000   0.000000
   0.000000   5.054258   0.000000
   0.000000   0.000000  19.467375
   H   C
   8  24
Selective dynamics
Direct
 0.10783118      0.00000000      0.21796252   F   F   F
 0.10783118      0.50000000      0.21796252   F   F   F
 0.60783118      0.00000000      0.21796252   F   F   F
 0.60783118      0.50000000      0.21796252   F   F   F
 0.39216882      0.00000000      0.21796252   F   F   F
 0.39216882      0.50000000      0.21796252   F   F   F
 0.89216882      0.00000000      0.21796252   F   F   F
 0.89216882      0.50000000      0.21796252   F   F   F
 0.25000000      0.25000000      0.48632006   T   T   T
 ...

Besides, CIF format is also supported. However, one needs to add _selective tag to specify which atoms are allowed to relax. Please see the following example file:

data_Surf
_amcsd_formula_title          "H8C48"
_symmetry_Int_Tables_number   1
_cell_length_a                5.052205
_cell_length_b                5.052205
_cell_length_c                19.824233
_cell_angle_alpha             90.000000
_cell_angle_beta              90.000000
_cell_angle_gamma             90.000000
 
loop_
_space_group_symop_operation_xyz
x,y,z
loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_selective
C        0.00000000  0.25000000  0.74778343   T
C        0.00000000  0.75000000  0.74778343   T
C        0.50000000  0.25000000  0.74778343   T
C        0.50000000  0.75000000  0.74778343   T
C        0.25000000  0.25000000  0.70273190   T
C        0.25000000  0.75000000  0.70273190   T
C        0.75000000  0.25000000  0.70273190   T
C        0.75000000  0.75000000  0.70273190   T
C        0.25000000  0.50000000  0.65768037   F
C        0.75000000  0.00000000  0.65768037   F
C        0.25000000  0.00000000  0.65768037   F
...

DFTB+ input files of hsd formated are needed to relax structures

dftb_in.hsd_PRE_1 and dftb_in.hsd_PRE_2, control parameters line between “####” will be filled automatically via the program and users shouldn’t change these values.

Besides, users should provide Slater-Koster (SK) files for DFTB+ calculation (Some SK files can be found in this link: http://www.dftb.org/parameters/).

submit.sh is the submission job file for perform the DFTB+ calculation. Here is an example of submit.sh:

#!/bin/bash
export OMP_NUM_THREADS=4
/share/apps/dftb+ > dftb.log 2>&1

Once all the input files are ready, you may run the structure prediction via the following command, or alternatively, put this execution command into a job submit script.

./calypso.x >  caly.log &

The result analysis process of surface structure prediction is similar to the crystal structure predictions. You may run the following commands:

cd results
cak.py --cif 

and will see the surface formation enthalpy order of predicted structures in Analysis_Output.dat file, and these newly predicted structure files with cif format can be found in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.6.3. Crystal lattice matches of two graphene

This subsection will introduce how to search the matched lattice for two materials which is used for building the simulated model for interface structure prediction.

This is an example for matching the lattices for graphene asymmetric grain boundary. The slab model with the optimally matched lattice adopted in the interface structure prediction will be generated automatically from graphene bulk structure.

File: Description
calypso.x The executable file of CALYPSO program to cleave the surface (i.e. create the primitive vectors of surface) with specified miller index
input.dat.ini The pre-input file to generate the input.dat file of CALYPSO specifying the controllable key parameters
lat1.cif, lat2.cif Structure files of bulk crystal in cif format with symmetry information
input_mismatch.dat Input files of lattice match toolkit
gen_slab_model.sh The script for calling calypso.x
mismatch-zur.x The executable file of lattice match toolkit

calypso.x can be downloaded according to different operating systems.

input.dat.ini contains all the parameters of calypso.x to cleave the surface. Here is an example:

LSurface         = T
ICode            = 1
Kgrid         = 0.1
PopSize     = 40
MaxStep     = 10
Pre_surf_relax=F

Surface_thickness = 1.5
ForbiThickness    = 0.50000000
SPACESAVING = T
@SURFACE_ATOMS  # |atomic symbol|count|
C  4
@END

#used to build the surface from bulk info
#reconstruction symmetry
Substrate        = Auto
@MATRIX_NOTATION
1     0
0     1
@END
Use_Cif_File = T
Cif_File_Path = SUBSTRATE
Miller_index = which
Slab_Vacuum_Thick = 15.0
Slab_Num_Layers = 8
Num_Relaxed_Layers = 2

Gen_Substrate=T

lat1.cif and lat2.cif are the user defined initial crystal files used for cleave the surfaces. They are in CIF format and the symmetry information should be included.

input_mismatch.dat

# This variable specifies the maximum area of searched superlattices.
MaximumArea = 200.0 

# This variable specifies the maximum lattice-mismatch value.
MaximumMismatchValue = 0.05 

# This variable specifies the maximum component of Miller index used for creating
# the facets based on the input crystal structures.
MaximumMillerIndex = 5 

# The flag specifies whether the input crystal structures are 2D layered materials.
# This parameter is set as "True" if the input crystal structures are 2D layered materials.
2DStrucuture = F

# This parameter is only used for the grain boundary system, in which two bulk phases
# are belonged to the same materials. The flag specifies whether the twin boundaries are
# preserved. This parameter is set as "True" if the twin boundary is needed to be preserved.
SameSubstrate = F

# If this parameter is set as "True" only the surface with the Miller indices listed in
# the "MillerIndex1List" will be generated. If this parameter is set as "False", all of
# surfaces with Miller index less than the specified maximum Miller index will be considered.
SpecifyingMillerIndex1 = F

# This parameter is a list of specified Miller indices used for generating the surfaces
# for the 1st material.
@MillerIndex1List
1 4 1 
@End 

SpecifyingMillerIndex2 = F

@MillerIndex2List
1 1 0 
@End

gen_slab_model.sh is a script used to call calypso.x program to cleave surface. It can be downloaded from the website: http://download.calypso.cn/

Once all the input files are prepared, you may run the structure prediction via the following command, or alternatively, put this execution command into a job submit script:

./mismatch-zur.x > mis.log

The result is recorded in the file mismatch-total.dat. It’s ranked by the degree of lattice mismatch (maismatch_value). The parameters “hkl” and “uv” are used to construct the surface by other software, such as Material Studios.

No. hkl1       uv1       hkl2        uv2      mismatch_value
1   0 0 1   3.00  0.00   0 0 1   -2.00   3.00      1
            0.00  3.00           -3.00  -2.00
2   1 4 1   3.00  3.00   1 1 0   -2.00   2.00      2
           -1.00  0.00            0.50  -0.50

7.6.4. Interface structure prediction of SIGMA5(210) grain boundary of rutile TiO2

This subsection will introduce how to predict the interfacial structures using DFTB+ as the local structure relaxation code.

In this example, the slab models of bulk phases are needed to be given as input. To perform interface structure prediction, one needs to create a directory and prepare the following files:

File: Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO specifying the controllable key parameters
SUBSTRATE* The slab models of bulk materials
dftb_in.hsd_PRE-* Input parameter files for DFTB+
-.skf Slater-Koster files for DFTB+
submit.sh A script to run DFTB+.

calypso.x can be downloaded according to different operating systems.

input.dat contains all the parameters to run the interface structure predictions.

In this example, we show how to control the program to adopt user specified slab models of bulk phases and use DFTB+ code to relax structures locally. Here is an example:

LSURFACE = T
LINTERFACE = T
ICode = 8
Rand_Scheme = 3
System_type = INTERFACE
PopSize = 50
MaxStep = 30
InterfaceTranslation = b
Interface_thckness = 3.5
@SURFACE_ATOMS
Ti 1
O  4
@END
@COORDINATE_NUMBER
Ti Ti 0  2.5  2.5
O  O  0  1.8  2.3
Ti O  6  1.8  2.5
O  To 3  1.8  2.5
@END
Substrate   = SUBSTRATE1
Substrate2  = SUBSTRATE2

SUBSTRATE* is the user defined slab models of bulk phases. The interface will be generated between two substrates. CIF and VASP formats can be recognized by CALYPSO. Note that filenames are optional but must be identical with the set of filenames in the input.dat file.

SUBSTRATE1

data_TiO2_rutile\(2\1\0)
_audit_creation_date              2015-08-27
_audit_creation_method            'Materials Studio'
_symmetry_space_group_name_H-M    'P1'
_symmetry_Int_Tables_number       1
_symmetry_cell_setting            triclinic
loop_
_symmetry_equiv_pos_as_xyz
  x,y,z
_cell_length_a                    2.9590
_cell_length_b                    10.2725
_cell_length_c                    30.2725
_cell_angle_alpha                 90.0000
_cell_angle_beta                  90.0000
_cell_angle_gamma                 90.0000
loop_
_atom_site_type_symbol
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_U_iso_or_equiv
_atom_site_adp_type
_atom_site_occupancy
_selective 
   Ti    0.00000   0.00000  -0.00000   0.00000  Uiso   1.00 T
   Ti    0.00000   0.60000   0.06787   0.00000  Uiso   1.00 T
   Ti    0.00000   0.20000   0.13573   0.00000  Uiso   1.00 T
   Ti    0.00000   0.80000   0.20360   0.00000  Uiso   1.00 T
   Ti    0.00000   0.40000   0.27147   0.00000  Uiso   1.00 T
   Ti    0.00000  -0.00000   0.33933   0.00000  Uiso   1.00 T
   Ti    0.50000   0.30000   0.03393   0.00000  Uiso   1.00 T
   Ti    0.50000   0.90000   0.10180   0.00000  Uiso   1.00 T
   Ti    0.50000   0.50000   0.16967   0.00000  Uiso   1.00 T
   Ti    0.50000   0.10000   0.23753   0.00000  Uiso   1.00 T
   Ti    0.50000   0.70000   0.30540   0.00000  Uiso   1.00 T
   O     0.00000   0.93904   0.06206   0.00000  Uiso   1.00 T
   O     0.00000   0.53904   0.12992   0.00000  Uiso   1.00 T
   O     0.00000   0.13904   0.19779   0.00000  Uiso   1.00 T
   O     0.00000   0.73904   0.26566   0.00000  Uiso   1.00 T
   O     0.00000   0.33904   0.33352   0.00000  Uiso   1.00 T
   O     0.00000   0.26096   0.07368   0.00000  Uiso   1.00 T
   O     0.00000   0.86096   0.14154   0.00000  Uiso   1.00 T
   O     0.00000   0.46096   0.20941   0.00000  Uiso   1.00 T
   O     0.00000   0.06096   0.27728   0.00000  Uiso   1.00 T
   O     0.50000   0.11712   0.01325   0.00000  Uiso   1.00 T
   O     0.50000   0.71712   0.08111   0.00000  Uiso   1.00 T
   O     0.50000   0.31712   0.14898   0.00000  Uiso   1.00 T
   O     0.50000   0.91712   0.21685   0.00000  Uiso   1.00 T
   O     0.50000   0.51712   0.28472   0.00000  Uiso   1.00 T
   O     0.50000   0.48288   0.05462   0.00000  Uiso   1.00 T
   O     0.50000   0.08288   0.12249   0.00000  Uiso   1.00 T
   O     0.50000   0.68288   0.19035   0.00000  Uiso   1.00 T
   O     0.50000   0.28288   0.25822   0.00000  Uiso   1.00 T
   O     0.50000   0.88288   0.32609   0.00000  Uiso   1.00 T

SUBSTRATE2

data_TiO2_rutile\(2\1\0)
_audit_creation_date              2015-08-27
_audit_creation_method            'Materials Studio'
_symmetry_space_group_name_H-M    'P1'
_symmetry_Int_Tables_number       1
_symmetry_cell_setting            triclinic
loop_
_symmetry_equiv_pos_as_xyz
  x,y,z
_cell_length_a                    2.9590
_cell_length_b                    10.2725
_cell_length_c                    30.2725
_cell_angle_alpha                 90.0000
_cell_angle_beta                  90.0000
_cell_angle_gamma                 90.0000
loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
_atom_site_U_iso_or_equiv
_atom_site_adp_type
_atom_site_occupancy
_selective 
   Ti    0.00000   0.00000  -0.00000   0.00000  Uiso   1.00 T
   Ti    0.00000   0.60000   0.06787   0.00000  Uiso   1.00 T
   Ti    0.00000   0.20000   0.13573   0.00000  Uiso   1.00 T
   Ti    0.00000   0.80000   0.20360   0.00000  Uiso   1.00 T
   Ti    0.00000   0.40000   0.27147   0.00000  Uiso   1.00 T
   Ti    0.00000  -0.00000   0.33933   0.00000  Uiso   1.00 T
   Ti    0.50000   0.30000   0.03393   0.00000  Uiso   1.00 T
   Ti    0.50000   0.90000   0.10180   0.00000  Uiso   1.00 T
   Ti    0.50000   0.50000   0.16967   0.00000  Uiso   1.00 T
   Ti    0.50000   0.10000   0.23753   0.00000  Uiso   1.00 T
   Ti    0.50000   0.70000   0.30540   0.00000  Uiso   1.00 T
   O     0.00000   0.93904   0.06206   0.00000  Uiso   1.00 T
   O     0.00000   0.53904   0.12992   0.00000  Uiso   1.00 T
   O     0.00000   0.13904   0.19779   0.00000  Uiso   1.00 T
   O     0.00000   0.73904   0.26566   0.00000  Uiso   1.00 T
   O     0.00000   0.33904   0.33352   0.00000  Uiso   1.00 T
   O     0.00000   0.26096   0.07368   0.00000  Uiso   1.00 T
   O     0.00000   0.86096   0.14154   0.00000  Uiso   1.00 T
   O     0.00000   0.46096   0.20941   0.00000  Uiso   1.00 T
   O     0.00000   0.06096   0.27728   0.00000  Uiso   1.00 T
   O     0.50000   0.11712   0.01325   0.00000  Uiso   1.00 T
   O     0.50000   0.71712   0.08111   0.00000  Uiso   1.00 T
   O     0.50000   0.31712   0.14898   0.00000  Uiso   1.00 T
   O     0.50000   0.91712   0.21685   0.00000  Uiso   1.00 T
   O     0.50000   0.51712   0.28472   0.00000  Uiso   1.00 T
   O     0.50000   0.48288   0.05462   0.00000  Uiso   1.00 T
   O     0.50000   0.08288   0.12249   0.00000  Uiso   1.00 T
   O     0.50000   0.68288   0.19035   0.00000  Uiso   1.00 T
   O     0.50000   0.28288   0.25822   0.00000  Uiso   1.00 T
   O     0.50000   0.88288   0.32609   0.00000  Uiso   1.00 T

DFTB+ input files of hsd format are needed to relax structures: dftb_in.hsd_PRE_1, dftb_in.hsd_PRE_2.

The structures will be relaxed by a set of relatively low precision control parameters in dftb_in.hsd_PRE_1 first; then the coarsely relaxed structures will be further relaxed by a set of relatively high-precision parameters in dftb_in.hsd_PRE_2.

Control parameters line between “####” will be filled automatically via the program and users shouldn’t change these values. Besides, users should provide Slater-Koster (SK) files for DFTB+ calculation (Some SK files can be found in this link: http://www.dftb.org/parameters/).

submit.sh is the submission job file for perform the DFTB+ calculation. Here is an example of submit.sh:

#!/bin/bash
export OMP_NUM_THREADS=4
/share/apps/dftb+ > dftb.log 2>&1

Once all the input files are ready, you may run the structure prediction via the following command, or alternatively, put this execution command into a job submit script:

./calypso.x > caly.log 2>&1

The result analysis process of surface structure prediction is similar to the crystal structure predictions. You may run the following commands:

cd results
cak.py --cif

You will see the interface formation enthalpy order of predicted structures in Analysis_Output.dat file, and these newly predicted structure files with cif format can be found in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.7. Design of Superhard Materials

This section is to show the examples for design of superhard materials using CALYPSO code. Here, VASP code is used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat, VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

File: Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat for the carbon system are shown:

SystemName = Carbon
NumberOfSpecies = 1
NameOfAtoms = C
NumberOfAtoms = 1
NumberOfFormula = 4 4
Volume = 14.0
@DistanceOfIon
1.30
@End
Ialgo = 2
PsoRatio = 0.6
PopSize = 30
ICode = 1
NumberOfLocalOptim = 4
Command = sh submit.sh
MaxStep = 50
Hardness = T

For VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) is in accordance with the setting tag of NumberOfLocalOptim.

In this example, we use four INCAR files for structure relaxation. INCAR_1 and INCAR_2 are used to perform very coarse structure relaxation keeping the volume fixed. INCAR_3 is used to perform full structure relaxation with medium precision, and INCAR_4 is used to perform very accurate calculations.

INCAR_1

SYSTEM = local optimization
PREC = LOW
EDIFF = 3e-2
IBRION = 2
ISIF = 2
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.5
LWAVE = FALSE
LCHARG = FALSE
ISTART = 0
PSTRESS = 0.001
EDIFFG = -4e-2

INCAR_2

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-2
IBRION = 2
ISIF = 4
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.2
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = -1e-2

INCAR_3

SYSTEM = local optimization
PREC = Normal
EDIFF = 2e-4
IBRION = 1
ISIF = 3
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 1e-3

INCAR_4

SYSTEM = local optimization
ENCUT = 600
EDIFF = 1e-5
IBRION = 2
ISIF = 3
NSW = 80
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 1e-4

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the submission job file for performing the VASP calculations. Here is an example of submit.sh:

Once all the input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO code in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files of CALYPSO. To analyze the results, just type following command:

cd results
cak.py --cif –hard

The index of the structures sorted by hardness in the descending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.8. Structure prediction of atom or molecule adsorption of 2D layer material

This section is to show the example for the structure prediction of hydrogenated graphene. Here, DFTB+ code was used for geometry optimization and energy calculations.

The CALYPSO input file of input.dat, 2D substrate structure information file of SUB.dat, DFTB+ input files of dftb_in_*.hsd and Slater-Koster (SK) files of *.skf are needed.

File: Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
SUB.dat 2D substrate structure information
Dftb_in_*.hsd Input files for DFTB+
*.skf SK files for DFTB+
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat for the hydrogenated graphene system are shown:

SystemName = Hydrogenated-graphene
NumberOfSpecies = 2
NameOfAtoms = C H
Ialgo = 2
PsoRatio = 0.6
ICode = 8
NumberOfLocalOptim = 2
Command = sh submit.sh
PopSize = 30
MaxStep = 30

Adsoption = T
AdsoptionStyle = 2
NumberOfTypeAtom = 1
@Adatoms
H 2 2
@End
@SuperCell
2 0
0 2
@End
RangeOfZAxis = 1.4 1.2

SUB.dat contains the 2D substrate structure information. Here we take graphene as an example:

graphine
1.0
  2.45940000    0.0000000    0.000000
  -1.2297000    2.1298750    0.000000
  0.00000000    0.0000000    15.00000
  C
  2
Direct
  0.66667  0.33333  0.50000
  0.33333  0.66667  0.50000
points
2
  0.66667  0.33333  0.50000
  0.33333  0.66667  0.50000

The structure information is given in the format of POSCAR.

If AdsorptionStyle is set to 2 in input.dat, the adsorption site is needed.

The line below the word points gives numbers of sites in the cell. The next few lines give the direct coordinates of adsorption sites.

DFTB+ input files in hsd formated are needed to relax structures: dftb_in_1.hsd, dftb_in_2.hsd. Besides, users should provide Slater-Koster (SK) files for DFTB+ calculation (Some SK files can be found in this link: http://www.dftb.org/parameters/).

submit.sh is the submission job file for perform the DFTB+ calculation. Here is an example of submit.sh:

#!/bin/bash
export OMP_NUM_THREADS=4
/share/apps/dftb+ > dftb.log 2>&1

Once all the input files are ready, you may run the structure prediction via the following command, or alternatively, put this execution command into a job submit script.

./calypso.x > caly.log &

The result analysis process of surface structure prediction is similar to the crystal structure predictions. You may run the following commands:

cd results
cak.py --cif 

and will see the surface formation enthalpy order of predicted structures in Analysis_Output.dat file, and these newly predicted structure files with cif format can be found in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.9. Design of Optical Materials with Desirable Electronic Band Gap

This section is to show the examples for design of optical materials with desirable electronic band gap using CALYPSO code.

We take the structure prediction of carbon (C) as an example. Here, VASP code was used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat and VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh Job submission file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown below:

SystemName = C
NumberOfSpecies = 1
NameOfAtoms = C
NumberOfAtoms = 1
Band_edge = T
TarBandGap = 2.5
NumberOfFormula = 4 4
Volume = 15.0
@DisatanceOfIon
1.0
@End
Ialog = 2
PsoRatio = 0.6
PopSize = 30
ICode = 1
NumberOfLocalOptim = 4
Command = sh submit.sh
MaxStep = 30

VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) should be larger than the setting tag NumberOfLocalOptim.

In this example, we use four INCAR files for structure relaxation and one INCAR files for calculating band gap.

INCAR_1 and INCAR_2 are used to perform very coarse structure relaxation keeping the volume fixed, INCAR_3 is used to perform full structure relaxation with medium precision, INCAR_4 is used to perform very accurate calculations, and INCAR_META is used to perform very accurate band gap calculations.

INCAR_1

SYSTEM local optimization
PREC = LOW
EDIFF = 3e-2
IBRION = 2
ISIF = 2
NSW = 40
ISMEAR = 0 ; SIGMA = 0.5
POTIM = 0.5
LWAVE = FALSE
LCHARG = FALSE
ISTART = 0
PSTRESS = 0.001
EDIFFG = -4e-2

INCAR_2

SYSTEM local optimization
PREC = Normal
EDIFF = 2e-2
IBRION = 2
ISIF = 4
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.2
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = -4e-1

INCAR_3

SYSTEM local optimization
PREC = Normal
EDIFF = 2e-4
IBRION = 1
ISIF = 3
NSW = 40
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 2e-3

INCAR_4

SYSTEM local optimization
ENCUT = 400
EDIFF = 1e-5
IBRION = 2
ISIF = 3
NSW = 80
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
LWAVE = FALSE
LCHARG = FALSE
PSTRESS = 0.001
EDIFFG = 2e-3

INCAR_META

SYSTEM local optimization
PREC = Accurate
ENCUT = 400
EDIFF = 1e-6
IBRION = -1
ISMEAR = -5 ; SIGMA = 0.05
METAGGA = MBJ
LASPH = .TRUE.
LMINTAU = .TRUE.
NELM = 80
NEDOS = 800

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Meta-GGA calculations require POTCAR files containing information on the kinetic energy density of the core-electrons. To check the pseudopotential file (POTCAR), please type:

grep kinetic POTCAR

This should yield at least the following lines (for each element on the file):

kinetic energy-density
mkinetic energy-density pseudized

and for PAW datasets with partial core corrections:

kinetic energy density (partial)

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh (VASP.4.* version is not support META-GGA):

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files. To analyze the results of CALYPSO, just type following command:

cd results
cak.py --cif

The index of the structures sorted by band gap in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.10. Crystal Structure Prediction with Fixed Cell Parameters or Atomic Positions

This section is to show the examples for the three-dimensional crystal structure prediction with fixed cell parameters or partial atomic positions using CALYPSO code. Here, VASP code is used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat and VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be presented in the working directory:

File Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
cell.dat The input file contains fixed cell parameters and atomic positions
INCAR_* Input files for VASP
POTCAR Pseudopotential for VASP
submit.sh submission job file

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown as below:

SystemName = SiC
NumberOfSpecies = 2
NameOfAtoms =  C Si
NumberOfAtoms = 4 4
NumberOfFormula = 1 1
@DistanceOfIon
 1.2 1.4
 1.4 1.4
@End
Ialgo = 2
PsoRatio = 0.6
PopSize = 5
ICode= 1
NumberOfLbest=4
NumberOfLocalOptim= 3
Command = sh submit.sh
FixCell= T
FixAtom= T

cell.dat file contains the fixed information of cell parameters and partial atomic positions.

In this example, the atomic positions of C are fixed. The first three lines indicate the lattice matrix. The forth line is the number of atoms to be fixed followed with the fixed coordinates of atomic positions.

4.4   0.0   0.0
0.0   4.4   0.0
0.0   0.0   4.4
4   0
0.0   0.0   0.0
0.5   0.5   0.0
0.5   0.0   0.5
0.0   0.5   0.5

In this example, three INCAR files are used for structure relaxation:

INCAR_1 and INCAR_2 files are used to perform very coarse structure relaxation with the fixed volume, and INCAR_3 file is used to perform full structure relaxation (i.e., variable lattice parameters, variable volumes, and variable atomic coordinates) with medium and accurate precision, respectively.

INCAR_1

SYSTEM = optimization
PREC = LOW
EDIFF = 3e-2
SYMPREC = 1e-3
IBRION = 2
ISIF = 2
NSW = 45
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.05
PSTRESS = 0.01
EDIFFG = -4e-2

INCAR_2

SYSTEM = optimization
PREC = Normal
EDIFF = 2e-2
SYMPREC = 1e-3
IBRION = 2
ISIF = 2
NSW = 55
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.1
PSTRESS = 0.01
EDIFFG = -4e-1

INCAR_3

SYSTEM = optimization
PREC = Accurate
ENCUT = 520
EDIFF = 1e-5
IBRION = 2
ISIF = 3
NSW = 60
ISMEAR = 1 ; SIGMA = 0.2
POTIM = 0.05
PSTRESS = 0.01
EDIFFG = 1e-3

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files. To analyze the results of CALYPSO, just type following command:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.11. Structural Prediction via X-ray Diffraction Data

This section is to show the example for the structural prediction of ZnO via X-ray diffraction data using CALYPSO code. Here, VASP code was used for geometry optimization and enthalpy calculations.

The CALYPSO input file of input.dat and VASP input files of INCAR_* and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_* Input files for VASP
POTCAR Pseudopotential file for VASP
submit.sh Job submission file
XRD.data The experimental XRD data

calypso.x can be downloaded according to different operating systems.

Parameters in the input.dat are shown below:

SystemName = ZnO
NumberOfSpecies = 2
NameOfAtoms = Zn O
NumberOfAtoms = 1 1
NumberOfFormula = 2 2
Volume = 25.0
@DistanceOfIon
1.0 1.0
1.0 1.0
@End
Ialog = 2
PsoRatio = 0.6
PopSize = 30
ICode = 1
NumberOfLocalOptim = 3
Command = sh submit.sh
MaxStep = 30
LXRD = T
WaveLength = 1.54056
StepOf2Theta = 0.02
RangeOf2Theta = 20.0 80.0
StandardPeakPosition = 35.8 36.8

XRD.dat file contains the information of the experimental XRD data. The values of the first row and second row are \(2\theta\) and intensities of XRD, respectively.

20.00    38.3014
20.02    38.3014
20.04    38.3014
...

For VASP, the number of INCAR_* (INCAR_1, INCAR_2, …) files should be in accordance with the setting tag NumberOfLocalOptim.

In this example, three INCAR files are used for structure relaxation:

INCAR_1 and INCAR_2 files are used to perform very coarse structure relaxation with the fixed volume, and INCAR_3 file is used to perform full structure relaxation (i.e., variable lattice parameters, variable volumes, and variable atomic coordinates) with medium and accurate precision, respectively.

INCAR_1

SYSTEM = optimization
PREC = LOW
EDIFF = 1e-2
IBRION = 2
ISIF = 2
NSW = 45
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.05
PSTRESS = 0.001
EDIFFG = -4e-1

INCAR_2

SYSTEM = optimization
PREC = Normal
EDIFF = 2e-3
IBRION = 2
ISIF = 4
NSW = 55
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.1
PSTRESS = 0.001
EDIFFG = -4e-1

INCAR_3

SYSTEM = optimization
PREC = Accurate
ENCUT = 520
EDIFF = 1e-4
IBRION = 2
ISIF = 3
NSW = 200
ISMEAR = 0 ; SIGMA = 0.05
POTIM = 0.05
PSTRESS = 0.001

Hint

Multi-optimization strategy for structure relaxation is strongly suggested

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files. To analyze the results of CALYPSO, just type following command:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.12. Prediction of Transition States in Solids

This section is to show the example for the prediction of transition state of diamond to b-Sn of Si using CALYPSO code. Here, VASP code was used for enthalpy calculations.

The CALYPSO input file of input.dat and VASP input files of INCAR_1 and pseudopotential file of POTCAR are needed.

The following files should be present in the working directory:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
INCAR_1 Input files for VASP
POTCAR Pseudopotential file for VASP
submit.sh Job submission file
IF_struct.dat The structures of initial and final states

calypso.x can be downloaded according to different operating systems.

Parameters in input.dat are shown below:

SystemName = Si
NumberOfSpeceis = 1
NameOfAtoms = Si
NumberOfAtoms = 8
NumberOfFormula = 1 1
Volume = 35.0
@DistanceOfIon
1.0
@End
Ialgo = 1
PsoRatio = 0.6
PopSize = 6
ICode = 1
Command = sh submit.sh
MaxStep = 30
LTranState = T
NumberOfImages = 3

IF_struct.dat file contains the structural information of initial and final states.

Here we take phase transition of diamond to b-Sn in Si as an example. The structural information of initial state is followed by the structure of final state.

The format of each structure in IF_struct.dat file is the same with that used in VASP code:

  • the first line is treated as a comment line

  • the second line provides a universal scaling factor to scale all lattice vectors (the value is set to 1.0 in our module).

  • the following three lines are three lattice vectors defining the unit cell of the system (first line corresponding to the first lattice vector, second to the second, and third to the third)

  • the sixth line supplies the number of atoms per atomic species (one number for each atomic species), and the ordering must be consistent with the POTCAR

  • the seventh line (“Direct”) specifies the atomic position are provided in fractional coordinates

  • the next lines give the three coordinates for each atom

Si-initial state
  1.0
    5.46668 0.0     0.0
    0.0     5.46668 0.0
    0.0     0.0     5.46668
  8
Direct
  0.25    0.25    0.25
  0.75    0.75    0.25
  0.75    0.25    0.75
  0.25    0.75    0.75
  0.0     0.0     0.0
  0.0     0.5     0.5
  0.5     0.0     0.5
  0.5     0.5     0.0
Si-final state
  1.0
    4.68599 0.0     0.0
    0.0     4.69686 0.0
    0.0     0.0     5.16999
  8
Direct
  0.0     0.5     0.125
  0.5     0.5     0.25
  0.0     0.0     0.0
  0.5     0.0     0.875
  0.5     0.5     0.75
  0.0     0.0     0.5
  0.5     0.0     0.375
  0.0     0.5     0.625

In this example, VASP code is used for structure relaxation, one input file INCAR_1 is needed:

INCAR_1

SYSTEM = scf
PREC = Accurate
NSW = 1
IBRION = -1
EDIFF = 1e-3
ISMEAR = 1 ; SIGMA = 0.2
PSTRESS = 0.001

POTCAR should be provided.

Important

ATTENTION!!! The order of elements in POTCAR must be identical to the element order in the setting tag of NameOfAtoms.

submit.sh is the job submission file for performing the VASP calculations. Here is an example of submit.sh:

#!/bin/bash
mpdboot
mpiexec -n 12 vasp_std > vasp.log 2>&1

Once all input files are ready, you can just type

./calypso.x > caly.log &

to execute the CALYPSO in the sequential mode. Or you can write this command into the pbs script and submit it.

CALYPSO will generate the results folder, which contains all outputs files. To analyze the results of CALYPSO, just type following command:

cd results
cak.py --cif

The index of the structures sorted by enthalpies in the ascending order is presented in Analysis_Output.dat file, and these newly predicted structure files with cif format are shown in dir_0.1 directory.

Please see here for more information about the analyses of CALYPSO results.

7.13. Accelerating Structure Prediction by Machine Learning Potentials (MLP)

This section is to show the example for accelerating CALYPSO structure prediction by Machine Learning Potentials (MLP).

The following files will be used in this part:

Files Description
calypso.x The executable file for running CALYPSO program
input.dat The input file of CALYPSO containing controllable key parameters
get_vasp.py Python script that extracts structural information (structure, energy, atomic force and cell stress) from VASP OUTCAR file
config/test The training/testing data set file for fitting MLP
neural.in The parameters of atom-centered symmetry function
gap_parameters The parameters of machine learning potential
cgg2.py The Python script used for controlling all prediction process

For accelerating CALYPSO structure prediction by MLP, you only need three steps:

  1. Constructing training (and testing) data set

  2. Fitting MLP

  3. Accelerating CALYPSO by well-trained MLP

7.13.1. Constructing training (and testing) data set

config

Structural information used for training MLP

test (optional)

Structural information used for testing the precision and transferability of MLP

For constructing the config/test file, you need to prepare a lot of OUTCAR files named as OUTCAR_* (* means arbitrary string you want) in one directory:

get_vasp.py OUTCAR_1 OUTCAR_2 ...

Then using this command to obtain the config/test file:

python get_vasp.py

7.13.2. Fitting MLP

For fitting MLP, the following files should be present in the working directory:

calypso.x config test input.dat neural.in

and the following parameters should be modified in input.dat.

MLP_IMODE : int, optional, default 0

must be set to 2 for fitting MLP

NumberOfSpecies : int

number of atomic species

NameOfAtoms: string

element symbols

WeightOfAtoms : list[float]

weight of each atomic species in calculating atom centered symmetry function (ACSF)

Rcut : float, optional, default 6.0

defines the spherical region in calculating atomic neighboring list (unit: \(\mathring{A}\))

SigmaE : float, optional, default 0.001

relative weight of energy in fitting MLP

SigmaF : float, optional, default 0.01

relative weight of atomic force in fitting MLP

SigmaS : float, optional, default 0.01

relative weight of cell stress in fitting MLP

Ltrain : logical, optional, default True

whether fitting MLP using config file

Ltest : logical, optional, default True

whether testing MLP using test file

Lstress : logical, optional, default True

whether include information of cell stress in fitting MLP

Isparse : int, optional, default 3

sparse method in Gaussian process, currently 3 is supplied only

Sparsecut : float, optional, default 1.0

threshold value of distance between two atomic feature vectors in sparse process

With our experience, there is no need to modify neural.in for different elementary or binary system.

Once all the input files are ready, run

./calypso.x

and drink a cup of tea.

After it finished successfully, you will get the parameter file of MLP gap_parameters and the predicted results predicted.dat on test file using fitted MLP.

7.13.3. Structure prediction assisted by MLP

If you have fitted the MLP which reached required accuracy, you could accelerate structure prediction by this MLP.

The following files should be present in the working directory:

input.dat gap_parameters cgg2.py

and the following parameters should be modified in input.dat:

Split

logical, must be set to True, default False

NumberOfParallel

int, number of structural optimization tasks which could be run parallelly. For convenience, PopSize should be divisible by NumberOfparallel, default 20

CALYPSO_PATH

string, absolute path of calypso.x

GAPP_PATH

string, absolute path of gap_parameters

Pstress

float, external pressure in structural optimization (Unit: GPa)

Ftol

float, break condition of energy (Unit: eV), default 0.0005

Gtol

float, break condition of the gradient of energy (Unit: eV/\(\mathring{A}\)), default 0.005

Maxcycle

int, maximum number of structural optimization tasks, default 200

MaxTime

float, maximum time of structural optimization tasks (Unit: s), default 1000

Once all input files are ready, type the following command:

nohup python cgg2.py > caly.log &

The output files are similar to the normal CALYPSO structure prediction.

Please see here for more information about the analyses of CALYPSO results.