X

Search Results

Searching....

4.5 Converging SCF Calculations

4.5.10 Augmented Roothaan Hall Energy DIIS (ADIIS)

(April 13, 2024)

Similar to RCA/EDIIS, 162 Cancès E., Le Bris C.
Int. J. Quantum Chem.
(2000), 79, pp. 82.
Link
, 165 Cancès E.
J. Chem. Phys.
(2001), 114, pp. 10616.
Link
, 666 Kudin K. N., Scuseria G. E., Cancès E.
J. Chem. Phys.
(2002), 116, pp. 8255.
Link
the ADIIS algorithm proposed by Hu and Yang 537 Hu X., Yang W.
J. Chem. Phys.
(2010), 132, pp. 054109.
Link
is also supposed to accelerate SCF convergence in cases where DIIS performs poorly in the initial iterations. This algorithm also involves a Fock matrix extrapolation scheme:

𝐅~n+1=i=1nci𝐅i (4.42)

where 𝐅~n+1 is the extrapolated Fock matrix to be diagonalized to generate the updated MOs and electron density, 𝐅i=𝐅[𝐏i] is the Fock matrix constructed from the density matrix of the i-th iteration, and {ci} are the extrapolation coefficients, which are obtained by minimizing the augmented Roothaan-Hall (ARH) energy function of an extrapolated density 𝐏~i+1=i=1n𝐏i

fADIIS(c1,,cn)=E[𝐏n]+i=1nci(𝐏i-𝐏n)𝐅n
+12i=1nj=1ncicj(𝐏i-𝐏n)(𝐅j-𝐅n) (4.43)

while subjected to the constraint i=1nci=1,ci0 for all i. As suggested in the original literature, 537 Hu X., Yang W.
J. Chem. Phys.
(2010), 132, pp. 054109.
Link
variable substitutions are conducted (ci=ti2/iti2) to convert the constrained optimization to a standard, unconstrained optimization problem (optimizers such as L-BFGS can be used to solve the latter). Note that while the sums in Eqs. 4.42 and 4.43 runs from 1 to n, in practice it is unnecessary to extrapolate using all 𝐏i and 𝐅i obtained in the previous SCF cycles. In the Q-Chem implementation of ADIIS, the number of 𝐏i’s and 𝐅i’s used in the extrapolation has a maximum of 6.

The ADIIS algorithm is known to become less efficient in the region close to SCF convergence. Therefore, it is desirable to use the “ADIIS+DIIS” algorithm, which carries out ADIIS when the SCF error is below a threshold or the number of ADIIS iterations reaches a certain value. This hybrid algorithm, which can be invoked by setting “SCF_ALGORITHM = ADIIS_DIIS” in Q-Chem, was shown to afford accelerated convergence for cases where DIIS alone was unable or took much longer to converge the SCF problem. 537 Hu X., Yang W.
J. Chem. Phys.
(2010), 132, pp. 054109.
Link

ADIIS_INNER_CONV

ADIIS_INNER_CONV
       Convergence criterion for the ADIIS inner loops (L-BFGS optimization of Eq. 4.43)
TYPE:
       INTEGER
DEFAULT:
       12
OPTIONS:
       n Using 10-n as the convergence criterion for the ADIIS inner loops
RECOMMENDATION:
       Use the default

THRESH_ADIIS_SWITCH

THRESH_ADIIS_SWITCH
       The threshold for switching from ADIIS to DIIS in ADIIS_DIIS calculations
TYPE:
       INTEGER
DEFAULT:
       3
OPTIONS:
       n Switching from ADIIS to DIIS when the SCF error is below 10-n
RECOMMENDATION:
       3 or 4 is suitable

MAX_ADIIS_CYCLES

MAX_ADIIS_CYCLES
       The maximum number of ADIIS cycles before switching to DIIS in ADIIS_DIIS calculations
TYPE:
       INTEGER
DEFAULT:
       30
OPTIONS:
       N Doing at most N ADIIS iterations before switching to DIIS
RECOMMENDATION:
       Use the default; typically there is no benefit of doing ADIIS for too many iterations

Example 4.14  B3LYP/3-21g calculation for the Cd(II)-imidazole complex using the ADIIS_DIIS algorithm (switching to DIIS when the error is below 10-3). The SADMO guess is used.

$molecule
2 1
Cd     0.000000     0.000000     0.000000
 N     0.000000     0.000000    -2.260001
 N    -0.685444     0.000000    -4.348035
 C     0.676053     0.000000    -4.385069
 C     1.085240     0.000000    -3.091231
 C    -1.044752     0.000000    -3.060220
 H     1.231530     0.000000    -5.300759
 H     2.088641     0.000000    -2.711077
 H    -2.068750     0.000000    -2.726515
 H    -1.313170     0.000000    -5.174718
$end

$rem
JOBTYPE         SP
METHOD          B3LYP
BASIS           3-21G
integral_symmetry FALSE
point_group_symmetry False
THRESH          14
SCF_GUESS       SADMO
SCF_ALGORITHM   ADIIS_DIIS
SCF_CONVERGENCE 8
$end