5.7 DFT Methods for van der Waals Interactions

5.7.1 Non-Local Correlation (NLC) Functionals

(June 30, 2021)

From the standpoint of the electron density, the vdW interaction is a non-local one: even for two non-overlapping, spherically-symmetric charge densities (two argon atoms, say), the presence of molecule B in the non-covalent AB complex induces ripples in the tail of A’s charge distribution, which are the hallmarks of non-covalent interactions. 216 Contreras-García J. et al.
J. Chem. Theory Comput.
(2011), 7, pp. 625.
Link
(This is the fundamental idea behind the non-covalent interaction plots described in Section 10.5.5; the vdW interaction manifests as large density gradients in regions of space where the density itself is small.) Semi-local GGAs that depend only on the density and its gradient cannot describe this long-range, correlation-induced interaction, and meta-GGAs at best describe it at middle-range via the Laplacian of the density and/or the kinetic energy density. A proper description of long-range electron correlation requires a non-local functional, i.e., an exchange-correlation potential having the form

vcnl(𝐫)=f(𝐫,𝐫)𝑑𝐫. (5.21)

In this way, a perturbation at a point 𝐫 (due to B, say) then induces an exchange-correlation potential at a (possibly far-removed) point 𝐫 (on A).

Q-Chem includes four such functionals that can describe dispersion interactions:

  • vdW-DF-04, developed by Langreth, Lundqvist, and coworkers, 265 Dion M. et al.
    Phys. Rev. Lett.
    (2004), 92, pp. 246401.
    Link
    , 266 Dion M. et al.
    Phys. Rev. Lett.
    (2005), 95, pp. 109902.
    Link
    implemented as described in Ref. 1140.

  • vdW-DF-10 (also known as vdW-DF2), which is a re-parameterization of vdW-DF-04. 635 Lee K. et al.
    Phys. Rev. B
    (2010), 82, pp. 081101(R).
    Link

  • VV09, developed 1137 Vydrov O. A., Van Voorhis T.
    Phys. Rev. Lett.
    (2009), 103, pp. 063004.
    Link
    and implemented 1138 Vydrov O. A., Van Voorhis T.
    J. Chem. Phys.
    (2010), 132, pp. 164113.
    Link
    by Vydrov and Van Voorhis.

  • VV10 by Vydrov and Van Voorhis. 1139 Vydrov O. A., Van Voorhis T.
    J. Chem. Phys.
    (2010), 133, pp. 244103.
    Link

  • rVV10 by Sabatini and coworkers. 954 Sabatini R., Gorni T., de Gironcoli S.
    Phys. Rev. B
    (2013), 87, pp. 041108.
    Link

Each of these functionals is implemented in a self-consistent manner, and analytic gradients with respect to nuclear displacements are available. 1140 Vydrov O. A., Wu Q., Van Voorhis T.
J. Chem. Phys.
(2008), 129, pp. 014106.
Link
, 1138 Vydrov O. A., Van Voorhis T.
J. Chem. Phys.
(2010), 132, pp. 164113.
Link
, 1139 Vydrov O. A., Van Voorhis T.
J. Chem. Phys.
(2010), 133, pp. 244103.
Link
The non-local correlation is governed by the $rem variable NL_CORRELATION, which can be set to one of the four values: vdW-DF-04, vdW-DF-10, VV09, or VV10. The vdW-DF-04, vdW-DF-10, and VV09 functionals are used in combination with LSDA correlation, which must be specified explicitly. For instance, vdW-DF-10 is invoked by the following keyword combination:

$rem
   CORRELATION        PW92
   NL_CORRELATION     vdW-DF-10
   ...
$end

VV10 is used in combination with PBE correlation, which must be added explicitly. In addition, the values of two parameters, C and b (see Ref. 1140), must be specified for VV10. These parameters are controlled by the $rem variables NL_VV_C and NL_VV_B, respectively. For instance, to invoke VV10 with C=0.0093 and b=5.9, the following input is used:

$rem
   CORRELATION        PBE
   NL_CORRELATION     VV10
   NL_VV_C            93
   NL_VV_B            590
   ...
$end

The variable NL_VV_C may also be specified for VV09, where it has the same meaning. By default, C=0.0089 is used in VV09 (i.e. NL_VV_C is set to 89). However, in VV10 neither C nor b are assigned a default value and must always be provided in the input.

Unlike local (LSDA) and semi-local (GGA and meta-GGA) functionals, for non-local functionals evaluation of the correlation energy requires a double integral over the spatial variables, as compared to the single integral [Eq. (5.8)] required for semi-local functionals:

Ecnl=vcnl(𝐫)𝑑𝐫=f(𝐫,𝐫)ρ(𝐫)𝑑𝐫𝑑𝐫. (5.22)

