Parameters for structure relaxation¶
calculation.relaxation.method¶
key word |
: |
calculation.relaxation.method |
possible values |
: |
MD, molecularDynamics, |
CG, conjugateGradient |
||
default value |
: |
MD |
description |
: |
the method used for the structure relaxation. |
an example |
: |
calculation.relaxation.method = CG |
calculation.relaxation.maximumSteps¶
key word |
: |
calculation.relaxation.maximumSteps |
possible values |
: |
an integer |
default value |
: |
max(3n,25), where n is the number of moving atoms. |
description |
: |
The maximum steps in the minimum energy searching cycle. |
an example |
: |
calculation.relaxation.maximumSteps = 200 |
calculation.relaxation.forceConvergenceCriterion¶
key word |
: |
calculation.relaxation.forceConvergenceCriterion |
possible values |
: |
a double number with or without an unit of |
meV/an, meV/ang, meV/angstrom; |
||
eV/an, eV/ang, eV/angstrom; |
||
meV/au, meV/a.u., meV/Bohr; |
||
eV/au, eV/a.u., eV/Bohr; |
||
au, a.u., atomic unit |
||
default value |
: |
0.03 eV/angstrom |
description |
: |
The criterion of the maximum force component for the |
minimum energy. |
||
If the unit string is missing, it will be considered to |
||
use the unit implicitly defined by the parameters |
||
calculation.control.energyUnit and .lengthUnit. |
||
an example |
: |
calculation.relaxation.forceConvergenceCriterion = … |
0.05 eV/angstrom |
calculation.relaxation.stressConvergenceCriterion¶
key word |
: |
calculation.relaxation.stressConvergenceCriterion |
possible values |
: |
a double number with or without the unit of |
GPa; |
||
kbar; |
||
au, a.u., atomic unit |
||
default value |
: |
2 GPa |
description |
: |
The criterion of the maximum component of the stress (per |
volume) for the minimum energy. |
||
If the unit string is missing, it will be considered to |
||
use the unit implicitly defined by the parameters |
||
calculation.control.energyUnit and .lengthUnit. |
||
Note: 1 GPa = 10 kbar = 3.3989e-05 au. |
||
an example |
: |
calculation.relaxation.stressConvergenceCriterion = 2.5 GPa |
calculation.relaxation.movingAtoms¶
key word |
: |
calculation.relaxation.movingAtoms |
possible values |
: |
integer array |
default value |
: |
all atoms in the central cell for molecular or bulk |
system; no default value for system with probes |
||
description |
: |
The 3*n coordinates corresponding to the atoms listed in |
the movingAtoms will be allowed to change during the |
||
relaxation, and the others will be fixed. |
||
an example |
: |
calculation.relaxation.movingAtoms = [10:291] |
calculation.relaxation.rigidBodies¶
key word |
: |
calculation.relaxation.rigidBodies |
possible values |
: |
cell array, each cell contains an integer array |
default value |
: |
empty |
description |
: |
The atoms listed in each cell are considered as a rigid |
body, i.e., the internal freedoms between the atoms with |
||
the rigid body are frozen during the relaxation. |
||
Note that (1) all the atoms in the rigid bodies should |
||
be in the list of movingAtoms; |
||
|
||
constrained group and a rigid body, or two constrained |
||
groups. |
||
|
||
an example |
: |
calculation.relaxation.rigidBodies = {[21:26], [121:126]} |
calculation.relaxation.constrainGroups1D¶
key word |
: |
calculation.relaxation.constrainGroups1D |
possible values |
: |
cell array, each cell contains an integer array |
default value |
: |
empty |
description |
: |
The atoms listed in each cell are constrained and can |
only move along a fixed direction given in the parameter |
||
relaxation.constrainDirections1D. |
||
Note that (1) all the atoms in the groups should |
||
be in the list of movingAtoms; |
||
|
||
constrained group and a rigid body, or two constrained |
||
groups. |
||
|
||
in the parameter relaxation.constrainDirections1D. |
||
an example |
: |
calculation.relaxation.constrainGroups1D = {[21:26], [121:126]} |
calculation.relaxation.constrainDirections1D¶
key word |
: |
calculation.relaxation.constrainDirections1D |
possible values |
: |
cell array, each cell contains a 3\(\times\)1 double vector |
default value |
: |
no default value |
description |
: |
Each cell defines a direction, and the atoms in the |
corresponding group defined in the parameter |
||
relaxation.constrainGroups1D can only be allowed to move |
||
along this direction. |
||
an example |
: |
calculation.relaxation.constrainDirections1D = {[1;2;3],[0;0;1]} |
calculation.relaxation.constrainGroups2D¶
key word |
: |
calculation.relaxation.constrainGroups2D |
possible values |
: |
cell array, each cell contains an integer array |
default value |
: |
empty |
description |
: |
The atoms listed in each cell are constrained and can |
only move perpendicularly to a fixed direction given in |
||
the parameter relaxation.constrainDirections2D, i.e., |
||
every atom can only be allowed to move within its plane. |
||
Note that (1) all the atoms in the groups should |
||
be in the list of movingAtoms; |
||
|
||
constrained group and a rigid body, or two constrained |
||
groups. |
||
|
||
in the parameter relaxation.constrainDirections2D. |
||
an example |
: |
calculation.relaxation.constrainGroups2D = {[21:26], [121:126]} |
calculation.relaxation.constrainDirections2D¶
key word |
: |
calculation.relaxation.constrainDirections2D |
possible values |
: |
cell array, each cell contains a 3\(\times\)1 double vector |
default value |
: |
no default value |
description |
: |
Each cell defines a direction, and every atom in the |
corresponding group defined in the parameter |
||
relaxation.constrainGroups2D can only be allowed to move |
||
within a plane normal to the given direction. |
||
an example |
: |
calculation.relaxation.constrainDirections2D = {[1;2;3],[0;0;1]} |
calculation.relaxation.fixCentralCellShape¶
key word |
: |
calculation.relaxation.fixCentralCellShape |
possible values |
: |
true or false |
default value |
: |
true |
description |
: |
If true, the central cell shape will not be changed |
during the relaxation. |
||
an example |
: |
calculation.relaxation.fixCentralCellShape = false |
calculation.relaxation.fixedCellVectors¶
key word |
: |
calculation.relaxation.fixedCellVectors |
possible values |
: |
cell array, each cell contains an integer of 1, 2, or 3 |
default value |
: |
n/a |
description |
: |
The assigned cell vectors are fixed (both directions and |
lengths) in the relaxation process. |
||
an example |
: |
calculation.relaxation.fixedCellVectors = {1, 2} |
calculation.relaxation.fixedCellDirections¶
key word |
: |
calculation.relaxation.fixedCellDirections |
possible values |
: |
cell array, each cell contains an integer of 1, 2, or 3 |
default value |
: |
n/a |
description |
: |
The spatial directions of the assigned cell vectors are |
fixed. During the relaxation process, the lengths of the |
||
said vectors can vary. |
||
an example |
: |
calculation.relaxation.fixedCellDirections = {1, 2} |
calculation.relaxation.fixedCellScale¶
key word |
: |
calculation.relaxation.fixedCellScale |
possible values |
: |
cell array, each cell contains an integer of 1, 2, or 3 |
default value |
: |
n/a |
description |
: |
The spatial directions of the assigned cell vectors are |
fixed. During the relaxation process, the lengths of the |
||
said vectors vary with the same scale. It is useful when |
||
the crystal structure of the system is known but the |
||
lattice constant is unknown. At least two vectors must be |
||
assigned in order for this option to work. |
||
an example |
: |
calculation.relaxation.fixedCellScale = {1, 2} |
calculation.relaxation.constantVolume¶
key word |
: |
calculation.relaxation.constantVolume |
possible values |
: |
true, false |
default value |
: |
false |
description |
: |
The volume of the unit cell is fixed during the |
relaxation process. This handle can be combined with |
||
fixedCellVectors, fixedCellDirections and/or |
||
fixedCellScale to form various constaints on the unit |
||
cell shape. |
||
an example |
: |
calculation.relaxation.constantVolume = true |
calculation.relaxation.constantPressure¶
key word |
: |
calculation.relaxation.constantPressure |
possible values |
: |
1\(\times\)1, or 1\(\times\)3, or 1\(\times\)6, or 3\(\times\)3 double matrix, with |
or without the unit of |
||
GPa; |
||
kbar; |
||
au, a.u., atomic unit |
||
default value |
: |
0 |
description |
: |
The external stress applied to the system. When it is a |
double number, it means an isotropic pressure; |
||
1\(\times\)3 double matrix means an anisotropic pressure; |
||
1\(\times\)6 double matrix means an anisotropic pressure and a |
||
symmetrized shear (the order of the six number is |
||
P11, P22, P33, P12, P23, and P13); |
||
3\(\times\)3 double matrix means a full stress tensor. |
||
If the unit string is missing, it will be considered to |
||
use the unit implicitly defined by the parameters |
||
calculation.control.energyUnit and control.lengthUnit. |
||
an example |
: |
calculation.relaxation.constantPressure = [100, 0, 0] GPa |
calculation.relaxation.opticalPhononFrequency¶
key word |
: |
calculation.relaxation.opticalPhononFrequency |
possible values |
: |
a double number with or without the unit of meV, eV, |
THz, Hz, or /cm |
||
default value |
: |
2000 /cm |
description |
: |
A reasonably estimated value of the optical phonon |
frequency of the system. In MD, this value is used to |
||
set up the proper time step. In CG, this value is used |
||
to optimize the first line search trial. An input close |
||
to physical value will greatly speed up the relaxation |
||
process. If unsure about the proper value to use, the |
||
user is advised to set this quantity conservatively, |
||
i.e., at higher values. The relaxation will generally |
||
take longer, with the benifit of enhanced stability. |
||
Note: if the unit string is missing, it will be |
||
considered to use the unit defined by the parameter |
||
calculation.control.energyUnit. |
||
an example |
: |
calculation.relaxation.opticalPhononFrequency = 1000 /cm |
calculation.relaxation.bulkModulus¶
key word |
: |
calculation.relaxation.bulkModulus |
possible values |
: |
a double number with or without the unit of |
GPa; |
||
kbar; |
||
au, a.u., atomic unit |
||
default value |
: |
100 GPa |
description |
: |
A reasonably estimated value of the bulk modulus of the |
system. This quantity is useful for a variable unit cell |
||
relaxation. In MD, this value is used to set up the |
||
proper time step. In CG, this value is used to optimize |
||
the first line search trial. An input close to physical |
||
value will greatly speed up the relaxation process. If |
||
unsure about the proper value to use, the user is |
||
advised to set this quantity conservatively, i.e., at |
||
higher values. The relaxation will generally take |
||
longer, with the benefit of enhanced stability. |
||
If the unit string is missing, it will be considered to |
||
use the unit implicitly defined by the parameters |
||
calculation.control.energyUnit and control.lengthUnit. |
||
Note: 1 GPa = 10 kbar = 3.3989e-05 au. |
||
an example |
: |
calculation.relaxation.bulkModulus = 300 GPa |
calculation.relaxation.history¶
key word |
: |
calculation.relaxation.history |
possible values |
: |
true or false |
default value |
: |
false |
description |
: |
If true, a file searchingHistoryOfTheStructures.txt |
is generated to record the searching history of the |
||
structures. |
||
an example |
: |
calculation.relaxation.history = false |
calculation.relaxation.CG.type¶
key word |
: |
calculation.relaxation.CG.type |
possible values |
: |
FR, Fletcher-Reeves |
PR, Polak-Ribiere, |
||
SD, steepestDescent, |
||
default value |
: |
FR |
description |
: |
The conjugate gradient (CG) method can be used in different |
ways, including the steepest-descent searching. |
||
This parameter specify the way used in the CG method. |
||
an example |
: |
calculation.relaxation.CG.type = SD |
calculation.relaxation.CG.maxLineSearchIterations¶
key word |
: |
calculation.relaxation.CG.maxLineSearchIterations |
possible values |
: |
an integer number |
default value |
: |
2 |
description |
: |
The maximum number of line-search iterations. |
an example |
: |
calculation.relaxation.CG.maxLineSearchIterations = 5 |
calculation.relaxation.MD.deltaT¶
key word |
: |
calculation.relaxation.MD.deltaT |
possible values |
: |
a double number |
default value |
: |
1 |
description |
: |
The scaled initial time step. The unit of the time step |
is \(\pi\)/2/opticalPhononFrequency (see the description for |
||
calculation.relaxation.opticalPhononFrequency). |
||
an example |
: |
calculation.relaxation.MD.deltaT = 0.5 |
calculation.relaxation.MD.alpha¶
key word |
: |
calculation.relaxation.MD.alpha |
possible values |
: |
a double number greater than 1. |
default value |
: |
1.2 |
description |
: |
the alpha factor which is used to increase the time step |
when the relaxation is too slow. A larger value will |
||
result in larger increase in time step every time it is |
||
adjusted. |
||
an example |
: |
calculation.relaxation.MD.alpha = 1.5 |
calculation.relaxation.MD.beta¶
key word |
: |
calculation.relaxation.MD.beta |
possible values |
: |
a double number less than 1. |
default value |
: |
0.8 |
description |
: |
The beta factor which is used to decrease the time step |
when the relaxation is unstable. A smaller value will |
||
result in larger decrease in time step every time it is |
||
adjusted. |
||
an example |
: |
calculation.relaxation.MD.beta = 0.7 |
calculation.relaxation.MD.maxMove¶
key word |
: |
calculation.relaxation.MD.maxMove |
possible values |
: |
a double number |
default value |
: |
0.2 Bohr |
description |
: |
The scaled maximum displacement allowed between two |
steps, in the length unit defined by the input parameter |
||
calculation.control.lengthUnit. |
||
an example |
: |
calculation.relaxation.MD.maxMove = 0.1 |
calculation.relaxation.MD.fdamp¶
key word |
: |
calculation.relaxation.MD.fdamp |
possible values |
: |
a double number between 0 and 1. |
default value |
: |
0.35 |
description |
: |
The damping factor. Zero means no damping. |
an example |
: |
calculation.relaxation.MD.fdamp = 0.7 |