6.5 Dispersion Correction for DFT Calculations

Based on an idea that has earlier been proposed for Hartree-Fock calculations [86,87], a general empirical dispersion correction has been proposed by Stefan Grimme for density functional calculations [88]. A modified version of the approach with extension to more elements and more functionals has been published in ref. [89]. The most recent implementation [90] is less empirical, i.e. the most important parameters are computed by first principles, and it provides a consistent description across the whole periodic system.

The first version (DFT-D1) can be invoked by the keyword $olddisp in the control file. The second version (DFT-D2) is used if the keyword $disp is found.
For the usage of DFT-D3 just add keyword $disp3 to the control file. Only one of the three keywords is expected to be present.

If DFT-D3 is used, the total energy is given by

EDF T-D3 = EKS - DFT - Edisp

where EKS-DFT is the usual self-consistent Kohn-Sham energy as obtained from the chosen functional and Edisp is a dispersion correction given by the sum of two- and three-body energies

E    = E (2) + E (3),

with the dominating two-body term

      ∑     ∑       CAB
E(2) =            sn--nn--fd,n(rAB ).
      AB  n=6,8,10,...   rAB

The first sum runs over all atom pair, CnAB denotes the nth-order dispersion coefficient for atom pair AB, rAB is their interatomic distance, and fd,n is a damping function.

Becke-Johnson (BJ) damping can be invoked by adding the option bj or -bj to the $disp3 keyword: $disp bj If you use this damping option please also cite [91].

The three-body term can be switched on by adding abc to the $disp3 input line, i.e. to use it in combination with Becke-Johnson damping just add $disp3 bj abc

It is also possible not to use the functional name given in the control file but to tell the DFT-D3 routines to use the parameters which have been fitted to a specific functional. Just as in the original DFT-D3 routines, this can be selected by adding the func option, for example $disp3 bj func pbe0. It is recommeded to use this option as the last one in the $disp3 input line.

Please have look at DFT-D3 homepage, Grimme group Bonn for more detailed information.