※ Note that DFT-D4 github must be precompiled.
After calculating HF-DFT, dispersion energy could be obtained with the following Python code.
Example for D2C Dispersion of r2SCAN:
import dftd4.pyscf as disp
from dftd4.interface import DampingParam, DispersionModel
disp = DispersionModel(mol.atom_charges(), mol.atom_coords(), mol.charge)
param = DampingParam(s6=1., s8=0.02734375, a1=0.74707031, a2=3.34667969)
res = disp.get_dispersion(param=param,grad=False)
print(res['energy'])
Parameters for D2C-DFT JCTC (s6 is fixed as 1.)
XC s8 a1 a2
PBE 1.78595387 0.88511469 2.32863362
PBE0 1.53360351 0.78689150 3.25641582
revPBE 1.80966761 0.58558155 2.71965468
revPBE0 1.74590783 0.40385673 4.26818294
BLYP 1.65244425 0.56438878 2.65715701
B3LYP 1.35513689 0.41757850 3.84594813
TPSS 1.54044984 0.69473318 2.51512802
TPSS0 1.50843498 0.60162555 3.65500533
SCAN 1.72616184 0.06450398 8.62911596
SCAN0 3.69655894 0.16214976 8.90158495
r2SCAN 0.02734375 0.74707031 3.34667969
r2SCAN0 3.97877459 0.75987648 5.45977445
M06L 0.75781250 0.81445313 6.16992188
M06 1.30522230 0.83568617 4.37780185