Density Fitting in cuEST#
cuEST provides certain primitives for constructing the Fock matrix (and its derivatives) that use the density-fitting (DF) approximation. Density fitting is a popular and well-established technique in quantum chemistry that can accelerate the evaluation of electron repulsion integrals. In general, the accuracy of density fitting is sufficient such that DFT calculations using this approximation can be applied to the same chemical problems as canonical DFT. Importantly, the DF approximation is fully differentiable, meaning that the gradient of a density-fitted DFT energy is exactly the first derivative of the energy. This allows density-fitted DFT calculations to be used seamlessly for geometry optimizations, molecular dynamics, frequency calculations, etc. In the context of GPU acceleration, algorithms based on density fitting are attractive because they are able to effectively leverage the memory and floating point compute available on NVIDIA GPUs.
Introduction to Density-Fitting#
The central idea of density fitting is that orbital products of contracted (usually atom-centered) Gaussian basis functions can be approximated by linear combinations of auxiliary Gaussian functions (also, usually atom-centered).
Here, the \(c^{A}_{\mu\nu}\) tensor contains the fitting coefficients that are the solution to a least-squares problem (here, for the usual Coulomb operator).
The \([J^{-1}]_{AB}\) matrix is the matrix inverse of the Coulomb operator evaluated in the auxiliary (or fitting) basis. This approximation can be inserted into the equations defining the Coulomb (J) and exchange (K) matrices.
Here, \(D_{\lambda\sigma}\) is the AO basis density matrix.
Range Separation#
While most quantum chemistry programs generally agree on how to apply the density fitting approximation to the Coulomb operator, there are different conventions used for range-separated Coulomb operators. The approach used in cuEST follows from the work of Vahtras, Almlöf and Feyereisen.
Range separation uses a decomposition of the Coulomb operator into short- and long-range components.
Many popular density functionals use range-separation in the definition of the exchange operator. Traditional hybrid functionals use a fraction of full-range exchange (corresponding to the \(1/r\) operator). Range-separated hybrid functionals include short-range exchange, long-range exchange or a combination of both. In cuEST, range-separated hybrids are specified in terms of the fraction of full-range exchange and long-range exchange that are included.
In cuEST, the fitting coefficients (\(c^{A}_{\mu\nu}\)) are always determined by solving a least-squares problem for the full-range \(1/r\) operator. The range-separated operator is formed in the auxiliary basis.
Here, \(s_{\rm FR}\) and \(s_{\rm LR}\) are the scaling factors for the full-range and long-range components of the Coulomb operator. This approach recovers the range-separation identity exactly (short range plus long range equals full range). This allows the user to parameterize short-range exchange as \(s_{\rm SR} = s_{\rm FR} - s_{\rm LR}\) without introducing error. One can view this approach as using a single approximation for the density (wavefunction) that is agnostic to the operator being evaluated. Finally, it is important to note that this approach works because the fitting coefficients solve the least-squares problem for, specifically, the full-range operator.
This approach is optimal for state-of-the-art range-separated functionals (such as ωB97M-V) that include both full-range and long-range exchange operators. However, note that it is not optimal (in terms of efficiency) for functionals that include only short-range exchange (HSE06 is a common example). In terms of accuracy, consider the DF-HF case as a baseline (\(s_{\rm FR}=1\)). In practice, it is observed that the approach described here provides range-separated exchange matrices with similar or better accuracy than what is achieved for DF-HF.