4.5 Converging SCF Calculations

4.5.4 Damping

(June 30, 2021)

Damping may be the oldest SCF acceleration scheme which was proposed by Hartree in the early days of applying quantum mechanics to study atomic structure. In this simple scheme, the density matrix (or Fock matrix) of the current SCF iteration is linearly mixed with the density matrix of the previous iteration to generate a damped density matrix as the input for the next SCF iteration:

Pndamped=(1-α)Pn+αPn-1, (4.36)

where α is the mixing factor with 0α1. During the SCF process, if density matrix changes drastically between consecutive iterations (usually this happens in the early stage of the SCF process), the total energy and occupied molecular orbitals are also strongly fluctuating, which may lead to slow SCF convergence or even divergence. In this scenario mixing the density (or Fock) matrix with its counterpart in the last iteration could reduce (damp) the energy and molecular orbital fluctuation and stabilize the SCF process. On the other hand, if the SCF process converges smoothly and quickly, apply damping would only slow down its convergence. Therefore damping is seldom applied solely in the full SCF process and often invoked only in the early stage of the SCF process and turned off later.

Density matrix damping is offered as an option (the DAMP algorithm) to handle difficult SCF cases in Q-Chem (RHF and UHF only). Damping is often combined with DIIS and GDM (the DP_DIIS and DP_GDM algorithms) in practical calculations. In order to invoke damping, the $rem variable SCF_ALGORITHM should be set to DAMP, DP_DIIS or DP_GDM. The other relevant $rem variables are as the following:

NDAMP
       Determine the mixing coefficient. α = NDAMP/100.
TYPE:
       INTEGER
DEFAULT:
       75
OPTIONS:
       User-defined. Integers between 0 and 100.
RECOMMENDATION:
       Increase NDAMP if strong fluctuations happen during the SCF process.

MAX_DP_CYCLES
       The maximum number of SCF iterations with damping when SCF_ALGORITHM = DP_DIIS and DP_GDM. See also THRESH_DP_SWITCH.
TYPE:
       INTEGER
DEFAULT:
       3
OPTIONS:
       1 Only a single SCF step with damping, and no damping for the remaining SCF steps. n n SCF iterations with damping before turning damping off.
RECOMMENDATION:
       Increase this number if strong fluctuation continues after damping is turned off.

THRESH_DP_SWITCH
       The threshold for turning off damping in SCF iterations is 10-THRESH_DP_SWITCH when SCF_ALGORITHM is set to DP_DIIS or DP_GDM. See also MAX_DP_CYCLES.
TYPE:
       INTEGER
DEFAULT:
       2
OPTIONS:
       User-defined.
RECOMMENDATION:
       None

Example 4.8  Input for a UKS calculation of water cation using DIIS after damping in the early stage of the SCF process.

$molecule
  1 2
   O    1.9158048   -5.3106212    3.9451654
   H    2.8858048   -5.3106212    3.9451654
   H    1.5924750   -5.6945720    3.1151415
$end

$rem
   METHOD             B3LYP
   BASIS              3-21G
   SCF_ALGORITHM      DP_DIIS
   THRESH_DP_SWITCH   3
   MAX_DP_CYCLES      20
   NDAMP              50
$end

View output