4.6 Large Molecules and Linear Scaling Methods

4.6.4 Incremental and Variable Thresh Fock Matrix Building

The use of a variable integral threshold, operating for the first few cycles of an SCF, is justifiable on the basis that the MO coefficients are usually of poor quality in these cycles. In Q-Chem, the integrals in the first iteration are calculated at a threshold of 10-6 (for an anticipated final integral threshold greater than, or equal to 10-6) to ensure the error in the first iteration is solely sourced from the poor MO guess. Following this, the integral threshold used is computed as

tmp_thresh=varthresh×DIIS_error (4.45)

where the DIIS_error is that calculated from the previous cycle, varthresh is the variable threshold set by the program (by default) and tmp_thresh is the temporary threshold used for integral evaluation. Each cycle requires recalculation of all integrals. The variable integral threshold procedure has the greatest impact in early SCF cycles.

In an incremental Fock matrix build,858 𝐅 is computed recursively as

𝐅𝐦=𝐅𝐦-𝟏+Δ𝐉𝐦-𝟏-12Δ𝐊𝐦-𝟏 (4.46)

where m is the SCF cycle, and ΔJm and ΔKm are computed using the difference density

Δ𝐏𝐦=𝐏𝐦-𝐏𝐦-𝟏 (4.47)

Using Schwartz integrals and elements of the difference density, Q-Chem is able to determine at each iteration which ERIs are required, and if necessary, recalculated. As the SCF nears convergence, Δ𝐏m becomes sparse and the number of ERIs that need to be recalculated declines dramatically, saving the user large amounts of computational time.

Incremental Fock matrix builds and variable thresholds are only used when the SCF is carried out using the direct SCF algorithm and are clearly complementary algorithms. These options are controlled by the following input parameters, which are only used with direct SCF calculations.

INCFOCK
       Iteration number after which the incremental Fock matrix algorithm is initiated
TYPE:
       INTEGER
DEFAULT:
       1 Start INCFOCK after iteration number 1
OPTIONS:
       User-defined (0 switches INCFOCK off)
RECOMMENDATION:
       May be necessary to allow several iterations before switching on INCFOCK.

VARTHRESH
       Controls the temporary integral cut-off threshold. tmp_thresh=10-VARTHRESH×DIIS_error
TYPE:
       INTEGER
DEFAULT:
       0 Turns VARTHRESH off
OPTIONS:
       n User-defined threshold
RECOMMENDATION:
       3 has been found to be a practical level, and can slightly speed up SCF evaluation.

Example 4.18  Q-Chem input for a large single point energy calculation. This would be appropriate for a medium-sized molecule, but for truly large calculations, the CFMM and LinK algorithms are far more efficient.

$comment
   HF/3-21G single point calculation on a large molecule
   read in the molecular coordinates from file
$end

$molecule
   read base_pair.inp
$end

$rem
   METHOD          HF      Hartree-Fock
   BASIS           3-21G   Basis set
   INCFOCK         5       Incremental Fock after 5 cycles
   VARTHRESH       3       1.0d-03 variable threshold
   MAX_SCF_CYCLES  100
$end