Skip to content

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-DF22 and vdW-DF-cx3) 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. M065) 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.

SEDC_SCHEME : TS

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.

SEDC_SCHEME : TSSCS

  • TS with self-consistent screening

SEDC_SCHEME : TSSURF

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:

SEDC_SCHEME : G06

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 a devel_code block in the .param file. Turn on IPRINT > 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.

SEDC_SCHEME : D3

SEDC_SCHEME : D3-BJ

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:

# Grimme D3 library support. Options are none or compile
GRIMMED3 := compile
in the Makefile

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

SEDC_SCHEME : D4

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

SEDC_SCHEME : OBS

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.

SEDC_SCHEME : JCHS

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.


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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