DAVIDSON

References: Blaha2010, Kresse1996

Settings of the blocked Davidson iterative diagonalization. Also available at symmetry-reduced complex k points. [Edit on GitHub]

Keywords

Keyword descriptions

CONV_MOS_PERCENT

Type: real
Default: 5.00000000E-001
Usage: CONV_MOS_PERCENT 0.8

Description: Minimal percent of MOS that have to converge within the Davidson loop before the SCF iteration is completed and a new Hamiltonian is computed [Edit on GitHub]

ENERGY_GAP

Type: real
Default: 2.00000000E-001
Usage: ENERGY_GAP 0.001

Description: Should be an estimate for the energy gap [a.u.] (HOMO-LUMO) and is used in preconditioning, especially effective with the FULL_ALL preconditioner, in which case it should be an underestimate of the gap (0.001 doing normally fine). For the other preconditioners, making this value larger (0.2) will tame the preconditioner in case of poor initial guesses. [Edit on GitHub]

FIRST_PREC

Type: integer
Default: 1
Usage: FIRST_PREC 1

Description: First SCF iteration at which a Preconditioner is employed. With k points the first build waits until after the cold start, whatever lower value is set. The preconditioner makers read the MO coefficients, and only the cold start fills them. [Edit on GitHub]

NEW_PREC_EACH

Type: integer
Default: 20
Usage: NEW_PREC_EACH 10

Description: Number of SCF iterations after which a new Preconditioner is computed [Edit on GitHub]

NOISE_SCALE

Type: real
Default: 1.00000000E+002
Usage: NOISE_SCALE 100

Description: Divisor that maps the SCF mixing error onto the adaptive Davidson tolerance. The inner tolerance tracks EPS_ADAPT times the mixing error divided by this value. The value approximates how much the per-column residuals amplify the density mixing error. A measured amplification on a smeared slab is 20. Increase the value for looser tracking. Only used with EPS_ADAPT. [Edit on GitHub]

PRECONDITIONER

Type: enum
Default: FULL_ALL
Usage: PRECONDITIONER FULL_ALL

Description: Type of preconditioner to be used with all minimization schemes. With k points, all preconditioners except NONE use the complex k-point preconditioners. [Edit on GitHub]

Valid values:

  • FULL_ALL Most effective state selective preconditioner based on diagonalization

  • FULL_SINGLE_INVERSE Based on H-eS cholesky inversion, similar to FULL_SINGLE in preconditioning efficiency but cheaper to construct, might be somewhat less robust. Recommended for large systems.

  • FULL_KINETIC Preconditioner based on the kinetic energy matrix

  • FULL_S_INVERSE Preconditioner based on the overlap matrix

  • NONE skip preconditioning

References: VandeVondele2003

PRECOND_SOLVER

Type: enum
Default: DEFAULT
Usage: PRECOND_SOLVER DIRECT

Description: How the preconditioner is applied to the residual. [Edit on GitHub]

Valid values:

  • DEFAULT the default

  • DIRECT Cholesky decomposition followed by triangular solve (works for FULL_KINETIC/SINGLE_INVERSE/S_INVERSE)

  • INVERSE_CHOLESKY Cholesky decomposition followed by explicit inversion (works for FULL_KINETIC/SINGLE_INVERSE/S_INVERSE)

SPARSE_MOS

Type: logical
Default: T
Lone keyword: T
Usage: SPARSE_MOS

Description: Use MOS as sparse matrix and avoid as much as possible multiplications with full matrices. Not used with k points. [Edit on GitHub]