# DAVIDSON

[Edit on GitHub]

## Keywords

- CONV_MOS_PERCENT

- ENERGY_GAP

- FIRST_PREC

- NEW_PREC_EACH

- PRECONDITIONER

- PRECOND_SOLVER

- SPARSE_MOS

## Keyword descriptions

CONV_MOS_PERCENT: real = 5.00000000E-001

  Usage: CONV_MOS_PERCENT 0.8

  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: real = 2.00000000E-001

  Usage: ENERGY_GAP 0.001

  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: integer = 1

  Usage: FIRST_PREC 1

  First SCF iteration at which a Preconditioner is employed [Edit on GitHub]

NEW_PREC_EACH: integer = 20

  Usage: NEW_PREC_EACH 10

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

PRECONDITIONER: enum = FULL_ALL

  Usage: PRECONDITIONER FULL_ALL

  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.

  - `NONE` skip preconditioning

  References: VandeVondele2003

  Type of preconditioner to be used with all minimization schemes. [Edit on GitHub]

PRECOND_SOLVER: enum = DEFAULT

  Usage: PRECOND_SOLVER DIRECT

  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)

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

SPARSE_MOS: logical = T

  Lone keyword: `T`

  Usage: SPARSE_MOS

  Use MOS as sparse matrix and avoid as much as possible multiplications with full matrices [Edit on GitHub]