Hartree-Fock calculations and the popular hybrid density functionals such as
B3LYP also require two-electron integrals to evaluate the exchange energy
associated with a single determinant. There is no useful multipole expansion
for the exchange energy, because the bra and ket of the two-electron integral
are coupled by the density matrix, which carries the effect of exchange.
Fortunately, density matrix elements decay exponentially with distance for
systems that have a HOMO/LUMO gap.^{816} The better the
insulator, the more localized the electronic structure, and the faster the rate
of exponential decay. Therefore, for insulators, there are only a linear number
of numerically significant contributions to the exchange energy. With
intelligent numerical thresholding, it is possible to rigorously evaluate the
exchange matrix in linear scaling effort. For this purpose, Q-Chem contains
the linear scaling K (LinK) method^{678} to evaluate both
exchange energies and their gradients^{679} in linear scaling
effort (provided the density matrix is highly sparse). The LinK method
essentially reduces to the conventional direct SCF method for exchange in the
small molecule limit (by adding no significant overhead), while yielding large
speedups for (very) large systems where the density matrix is indeed highly
sparse. For full details, we refer the reader to the original
papers.^{678, 679} LinK can be explicitly requested by the
following option (although Q-Chem automatically switches it on when the
program believes it is the preferable algorithm).

LIN_K

Controls whether linear scaling evaluation of exact exchange (LinK) is used.

TYPE:

LOGICAL

DEFAULT:

Program chooses, switching on LinK whenever CFMM is used.

OPTIONS:

TRUE
Use LinK
FALSE
Do not use LinK

RECOMMENDATION:

Use for HF and hybrid DFT calculations with large numbers of atoms.

$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 sto-3g Basis set LIN_K TRUE Calculate K using LinK $end