Long-range dispersion corrections
Background
Why and when are long range-dispersion methods needed?
Van der Waals (vdW) interactions are ubiquitous in nature but aren't accounted for by standard local and semilocal density functional approximations (i.e. LDA or GGAs). In particular, the long-range attractive part of the vdW interaction between system components (London dispersion interaction) is not captured. Including such dispersion effects is essential for accurately describing certain systems, especially for systems that are not bound ionically or covalently, e.g. gas molecules.
The use of a dispersion method is strongly recommended when intermolecular interactions are expected to play a key role such as in molecular crystals, stacked 2D materials, and generally any weakly-bound system.
Types of correction schemes
There are several families of dispersion methods. A good summary of these can be found in the 2016 review by Grimme et al.1 We will summarise these categories here and, for those implemented in CASTEP, link to the relevant keywords.
Semiempirical/semiclassical treatments
Here the dispersion energy is calculated atom-wise (typically pair-wise) and is added to the DFT energy of the underlying functional. Note that a specific damping parameter (and function) is usually used to combine a given underlying functional (e.g. PBE) with a dispersion correction (e.g. D3). This means, for example, that the D3 correction to the PBE functional may be different to the D3 correction to HSE.
Methods include:
- The Tkatchenko−Scheffler scheme (TS)
- The TS-based many-body dispersion scheme (MBD)
- Grimme's D2 and D3 methods
- The exchange-dipole moment model (XDM)
Nonlocal density-based treatments (not implemented in CASTEP)
Here non-local functionals of the electronic density are constructed. Methods include the van der Waals functionals (e.g. vdW-DF2
2 and vdW-DF-cx
3) and Vydrov and Van Voorhis functionals4.
Effective one-electron potentials (not implemented in CASTEP)
Finally, the many-body correlated motion of electrons can be, to some extent, captured empiricially by using effective one-electron potentials. Examples of these include: semi-local functionals such as the Minnesota functionals (e.g. M06
5) and external potentials such as the dispersion-corrected atom-centered potentials (e.g. van Santen and DiLabio, 20156).
General recommendations
Every application will have its own set of important features and it is not possible to say with certainty which density functional approximation will be the most appropriate. With that said, here are some suggestions for different types of materials:
- Molecular crystals: D3-BJ/XDM/MBD in combination with GGA or hybrid functionals (Dolgonos et al., 20197).
- Metals: vdW-DFs developed with solid state materials in mind (Klimeš et al., 20118).
- Interactions between molecules and surfaces of metals: vdW-DFs or dispersion methods that include screening, e.g. TSSCS
- MOFs: dispersion corrected (e.g. TS, D3, etc.) GGAs
- Layered vdW materials: Beyond pairwise approaches, e.g. D3-BJ* or MBD.
^* See note below for how to include the three-body terms in the CASTEP D3 correction.
Again, please do your own testing and consult relevant reviews and benchmarking papers.
For the TS, MBD and XDM methods you may get a warning if your unit cell is small (where the lattice constants are comparable to the vdW radii). This has been fixed in academic CASTEP v24.1 for TS and MBD, and in v25 for XDM. If you are using an older version of CASTEP, then you should try to use larger unit cells until your dispersion correction converges.
Not all XC_FUNCTIONAL
values are supported for all schemes - if in doubt use PBE. The primary 'XC_FUNCTIONAL' for XDM is B86PBE.
Each scheme has default parameters defined for a subset of elements (see table below). For other elements you need to define custom parameters using the SEDC_CUSTOM_PARAMS
keyword in the .cell file.
Using dispersion corrections in CASTEP
.param file keywords
In the .param
file, set:
SEDC_APPLY
: true
turns on dispersion correction.
SEDC_SCHEME
: The semi-empirical dispersion/van der Waals correction scheme to use. Default is NONE
, other possible values listed in the table below.
SEDC_SCHEME | Available from CASTEP version | Compatible XC functionals | Elements supported | Stresses | Phonons^* |
---|---|---|---|---|---|
TS 9 | Predates 2012 | PBE, PBE0, PBE1PBE, BLYP, B3LYP, AM0, RPB, PBESOL, PW91 | Up to Z=54 with first row Lanthanides | Analytic | DFPT & FD |
TSSURF 10 | Not sure if working | ||||
TSSCS 11 | Not sure if working | Up to Z=54 with first row Lanthanides | Analytic | ||
MBD (Alias: MBD*) 1112 | 2015? Rewritten (and fixed) for CASTEP 18 | PBE, PBE0, PBE1PBE, HSE03, HSE06, RSCAN | Up to Z=54 with first row Lanthanides | Numeric | FD |
G06 (= D2) 13 | Predates 2012 | PBE, BLYP, BP86, B3LYP, TPSS | Up to Z= 54 | Analytic | DFPT & FD |
D3 14 | CASTEP 20 (Compilation instructions) | PBE, PBE0, HF | Analytic | FD | |
D3-BJ 15 | CASTEP 20 (Compilation instructions) | PBE, PBE0, HF | Analytic | FD | |
D4 161718 | CASTEP 24.1 | PBE, RPBE, PBESOL, BLYP, PW91, RSCAN | Analytic | FD | |
OBS 19 | Predates 2012 | LDA, PW91 | Up to Z=57 | Analytic | DFPT & FD |
JCHS 20 | Predates 2012 | PBE, BLYP, B3LYP, TPSS | H, C, N, O, F, Cl, Br | Analytic | DFPT & FD |
XDM 21 | CASTEP 20 | B86PBE, PBE, BLYP, PBESOL, PW91, RPBE, WC, RSCAN | Up to Z=102 | Analytic | FD |
^* DFPT: Density functional perturbation theory; FD: finite displacement.
All of the above methods support analytic forces.
.cell file keywords
In the .cell
file you can optionally set custom parameters for each species:
C6
(eV Å^6): Available for TS, MBD*, and Grimme schemes.R0
(Å): Available for TS, MBD*, and Grimme schemes.alpha
(Å^3): Available for TS, MBD*, and OBS schemes.I
(eV): Available for the OBS scheme.Rvdw
(Å): Available for the OBS scheme.
You set them like this:
%BLOCK SEDC_CUSTOM_PARAMS
! example values for test purposes only - don't use these... !
He C6:1.00 R0:2.00
Ne C6:10.00 R0:4.00
%ENDBLOCK SEDC_CUSTOM_PARAMS
Method details and customisation
Tkatchenko−Scheffler schemes
A density-dependent, atom pairwise dispersion-correction scheme.
Restrictions:
- Can only be used with the following XC functionals: PBE, PBE0, PBE1PBE, BLYP, B3LYP, AM0, RPB, PBESOL, PW91
- Elements up to Z=54 (Xe) together with first row Lanthanides are supported.
- TS with self-consistent screening
Customisation keywords for all TS schemes
.param file
SEDC_SR_TS
Type: Real (float)
Level: Expert
Description:
Customisable SR value for the damping function in the TS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_D_TS
Type: Real (float)
Level: Expert
Description:
Customisable d value for the damping function in the TS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
.cell file
SEDC_CUSTOM_PARAMS
Type: Block
Level: Basic
Description: Customized parameters for semi-empirical dispersion corrections. Used to calculate van der Waals forces. Default value for each species is determined by the chosen semiempirical correction scheme. For the TS methods, C6
(eV Å^6), R0
(Å) and alpha
(Å^3) can be customised.
Many-body dispersion
Beyond what can be included in simple pairwise dispersion approaches, MBD introduces: (1) many-body energy (Axilrod-Teller and higher-order) and (2) long-range Coulomb response (screening) that serves to modify the polarizabilities of interacting species.
SEDC_SCHEME : MBD
- (Alias:
MBD*
)
Note that the two aliases MBD and MBD* both refer to the revised version of MBD which employs range-separation (rs) of the self-consistent screening (SCS) of polarizabilities and the calculation of the long-range correlation energy, i.e. the MBD@rs-scs method.
Restrictions:
- Can only be used with the following XC functionals: PBE, PBE0, PBE1PBE, HSE03, HSE06, RSCAN
- Elements up to Z=54 (Xe) together with first row Lanthanides are supported.
- Note that in the current implementation, only numeric stresses are available.
Customisation keywords for MBD scheme
.param file
SEDC_SR_TS
Type: Real (float)
Level: Expert
Description:
Customisable SR value for the damping function in the TS and MBD correction schemes.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_D_TS
Type: Real (float)
Level: Expert
Description:
Customisable d value for the damping functionin the TS and MBD correction schemes.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
.cell file
SEDC_CUSTOM_PARAMS
Type: Block
Level: Basic
Description: Customized parameters for semi-empirical dispersion corrections. Used to calculate van der Waals forces. Default value for each species is determined by the chosen semiempirical correction scheme. For the MBD method, C6
(eV Å^6), R0
(Å) and alpha
(Å^3) can be customised.
Grimme D corrections
D2
Note that default D2 parameters are available only for the PBE, BLYP, BP86, B3LYP, TPSS functionals. You can also customise the correction parameters using the following keywords:
Note
This is CASTEP's name for the Grimme D2 correction
Customisation keywords G06
.param file
SEDC_S6_G06
Type: Real (float)
Level: Expert
Description:
Customisable S6 value for the damping function in the G06
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_D_G06
Type: Real (float)
Level: Expert
Description:
Customisable d value for the damping function in the G06
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
.cell file
SEDC_CUSTOM_PARAMS
Type: Block
Level: Basic
Description: Customized parameters for semi-empirical dispersion corrections. Used to calculate van der Waals forces. Default value for each species is determined by the chosen semiempirical correction scheme. For Grimme's D2 method, C6
(eV Å^6) and R0
(Å) can be customised.
D3
Grimme's DFT-D3 method. The D3 scheme with Becke-Johnson damping (D3-BJ) is generally more accurate22 than the 'zero-damping' method (D3). Note that most published results for "D3" are actually "D3-BJ", and that the original version of D3 is rarely used any more.
Restrictions:
-
Default D3 parameters are available for the PBE, PBE0 and HF functionals.
-
By default the three-body term is not included. To include it, set
d3_threebody: True
within adevel_code
block in the .param file. Turn onIPRINT > 1
to get more information on what has been included in the D3 correction. - In the current implementation, users cannot supply custom parameters for this correction scheme.
This is the Grimme D3 scheme with Becke-Johnson damping.
Note
When running a D3-BJ calculation with IPRINT > 1
, you might see Dispersion version: D4
in the .castep output file. Confusingly, this does not mean the Grimme D4 method has been used, it's just an interal CASTEP version label for this correction scheme.
Compilation flags: for the D3 correction, CASTEP must be compiled with GRIMMED3 := compile
Note that for the D3 correction to work, CASTEP must be compiled with the following flag:
in theMakefile
For CASTEP 20, the D3 library is included in the distribution and the setting the flag above should be sufficient.
D4 Generally applicable atomic-charge dependent London dispersion correction, termed DFT+D4. It is available from CASTEP 24.1 onwards via setting
Note that D4 is made available via using the external dftd4 library. This library is included in the CASTEP 24.1 distribution and should be compiled by default when you build CASTEP.
Restrictions:
- Default D4 parameters are available for the PBE, RPBE, PBESOL, BLYP, PW91 and RSCAN functionals.
Exchange-dipole moment (XDM) method
A unified density-functional treatment of dynamical, nondynamical, and dispersion correlations.
Restrictions:
- Default XDM parameters are available for the following XC functionals: B86PBE, PBE, BLYP, PBESOL, PW91, RPBE, WC, RSCAN
SEDC_SCHEME : XDM
For functionals that are not in this list, you need to specify the following additional parameters:
Customisation keywords
.param file
SEDC_A1_XDM
Type: Real (float)
Level: Expert
Description:
Customisable A1 value for the damping function in the XDM
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default: 1.0.
SEDC_A2_XDM
Type: Physical (float)
Level: Expert
Description:
Customisable A2 value for the damping function in the XDM
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_SC_XDM
Type: Real (float)
Level: Expert
Description:
Customisable SC value for the damping function in the XDM
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_C9_XDM
Type: Logical
Level: Basic
Description:
Specifies whether three-body dispersion coefficients are
to be computed in the XDM semi-empirical dispersion/
van der Waals correction scheme.
Modifiable: restart and on the fly
Allowed values: TRUE
or FALSE
Default is FALSE
Note that if you wish to experiment with these values, for example to test a new functional, then careful further testing is necessary.
Other Schemes
Ortmann, Bechstedt and Schmidt
Semiempirical van der Waals correction to the density functional description of solids and molecular structures
Customisation keywords
.param file
"SEDC_LAMBDA_OBS
"
Type: Real (float)
Level: Expert
Description:
Customisable lambda value for damping function in the the OBS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
"SEDC_N_OBS
"
Type: Real (float)
Level: Expert
Description:
Customisable n value for the damping function in the OBS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
Jurečka, Černý, Hobza and Salahub
Customisation keywords
.param file
SEDC_SR_JCHS
Type: Real (float)
Level: Expert
Description:
Customisable SR value for the damping function in the JCHS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_S6_JCHS
Type: Real (float)
Level: Expert
Description:
Customisable S6 value for the damping function in the JCHS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
SEDC_D_JCHS
Type: Real (float)
Level: Expert
Description:
Customisable d value for the damping function in the JCHS
semi-empirical dispersion/van der Waals correction scheme.
Modifiable: restart and on the fly
Default is determined by XC_FUNCTIONAL
.
-
Stefan Grimme, Andreas Hansen, Jan Gerit Brandenburg, and Christoph Bannwarth. Dispersion-corrected mean-field electronic structure methods. Chemical Reviews, 116(9):5105–5154, 2016. PMID: 27077966. doi:10.1021/acs.chemrev.5b00533. ↩
-
Kyuho Lee, Éamonn D. Murray, Lingzhu Kong, Bengt I. Lundqvist, and David C. Langreth. Higher-accuracy van der Waals density functional. Phys. Rev. B, 82:081101, Aug 2010. doi:10.1103/PhysRevB.82.081101. ↩
-
Kristian Berland and Per Hyldgaard. Exchange functional that tests the robustness of the plasmon description of the van der Waals density functional. Phys. Rev. B, 89:035412, Jan 2014. doi:10.1103/PhysRevB.89.035412. ↩
-
Oleg A. Vydrov and Troy Van Voorhis. Nonlocal van der Waals density functional: The simpler the better. The Journal of Chemical Physics, 133(24):244103, 12 2010. doi:10.1063/1.3521275. ↩
-
Yan Zhao and Donald G. Truhlar. The M06 suite of density functionals for main group thermochemistry, thermochemical kinetics, noncovalent interactions, excited states, and transition elements: two new functionals and systematic testing of four M06-class functionals and 12 other functionals. Theoretical Chemistry Accounts, 120(1):215–241, May 2008. doi:10.1007/s00214-007-0310-x. ↩
-
Jeffrey A. van Santen and Gino A. DiLabio. Dispersion corrections improve the accuracy of both noncovalent and covalent interactions energies predicted by a density-functional theory approximation. The Journal of Physical Chemistry A, 119(25):6703–6713, 2015. PMID: 26030132. doi:10.1021/acs.jpca.5b02809. ↩
-
Grygoriy A. Dolgonos, Johannes Hoja, and A. Daniel Boese. Revised values for the x23 benchmark set of molecular crystals. Phys. Chem. Chem. Phys., 21:24333–24344, 2019. doi:10.1039/C9CP04488D. ↩
-
Jiří Klimeš, David R. Bowler, and Angelos Michaelides. Van der Waals density functionals applied to solids. Phys. Rev. B, 83:195131, May 2011. doi:10.1103/PhysRevB.83.195131. ↩
-
Alexandre Tkatchenko and Matthias Scheffler. Accurate molecular van der Waals interactions from ground-state electron density and free-atom reference data. Phys. Rev. Lett., 102:073005, Feb 2009. doi:10.1103/PhysRevLett.102.073005. ↩
-
Victor G. Ruiz, Wei Liu, Egbert Zojer, Matthias Scheffler, and Alexandre Tkatchenko. Density-functional theory with screened van der Waals interactions for the modeling of hybrid inorganic-organic systems. Phys. Rev. Lett., 108:146103, Apr 2012. doi:10.1103/PhysRevLett.108.146103. ↩
-
Alexandre Tkatchenko, Robert A. DiStasio, Roberto Car, and Matthias Scheffler. Accurate and efficient method for many-body van der Waals interactions. Phys. Rev. Lett., 108:236402, Jun 2012. doi:10.1103/PhysRevLett.108.236402. ↩↩
-
Alberto Ambrosetti, Anthony M. Reilly, Robert A. DiStasio, Jr., and Alexandre Tkatchenko. Long-range correlation energy calculated from coupled atomic response functions. The Journal of Chemical Physics, 140(18):18A508, 02 2014. doi:10.1063/1.4865104. ↩
-
Stefan Grimme. Semiempirical GGA-type density functional constructed with a long-range dispersion correction. Journal of Computational Chemistry, 27(15):1787–1799, 2006. doi:https://doi.org/10.1002/jcc.20495. ↩
-
Stefan Grimme, Jens Antony, Stephan Ehrlich, and Helge Krieg. A consistent and accurate ab initio parametrization of density functional dispersion correction (DFT-D) for the 94 elements H-Pu. The Journal of Chemical Physics, 132(15):154104, 04 2010. doi:10.1063/1.3382344. ↩
-
Stefan Grimme, Stephan Ehrlich, and Lars Goerigk. Effect of the damping function in dispersion corrected density functional theory. Journal of Computational Chemistry, 32(7):1456–1465, 2011. arXiv:https://onlinelibrary.wiley.com/doi/pdf/10.1002/jcc.21759, doi:https://doi.org/10.1002/jcc.21759. ↩
-
Eike Caldeweyher, Christoph Bannwarth, and Stefan Grimme. Extension of the d3 dispersion coefficient model. The Journal of Chemical Physics, July 2017. URL: http://dx.doi.org/10.1063/1.4993215, doi:10.1063/1.4993215. ↩
-
Eike Caldeweyher, Sebastian Ehlert, Andreas Hansen, Hagen Neugebauer, Sebastian Spicher, Christoph Bannwarth, and Stefan Grimme. A generally applicable atomic-charge dependent london dispersion correction. The Journal of Chemical Physics, April 2019. URL: http://dx.doi.org/10.1063/1.5090222, doi:10.1063/1.5090222. ↩
-
Eike Caldeweyher, Jan-Michael Mewes, Sebastian Ehlert, and Stefan Grimme. Extension and evaluation of the d4 london-dispersion model for periodic systems. Physical Chemistry Chemical Physics, 22(16):8499–8512, 2020. URL: http://dx.doi.org/10.1039/D0CP00502A, doi:10.1039/d0cp00502a. ↩
-
F. Ortmann, F. Bechstedt, and W. G. Schmidt. Semiempirical van der Waals correction to the density functional description of solids and molecular structures. Phys. Rev. B, 73:205101, May 2006. doi:10.1103/PhysRevB.73.205101. ↩
-
Petr Jurečka, Jiří Černý, Pavel Hobza, and Dennis R. Salahub. Density functional theory augmented with an empirical dispersion term. Interaction energies and geometries of 80 noncovalent complexes compared with ab initio quantum mechanics calculations. Journal of Computational Chemistry, 28(2):555–569, 2007. doi:10.1002/jcc.20570. ↩
-
Axel D. Becke and Erin R. Johnson. A unified density-functional treatment of dynamical, nondynamical, and dispersion correlations. The Journal of Chemical Physics, 127(12):124108, 09 2007. doi:10.1063/1.2768530. ↩
-
Daniel G. A. Smith, Lori A. Burns, Konrad Patkowski, and C. David Sherrill. Revised damping parameters for the d3 dispersion correction to density functional theory. The Journal of Physical Chemistry Letters, 7(12):2197–2203, 2016. PMID: 27203625. doi:10.1021/acs.jpclett.6b00780. ↩