4.5 Converging SCF Calculations

4.5.8 User-Customized Hybrid SCF Algorithm

It is often the case that a single algorithm is not able to guarantee SCF convergence. Meanwhile, some SCF algorithms (e.g., ADIIS) can accelerate convergence at the beginning of an SCF calculation but becomes less efficient near the convergence. While a few hybrid algorithms (DIIS_GDM, RCA_DIIS) have been enabled in Q-Chem’s original SCF implementation, in GEN_SCFMAN, we seek for a more flexible setup for the use of multiple SCF algorithms so that users can have a more precise control on the SCF procedure. With the current implementation, at most four distinct algorithms (usually more than enough) can be employed in one single SCF calculation based on GEN_SCFMAN, and the basic job control is as follows:

GEN_SCFMAN_HYBRID_ALGO
       Use multiple algorithms in an SCF calculation based on GEN_SCFMAN.
TYPE:
       BOOLEAN
DEFAULT:
       FALSE
OPTIONS:
       FALSE Use a single SCF algorithm (given by SCF_ALGORITHM). TRUE Use multiple SCF algorithms (to be specified).
RECOMMENDATION:
       Set it to TRUE when the use of more than one algorithm is desired.

GEN_SCFMAN_ALGO_1
       The first algorithm to be used in a hybrid-algorithm calculation.
TYPE:
       STRING
DEFAULT:
       0
OPTIONS:
       All the available SCF_ALGORITHM options, including the GEN_SCFMAN additions (Section 4.3.1).
RECOMMENDATION:
       None

GEN_SCFMAN_ITER_1
       Maximum number of iterations given to the first algorithm. If used up, switch to the next algorithm.
TYPE:
       INTEGER
DEFAULT:
       50
OPTIONS:
       User-defined
RECOMMENDATION:
       None

GEN_SCFMAN_CONV_1
       The convergence criterion given to the first algorithm. If reached, switch to the next algorithm.
TYPE:
       INTEGER
DEFAULT:
       0
OPTIONS:
       n 10-n
RECOMMENDATION:
       None

Note:  $rem variables GEN_SCFMAN_ALGO_X, GEN_SCFMAN_ITER_X, GEN_SCFMAN_CONV_X (X = 2, 3, 4) are defined and used in a similar way.

Example 4.11  B3LYP/3-21G calculation for a cadmium-imidazole complex using the ADIIS + DIIS algorithm (an example from Ref. 397). Due to the poor quality of the CORE guess, using a single algorithm such as DIIS or GDM fails to converge.

$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
   EXCHANGE                 B3LYP
   BASIS                    3-21g
   UNRESTRICTED             FALSE
   SYMMETRY                 FALSE
   SYM_IGNORE               TRUE
   THRESH                   14
   SCF_GUESS                CORE
   GEN_SCFMAN_HYBRID_ALGO   TRUE
   GEN_SCFMAN_ALGO_1        ADIIS
   GEN_SCFMAN_CONV_1        3  !switch to DIIS when error < 1E-3
   GEN_SCFMAN_ITER_1        50
   GEN_SCFMAN_ALGO_2        DIIS
   GEN_SCFMAN_CONV_2        8
   GEN_SCFMAN_ITER_2        50
$end