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;

  1. no atoms can be shared by two rigid bodies, a

constrained group and a rigid body, or two constrained

groups.

  1. each rigid body should contain at least two atoms.

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;

  1. no atoms can be shared by two rigid bodies, a

constrained group and a rigid body, or two constrained

groups.

  1. the corresponding moving directions should be given

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;

  1. no atoms can be shared by two rigid bodies, a

constrained group and a rigid body, or two constrained

groups.

  1. the corresponding plane directions should be given

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