CELL_OPT

This section sets the environment for the optimization of the simulation cell. As is noted in FORCE_EVAL/SUBSYS/CELL, the program convention is that the first cell vector A lies along the X-axis and the second cell vector B is in the XY plane, such that the cell vector matrix is a lower triangle. There is no complete, official algorithm support and/or tests for updating the three upper triangular components during a cell optimization; please prepare input accordingly with these three components precisely 0 even for cases like the primitive rhombohedral cell of the FCC lattice. [Edit on GitHub]

Subsections

Keywords

Keyword descriptions

CONSTRAINT

Type: enum
Default: NONE
Usage: CONSTRAINT (none|x|y|z|xy|xz|yz)

Description: Imposes a constraint on the pressure tensor by fixing the specified cell components.

Valid values:

  • NONE Fix nothing

  • X Fix only x component

  • Y Fix only y component

  • Z Fix only z component

  • XY Fix x and y component

  • XZ Fix x and z component

  • YZ Fix y and z component

Mentions:Geometry and cell optimization

[Edit on GitHub]

EPS_SYMMETRY

Type: real
Default: 1.00000000E-004
Usage: EPS_SYMMETRY {REAL}

Description: Accuracy for space group determination. EPS_SYMMETRY is dimensionless. Roughly speaking, two scaled (fractional) atomic positions v1, v2 are considered identical if |v1 - v2| < EPS_SYMMETRY.

[Edit on GitHub]

EXTERNAL_PRESSURE

Type: real[ ]
Default: 1.00000000E+002 0.00000000E+000 0.00000000E+000 0.00000000E+000 1.00000000E+002 0.00000000E+000 0.00000000E+000 0.00000000E+000 1.00000000E+002 [bar]
Usage: EXTERNAL_PRESSURE {REAL} .. {REAL}

Description: Specifies the external pressure (1 value or the full 9 components of the pressure tensor) applied during the cell optimization.

Mentions:Geometry and cell optimization

[Edit on GitHub]

KEEP_ANGLES

Type: logical
Default: F
Lone keyword: T
Usage: KEEP_ANGLES TRUE

Description: Keep angles between the cell vectors constant, but allow the lengths of the cell vectors to change independently during cell optimization. This is implemented by projecting out the components of angles in the cell gradient before the cell is updated. Albeit general, this is most useful for triclinic cells; to enforce higher symmetry, see KEEP_SYMMETRY.

Mentions:Geometry and cell optimization

[Edit on GitHub]

KEEP_SPACE_GROUP

Type: logical
Default: F
Lone keyword: T
Usage: KEEP_SPACE_GROUP .TRUE.

Description: Detect space group of the system and preserve it during optimization. The space group symmetry is applied to coordinates, forces, the stress tensor, and the CELL_OPT cell metric. It works for supercell. It does not affect/reduce computational cost. Use EPS_SYMMETRY to adjust the detection threshold.

Mentions:Geometry and cell optimization

[Edit on GitHub]

KEEP_SYMMETRY

Type: logical
Default: F
Lone keyword: T
Usage: KEEP_SYMMETRY TRUE

Description: Keep the requested initial cell symmetry as specified in the FORCE_EVAL/SUBSYS/CELL section during cell optimization. This is implemented by removing symmetry-breaking components and taking averages of components if necessary in the cell gradient before the cell is updated. To enforce the space group (which requires spglib package), see KEEP_SPACE_GROUP.

Mentions:K-Points, ⭐Geometry and cell optimization

[Edit on GitHub]

KEEP_VOLUME

Type: logical
Default: F
Lone keyword: T
Usage: KEEP_VOLUME TRUE

Description: Keep the volume of the cell constant during cell optimization. This is implemented by comparing the cell volumes and scaling the new cell vectors just before updating the cell information, and can be used together with KEEP_ANGLES or KEEP_SYMMETRY.

Mentions:Geometry and cell optimization

[Edit on GitHub]

MAX_DR

Type: real
Default: 3.00000000E-003 [bohr]
Usage: MAX_DR {real}

Description: Convergence criterion for the maximum geometry change between the current and the last optimizer iteration.

[Edit on GitHub]

MAX_FORCE

Type: real
Default: 4.50000000E-004 [bohr^-1*hartree]
Usage: MAX_FORCE {real}

Description: Convergence criterion for the maximum force component of the current configuration.

[Edit on GitHub]

MAX_ITER

Type: integer
Default: 200
Usage: MAX_ITER {integer}

Description: Specifies the maximum number of geometry optimization steps. One step might imply several force evaluations for the CG and LBFGS optimizers.

[Edit on GitHub]

OPTIMIZER

Type: enum
Default: BFGS
Aliases: MINIMIZER
Usage: OPTIMIZER {BFGS|LBFGS|CG}

Description: Specify which method to use to perform a geometry optimization.

Valid values:

  • BFGS Most efficient minimizer, but only for ‘small’ systems, as it relies on diagonalization of a full Hessian matrix

  • LBFGS Limited-memory variant of BFGS suitable for large systems. Not as well fine-tuned but can be more robust.

  • CG conjugate gradients, robust minimizer (depending on the line search) also OK for large systems

References: Byrd1995

Mentions:Troubleshooting

[Edit on GitHub]

PRESSURE_TOLERANCE

Type: real
Default: 1.00000000E+002 [bar]
Usage: PRESSURE_TOLERANCE {REAL}

Description: Specifies the Pressure tolerance (compared to the external pressure) to achieve during the cell optimization.

Mentions:Geometry and cell optimization

[Edit on GitHub]

RMS_DR

Type: real
Default: 1.50000000E-003 [bohr]
Usage: RMS_DR {real}

Description: Convergence criterion for the root mean square (RMS) geometry change between the current and the last optimizer iteration.

[Edit on GitHub]

RMS_FORCE

Type: real
Default: 3.00000000E-004 [bohr^-1*hartree]
Usage: RMS_FORCE {real}

Description: Convergence criterion for the root mean square (RMS) force of the current configuration.

[Edit on GitHub]

SHOW_SPACE_GROUP

Type: logical
Default: F
Lone keyword: T
Usage: SHOW_SPACE_GROUP .TRUE.

Description: Detect and show space group of the system after optimization. It works for supercell. It does not affect/reduce computational cost. Use EPS_SYMMETRY to adjust the detection threshold.

[Edit on GitHub]

SPGR_PRINT_ATOMS

Type: logical
Default: F
Lone keyword: T

Description: Print equivalent atoms list for each space group symmetry operation.

[Edit on GitHub]

STEP_START_VAL

Type: integer
Default: 0
Usage: step_start_val

Description: The starting step value for the CELL_OPT module.

[Edit on GitHub]

SYMM_EXCLUDE_RANGE

Type: integer[2]
Repeatable: yes
Usage: SYMM_EXCLUDE_RANGE {Int} {Int}

Description: Range of atoms to exclude from space group symmetry. These atoms are excluded from both identification and enforcement. This keyword can be repeated.

[Edit on GitHub]

SYMM_REDUCTION

Type: real[3]
Default: 0.00000000E+000 0.00000000E+000 0.00000000E+000
Usage: SYMM_REDUCTION 0.0 0.0 0.0

Description: Direction of the external static electric field. Some symmetry operations are not compatible with the direction of an electric field. These operations are used when enforcing the space group.

[Edit on GitHub]