CDFT_OPT

Parameters controlling optimization methods that are compatible only with CDFT based constraints (i.e. CDFT SCF is active). Specifically, the control parameters for the Broyden and Newton optimizers are defined in this section. [Edit on GitHub]

Keywords

Keyword descriptions

BROYDEN_TYPE: enum = BT1

Usage: BROYDEN_TYPE BT1

Valid values:

  • BT1 Broyden’s first method, also known as the good method. The initial Jacobian is built from MD history if available. Otherwise switches to SD for one SCF iteration until a Jacobian can be built from the SCF history.

  • BT1_EXPLICIT Same as BT1, but computes the explicit Jacobian with finite differences. Requires a CDFT SCF procedure to be active.

  • BT2 Same as BT1, but uses Broyden’s second method, also known as the bad method.

  • BT2_EXPLICIT Same as BT1_EXPLICIT, but using Broyden’s second method.

  • BT1_LS Same as BT1, but uses backtracking line search for optimizing the step size (see optimizer NEWTON_LS).

  • BT1_EXPLICIT_LS Same as BT1_EXPLICIT, but uses backtracking line search for optimizing the step size.

  • BT2_LS Same as BT2, but uses backtracking line search for optimizing the step size.

  • BT2_EXPLICIT_LS Same as BT2_EXPLICIT, but uses backtracking line search for optimizing the step size.

Specifies the Broyden optimizer variant to use. [Edit on GitHub]

CONTINUE_LS: logical = F

Lone keyword: T

Usage: CONTINUE_LS TRUE

Continue backtracking line search until MAX_LS steps are reached or the norm of the CDFT gradient no longer decreases. Default (false) behavior exits the line search procedure on the first step that the gradient decreases. [Edit on GitHub]

FACTOR_LS: real = 5.00000000E-001

Usage: FACTOR_LS 0.5

Control parameter for backtracking line search. The step size is reduced by this factor on every line search iteration. Value must be between 0 and 1 (exclusive). [Edit on GitHub]

JACOBIAN_FREQ: integer[2] = 1 1

Usage: JACOBIAN_FREQ 1 1

Mentions:Constrained DFT

Defines parameters that control how often the explicit Jacobian is built, which is needed by some optimizers. Expects two values. The first value determines how many consecutive CDFT SCF iterations should skip a rebuild, whereas the latter how many MD steps. The values can be zero (meaning never rebuild) or positive. Both values cannot be zero. [Edit on GitHub]

JACOBIAN_RESTART: logical = F

Lone keyword: T

Usage: JACOBIAN_RESTART TRUE

Restart the inverse Jacobian using the vector defined with keyword JACOBIAN_VECTOR. [Edit on GitHub]

JACOBIAN_STEP: real = 5.00000000E-003

Usage: JACOBIAN_STEP 5.0E-3

Step size to use in the calculation of the inverse Jacobian with finite differences. Expects one value for all constraints, or one value per constraint. [Edit on GitHub]

JACOBIAN_TYPE: enum = FD1

Usage: JACOBIAN_TYPE FD1

Valid values:

  • FD1 First order forward difference (one extra energy evaluation per constraint).

  • FD1_BACKWARD First order backward difference (one extra energy evaluation per constraint).

  • FD2 Second order forward difference (two extra energy evaluations per constraint).

  • FD2_BACKWARD Second order backward difference (two extra energy evaluations per constraint).

  • FD1_CENTRAL First order central difference (two extra energy evaluations per constraint).

Finite difference method used to calculate the inverse Jacobian needed by some optimizers. Compatible only with CDFT constraints. [Edit on GitHub]

JACOBIAN_VECTOR: real

Usage: JACOBIAN_VECTOR 1.0 0.0

Defines the inverse Jacobian matrix. Useful for restarting calculations. Expects n^2 values where n is the total number of constraints. The matrix should be given in row major order. [Edit on GitHub]

MAX_LS: integer = 5

Usage: MAX_LS 5

The maximum number of backtracking line search steps to perform. [Edit on GitHub]