CDFT

References: Holmberg2017, Holmberg2018

Parameters needed to set up a constrained DFT calculation. Each repetition of the ATOM_GROUP section defines a new constraint. The constraint(s) is (are) converged in a separate external SCF loop with settings read from the OUTER_SCF section. Supported constraints: Becke and Gaussian Hirshfeld (partial). [Edit on GitHub]

Keywords

Keyword descriptions

ATOMIC_CHARGES

Type: logical
Default: F
Lone keyword: T
Usage: ATOMIC_CHARGES

Description: Calculate atomic CDFT charges with selected weight function (Z = Z_core - Z_CDFT). With fragment based constraints, charges are relative to the fragment reference state i.e. Z = Z_CDFT - Z_frag_reference. Note: if the number of atoms is greater than the default pw_pool max cache, calculation of atomic CDFT charges will prompt harmless warnings during deallocation of atomic grids.

[Edit on GitHub]

COUNTER

Type: integer
Default: 0
Usage: COUNTER {int}

Description: A counter to track the total number of energy evaluations. Needed by some optimizers to print information. Useful mainly for restarts.

[Edit on GitHub]

FLIP_FRAGMENT_A

Type: logical
Default: F
Lone keyword: T
Usage: FLIP_FRAGMENT_A

Description: Logical which determines if the reference spin difference density (rho_alpha-rho_beta) for fragment A should be flipped. With default (off) value, the fragment is constrained to have more alpha than beta electrons if the isolated fragment has unpaired electrons. Useful in conjunction with FLIP_FRAGMENT_B.

[Edit on GitHub]

FLIP_FRAGMENT_B

Type: logical
Default: F
Lone keyword: T
Usage: FLIP_FRAGMENT_B

Description: Logical which determines if the reference spin difference density (rho_alpha-rho_beta) for fragment B should be flipped. With default (off) value, the fragment is constrained to have more alpha than beta electrons if the isolated fragment has unpaired electrons. Useful in conjunction with FLIP_FRAGMENT_A.

[Edit on GitHub]

FRAGMENT_A_FILE_NAME

Type: string
Default: fragment_a.cube
Aliases: FRAGMENT_A_FILE
Usage: FRAGMENT_A_FILE_NAME

Description: Name of the reference total electron density cube file for fragment A. May include a path. The reference electron density needs to be outputted on the same grid as the full system (same cutoff and cell, output stride 1). For GAPW, generate the cube with E_DENSITY_CUBE% DENSITY_INCLUDE TOTAL_DENSITY; a regular GAPW electron-density cube contains only the soft density and is rejected.

[Edit on GitHub]

FRAGMENT_A_SPIN_FILE

Type: string
Default: fragment_a_spin.cube
Aliases: FRAGMENT_A_SPIN_FILE_NAME
Usage: FRAGMENT_A_SPIN_FILE

Description: Name of the reference spin density cube file for fragment A. May include a path. The reference spin density needs to be outputted on the same grid as the full system (same cutoff and cell, output stride 1). For GAPW, use the TOTAL_SPIN_DENSITY cube generated together with E_DENSITY_CUBE% DENSITY_INCLUDE TOTAL_DENSITY.

[Edit on GitHub]

FRAGMENT_B_FILE_NAME

Type: string
Default: fragment_b.cube
Aliases: FRAGMENT_B_FILE
Usage: FRAGMENT_B_FILE_NAME

Description: Name of the reference total electron density cube file for fragment B. May include a path. The reference electron density needs to be outputted on the same grid as the full system (same cutoff and cell, output stride 1). For GAPW, generate the cube with E_DENSITY_CUBE% DENSITY_INCLUDE TOTAL_DENSITY; a regular GAPW electron-density cube contains only the soft density and is rejected.

[Edit on GitHub]

FRAGMENT_B_SPIN_FILE

Type: string
Default: fragment_b_spin.cube
Aliases: FRAGMENT_B_SPIN_FILE_NAME
Usage: FRAGMENT_B_SPIN_FILE

Description: Name of the reference spin density cube file for fragment B. May include a path. The reference spin density needs to be outputted on the same grid as the full system (same cutoff and cell, output stride 1). For GAPW, use the TOTAL_SPIN_DENSITY cube generated together with E_DENSITY_CUBE% DENSITY_INCLUDE TOTAL_DENSITY.

[Edit on GitHub]

IN_MEMORY

Type: logical
Default: F
Lone keyword: T
Usage: IN_MEMORY

Description: Precompute gradients due to constraint during initial formation of constraint and store them in memory. Does nothing if forces are not calculated.

[Edit on GitHub]

MAX_REUSE

Type: integer
Default: 0
Usage: MAX_REUSE {int}

Description: Determines how many times a previously built preconditioner can be reused.

[Edit on GitHub]

PRECOND_FREQ

Type: integer
Default: 0
Usage: PRECOND_FREQ {int}

Description: See REUSE_PRECOND.

[Edit on GitHub]

PURGE_FREQ

Type: integer
Default: 1
Usage: PURGE_FREQ {int}

Description: See PURGE_HISTORY.

[Edit on GitHub]

PURGE_HISTORY

Type: logical
Default: F
Lone keyword: T
Usage: PURGE_HISTORY yes

Description: Purge wavefunction and constraint history to improve SCF convergence during MD. Counts how often the convergence of the first CDFT SCF iteration takes 2 or more outer SCF iterations and purges the history if the counter exceeds PURGE_FREQ, and PURGE_OFFSET MD steps have passed since the last purge. The counter is zeroed after each purge.

[Edit on GitHub]

PURGE_OFFSET

Type: integer
Default: 1
Usage: PURGE_OFFSET {int}

Description: See PURGE_HISTORY.

[Edit on GitHub]

REUSE_PRECOND

Type: logical
Default: F
Lone keyword: T
Usage: REUSE_PRECOND yes

Description: Reuse a previously built OT preconditioner between subsequent CDFT SCF iterations if the inner OT SCF loop converged in PRECOND_FREQ steps or less. Intended mainly for MD simulations with the FULL_ALL preconditioner to speed up the final iterations of the CDFT SCF loop.

[Edit on GitHub]

STRENGTH

Type: real[ ]
Default: 0.00000000E+000

Description: Constraint force constants (Lagrange multipliers). Give one value per constraint group.

Mentions:Constrained DFT

[Edit on GitHub]

TARGET

Type: real[ ]
Default: 0.00000000E+000
Usage: TARGET {real}

Description: Constraint target values. Give one value per constraint group. The target value is the desired number of valence electrons, spin moment, or the number of alpha or beta electrons on the atoms that define the constraint, suitably multiplied by atomic coefficients in case a relative constraint between two sets of atoms is employed. Note that core charges are not subtracted from the target value.

Mentions:Constrained DFT

[Edit on GitHub]

TYPE_OF_CONSTRAINT

Type: enum
Default: NONE
Usage: TYPE_OF_CONSTRAINT (NONE|HIRSHFELD|BECKE)

Description: Specifies the type of constraint used.

Valid values:

  • NONE No constraint (disables section).

  • HIRSHFELD Gaussian Hirshfeld constraint. Partial implementation: no forces. Requires corresponding section. Not as extensively tested.

  • BECKE Becke constraint. Requires corresponding section.

References: Becke1988b

Mentions:Constrained DFT

[Edit on GitHub]