In practice, this double integration is performed numerically on a quadrature grid. 1140 Vydrov O. A., Wu Q., Van Voorhis T.
J. Chem. Phys.
(2008), 129, pp. 014106.
Link
, 1138 Vydrov O. A., Van Voorhis T.
J. Chem. Phys.
(2010), 132, pp. 164113.
Link
, 1139 Vydrov O. A., Van Voorhis T.
J. Chem. Phys.
(2010), 133, pp. 244103.
Link
By default, the SG-1 quadrature (described in Section 5.5.2 below) is used to evaluate Ecnl, but a different grid can be requested via the $rem variable NL_GRID. The non-local energy is rather insensitive to the fineness of the grid such that SG-1 or even SG-0 grids can be used in most cases, but a finer grid may be required to integrate other components of the functional. This is controlled by the XC_GRID variable discussed in Section 5.5.2.

The two functionals originally developed by Vydrov and Van Voorhis can be requested by specifying METHOD = VV10 or METHOD LC-VV10. In addition, the combinatorially-optimized functionals of Mardirossian and Head-Gordon (ωB97X-V, B97M-V, and ωB97M-V) make use of non-local correlation and can be invoked by setting METHOD to wB97X-V, B97M-V, or wB97M-V. Now, the VV10 codes have been rewrited and the feature of NMR chemical shielding and analytical second derivative are added. If you want to use the old codes, please set USE_LIBNLQ to false.

Example 5.10  Geometry optimization of the methane dimer using VV10 with rPW86 exchange.

$molecule
   0 1
   C   0.000000  -0.000140   1.859161
   H  -0.888551   0.513060   1.494685
   H   0.888551   0.513060   1.494685
   H   0.000000  -1.026339   1.494868
   H   0.000000   0.000089   2.948284
   C   0.000000   0.000140  -1.859161
   H   0.000000  -0.000089  -2.948284
   H  -0.888551  -0.513060  -1.494685
   H   0.888551  -0.513060  -1.494685
   H   0.000000   1.026339  -1.494868
$end

$rem
   JOBTYPE            opt
   BASIS              aug-cc-pVTZ
   EXCHANGE           rPW86
   CORRELATION        PBE
   XC_GRID            2
   NL_CORRELATION     VV10
   NL_GRID            1
   NL_VV_C            93
   NL_VV_B            590
$end

View output

In the above example, the SG-2 grid is used to evaluate the rPW86 exchange and PBE correlation, but a coarser SG-1 grid is used for the non-local part of VV10. Furthermore, the above example is identical to specifying METHOD = VV10.

NL_CORRELATION
       Specifies a non-local correlation functional that includes non-empirical dispersion.
TYPE:
       STRING
DEFAULT:
       None No non-local correlation.
OPTIONS:
       None No non-local correlation vdW-DF-04 the non-local part of vdW-DF-04 vdW-DF-10 the non-local part of vdW-DF-10 (also known as vdW-DF2) VV09 the non-local part of VV09 VV10 the non-local part of VV10
RECOMMENDATION:
       Do not forget to add the LSDA correlation (PW92 is recommended) when using vdW-DF-04, vdW-DF-10, or VV09. VV10 should be used with PBE correlation. Choose exchange functionals carefully: HF, rPW86, revPBE, and some of the LRC exchange functionals are among the recommended choices.

NL_VV_C
       Sets the parameter C in VV09 and VV10. This parameter is fitted to asymptotic van der Waals C6 coefficients.
TYPE:
       INTEGER
DEFAULT:
       89 for VV09 No default for VV10
OPTIONS:
       n Corresponding to C=n/10000
RECOMMENDATION:
       C=0.0093 is recommended when a semi-local exchange functional is used. C=0.0089 is recommended when a long-range corrected (LRC) hybrid functional is used. For further details see Ref. 1139.

NL_VV_B
       Sets the parameter b in VV10. This parameter controls the short range behavior of the non-local correlation energy.
TYPE:
       INTEGER
DEFAULT:
       No default
OPTIONS:
       n Corresponding to b=n/100
RECOMMENDATION:
       The optimal value depends strongly on the exchange functional used. b=5.9 is recommended for rPW86. For further details see Ref. 1139.

USE_RVV10
       Used to turn on the rVV10 NLC functional
TYPE:
       LOGICAL
DEFAULT:
       FALSE
OPTIONS:
       FALSE Use VV10 NLC (the default for NL_CORRELATION) TRUE Use rVV10 NLC
RECOMMENDATION:
       Set to TRUE if the rVV10 NLC is desired.

USE_LIBNLQ
       Turn on the use of LIBNLQ for calculating nonlocal correlation funcitonal.
TYPE:
       LOGICAL
DEFAULT:
       True For VV10. FALSE For all other nonlocal funcitonals.
OPTIONS:
       False True
RECOMMENDATION:
       Use the default