OT
References: VandeVondele2003, Weber2008
Sets the various options for the orbital transformation (OT) method. Default settings already provide an efficient, yet robust method. Most systems benefit from using the FULL_ALL preconditioner combined with a small value (0.001) of ENERGY_GAP. Well-behaved systems might benefit from using a DIIS minimizer.
Advantages: It’s fast, because no expensive diagonalisation is performed. If preconditioned correctly, method guaranteed to find minimum.
Disadvantages: Sensitive to preconditioning. A good preconditioner can be expensive. No smearing, or advanced SCF mixing possible: POOR convergence for metallic systems. [Edit on GitHub]
Keywords
Keyword descriptions
- SECTION_PARAMETERS
Type: logical
Default: F
Lone keyword: T
Usage: &OT TDescription: controls the activation of the ot method
- ALGORITHM
Type: enum
Default: STRICT
Usage: ALGORITHM STRICTDescription: Algorithm to be used for OT
Valid values:
STRICTStrict orthogonality: Taylor or diagonalization based algorithm.IRACOrbital Transformation based Iterative Refinement of the Approximative Congruence transformation (OT/IR).
References: VandeVondele2003, VandeVondele2005, Weber2008
- BROYDEN_ADAPTIVE_SIGMA
Type: logical
Default: T
Lone keyword: T
Usage: BROYDEN_ADAPTIVE_SIGMA ONDescription: Enable adaptive curvature estimation
- BROYDEN_BETA
Type: real
Default: 9.00000000E-001
Usage: BROYDEN_BETA 0.9Description: Underrelaxation for the broyden mixer
- BROYDEN_ENABLE_FLIP
Type: logical
Default: T
Lone keyword: T
Usage: BROYDEN_ENABLE_FLIP ONDescription: Ensure positive definite update
- BROYDEN_ETA
Type: real
Default: 7.00000000E-001
Usage: BROYDEN_ETA 0.7Description: Dampening of estimated energy curvature.
- BROYDEN_FORGET_HISTORY
Type: logical
Default: F
Lone keyword: T
Usage: BROYDEN_FORGET_HISTORY OFFDescription: Forget history on bad approximation
- BROYDEN_GAMMA
Type: real
Default: 5.00000000E-001
Usage: BROYDEN_GAMMA 0.5Description: Backtracking parameter
- BROYDEN_OMEGA
Type: real
Default: 1.10000000E+000
Usage: BROYDEN_OMEGA 1.1Description: Growth limit of curvature.
- BROYDEN_SIGMA
Type: real
Default: 2.50000000E-001
Usage: BROYDEN_SIGMA 0.25Description: Curvature of energy functional.
- BROYDEN_SIGMA_DECREASE
Type: real
Default: 7.00000000E-001
Usage: BROYDEN_SIGMA_DECREASE 0.7Description: Reduction of curvature on bad approximation.
- BROYDEN_SIGMA_MIN
Type: real
Default: 5.00000000E-002
Usage: BROYDEN_SIGMA_MIN 0.05Description: Minimum adaptive curvature.
- CHOLESKY
Type: enum
Default: REDUCE
Usage: CHOLESKY REDUCEDescription: If FULL_ALL the cholesky decomposition of the S matrix is used. Options on the algorithm to be used.
Valid values:
OFFThe cholesky algorithm is not usedREDUCEReduce is calledRESTOREReduce is replaced by two restoreINVERSERestore uses operator multiply by inverse of the triangular matrixINVERSE_DBCSRLike inverse, but matrix stored as dbcsr, sparce matrix algebra used when possible
- ENERGIES
Type: logical
Default: F
Lone keyword: T
Usage: ENERGIESDescription: Optimize orbital energies for use in Fermi-Dirac smearing (requires ROTATION and FD smearing to be active).
- ENERGY_GAP
Type: real
Default: -1.00000000E+000
Usage: ENERGY_GAP 0.001Description: 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 (can be a small number, e.g. 0.002). FULL_SINGLE_INVERSE takes it as lower bound (values below 0.05 can cause stability issues). In general, higher values will tame the preconditioner in case of poor initial guesses. A negative value will leave the choice to CP2K depending on type of preconditioner.
- EPS_IRAC
Type: real
Default: 1.00000000E-010
Usage: EPS_IRAC 1.0E-5Description: Targeted accuracy during the refinement iteration.
- EPS_IRAC_FILTER_MATRIX
Type: real
Default: 0.00000000E+000
Usage: EPS_IRAC_FILTER_MATRIX 1.0E-5Description: Sets the threshold for filtering the matrices.
- EPS_IRAC_QUICK_EXIT
Type: real
Default: 1.00000000E-005
Usage: EPS_IRAC_QUICK_EXIT 1.0E-2Description: Only one extra refinement iteration is done when the norm is below this value.
- EPS_IRAC_SWITCH
Type: real
Default: 1.00000000E-002
Usage: EPS_IRAC_SWITCH 1.0E-3Description: The algorithm switches to the polynomial refinement when the norm is below this value.
- EPS_TAYLOR
Type: real
Default: 1.00000000E-016
Aliases: EPSTAYLOR
Usage: EPS_TAYLOR 1.0E-15Description: Target accuracy of the taylor expansion for the matrix functions, should normally be kept as is.
- GOLD_TARGET
Type: real
Default: 1.00000000E-002
Usage: GOLD_TARGET 0.1Description: Target relative uncertainty in the location of the minimum for LINESEARCH GOLD
- IRAC_DEGREE
Type: integer
Default: 4
Usage: IRAC_DEGREE 4Description: The refinement polynomial degree (2, 3 or 4).
- LINESEARCH
Type: enum
Default: 2PNT
Aliases: LINE_SEARCH
Usage: LINESEARCH GOLDDescription: 1D line search algorithm to be used with the OT minimizer, in increasing order of robustness and cost. MINIMIZER CG combined with LINESEARCH GOLD should always find an electronic minimum. Whereas the 2PNT minimizer is almost always OK, 3PNT might be needed for systems in which successive OT CG steps do not decrease the total energy.
Valid values:
ADAPTextrapolates usually based on 3 points, uses additional points on demand, very robust.NONEalways take steps of fixed length2PNTextrapolate based on 2 points3PNTextrapolate based on 3 pointsGOLDperform 1D golden section search of the minimum (very expensive)
- MAX_IRAC
Type: integer
Default: 50
Usage: MAX_IRAC 5Description: Maximum allowed refinement iteration.
- MAX_SCF_DIIS
Type: integer
Default: 0
Usage: MAX_SCF_DIIS 20Description: Maximum DIIS SCF inner loop cycles. This can be used to extend SCF cycles after a switch to DIIS (see eps_diis).
- MAX_TAYLOR
Type: integer
Default: 4
Usage: MAX_TAYLOR 5Description: Maximum order of the Taylor expansion before diagonalisation is preferred, for large parallel runs a slightly higher order could sometimes result in a small speedup.
- MINIMIZER
Type: enum
Default: CG
Usage: MINIMIZER DIISDescription: Minimizer to be used with the OT method
Valid values:
SDSteepest descent: not recommendedCGConjugate Gradients: most reliable, use for difficult systems. The total energy should decrease at every OT CG step if the line search is appropriate.DIISDirect inversion in the iterative subspace: less reliable than CG, but sometimes about 50% fasterBROYDENBroyden mixing approximating the inverse Hessian
- NONDIAG_ENERGY
Type: logical
Default: F
Lone keyword: T
Usage: NONDIAG_ENERGYDescription: Add a non-diagonal energy penalty (FD smearing)
- NONDIAG_ENERGY_STRENGTH
Type: real
Default: 1.00000000E+000
Usage: NONDIAG_ENERGY_STRENGTHDescription: The prefactor for the non-diagonal energy penalty (FD smearing)
- N_HISTORY_VEC
Type: integer
Default: 7
Aliases: NDIIS, N_DIIS, N_BROYDEN
Usage: N_DIIS 4Description: Number of history vectors to be used with DIIS or BROYDEN
- OCCUPATION_PRECONDITIONER
Type: logical
Default: F
Lone keyword: T
Usage: OCCUPATION_PRECONDITIONERDescription: Preconditioner with the occupation numbers (FD smearing)
- ON_THE_FLY_LOC
Type: logical
Default: F
Usage: ON_THE_FLY_LOC TDescription: On the fly localization of the molecular orbitals. Can only be used with OT/IRAC.
- ORTHO_IRAC
Type: enum
Default: CHOL
Usage: ORTHO_IRAC POLYDescription: The orthogonality method.
Valid values:
CHOLCholesky.POLYPolynomial.LWDNLoewdin.
- PRECONDITIONER
Type: enum
Default: FULL_KINETIC
Usage: PRECONDITIONER FULL_ALLDescription: Type of preconditioner to be used with all minimization schemes. They differ in effectiveness, cost of construction, cost of application. Properly preconditioned minimization can be orders of magnitude faster than doing nothing.
Valid values:
FULL_ALLMost effective state selective preconditioner based on diagonalization, requires the ENERGY_GAP parameter to be an underestimate of the HOMO-LUMO gap. This preconditioner is recommended for almost all systems, except very large systems where make_preconditioner would dominate the total computational cost.FULL_SINGLE_INVERSEBased 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_SINGLEBased on H-eS diagonalisation, not as good as FULL_ALL, but somewhat cheaper to apply.FULL_KINETICCholesky inversion of S and T, fast construction, robust, and relatively good, use for very large systems.FULL_S_INVERSECholesky inversion of S, not as good as FULL_KINETIC, yet equally expensive.NONEskip preconditioning
References: VandeVondele2003, Weber2008, Schiffmann2015
- PRECOND_SOLVER
Type: enum
Default: DEFAULT
Usage: PRECOND_SOLVER DIRECTDescription: How the preconditioner is applied to the residual.
Valid values:
DEFAULTthe defaultDIRECTCholesky decomposition followed by triangular solve (works for FULL_KINETIC/SINGLE_INVERSE/S_INVERSE)INVERSE_CHOLESKYCholesky decomposition followed by explicit inversion (works for FULL_KINETIC/SINGLE_INVERSE/S_INVERSE)INVERSE_UPDATEPerforms a Hotelling update of the inverse if a previous preconditioner is present. Mainly useful for GPU accelerated systems (works for FULL_KINETIC/SINGLE_INVERSE/S_INVERSE)
- ROTATION
Type: logical
Default: F
Lone keyword: T
Usage: ROTATIONDescription: Introduce additional variables so that rotations of the occupied subspace are allowed as well, only needed for cases where the energy is not invariant under a rotation of the occupied subspace such as non-singlet restricted calculations or fractional occupations.
- SAFE_DIIS
Type: logical
Default: T
Aliases: SAFER_DIIS
Usage: SAFE_DIIS ONDescription: Reject DIIS steps if they point away from the minimum, do SD in that case.
- STEPSIZE
Type: real
Default: -1.00000000E+000
Usage: STEPSIZE 0.4Description: Initial stepsize used for the line search, sometimes this parameter can be reduced to stabilize DIIS or to improve the CG behavior in the first few steps. The optimal value depends on the quality of the preconditioner. A negative values leaves the choice to CP2K depending on the preconditioner.