Home Obtain parameter lists for Grimme's DFT-D3 and gCP methods
Post
Cancel

Obtain parameter lists for Grimme's DFT-D3 and gCP methods

This is a short note discussing how to obtain the critical parameters for empirical DFT-D3 and geometric counterpoise (gCP) corrections developed in S. Grimme’s group. For DFT-D3, part of the parameters are available from its original publication, yet not complete. For gCP, no data is given in published papers. However, they can be easily obtained from the source code of the software posted in group webpage - DFT-D3 and gCP. They are actually toolkit written in Fortran90 to calculate dispersion energy and gCP energy correction terms of a given geometry and based on a given level of accuracy.

The latest releases available on Feb. 07-22 are adopted: DFT-D3 v3.2 Rev0 and gCP v2.02.

DFT-D3

Relatively up-to-date coefficient files for BJ damping and zero damping are available. Specifying functional names by FUNC of DFTD3 sub-block is supported, yet there is a related issue.

gCP

Parameters of gCP mainly depend on basis sets. Open the script ‘gcp.f90’. The following table lists the name of critical parameters and their corresponding variables in the script (line 459~462):

CRYSTAL variablesSIGMAALPHABETAETA
gCP variablesP(1)P(3)P(4)P(2)

Note that there are 2 other variables in the script, emiss and nbas, which are basis set and element specific. They are defined by the keyword METHOD and the geometry file in CRYSTAL, and therefore cannot be modified. Their values are stored respectively in HFbsname and BASbsname variables in the same script (line 1055~1302), e.g., HFsv and BASsv.

The variable RADIUS in CRYSTAL GCP subblock is doubtful here and modification is not recommended. According to the definition in the manual (p.p. 139), it should correspond to the variable thrR, in the script it equals 60 Bohr and offers no help, because it is not a fitted parameter but a cutoff radius for summation.

If it means the radius of atom pairs used for gCP calculation, it should be element specific. In line 582~593, cutoff radius from H to Pu are defined in variable rad but not used. r0ab defines the cut-off radii for all element pairs. Values (in Bohr) can be found in line 4017~4800, defined in a pairwise fashion - in total 4465 combinations, almost unreadable.

The supported methods and basis sets are listed in the manual. According to my rough comparison, the list seems to be incomplete. Their corresponding variable names are listed in:

  • line 1311~1433 - HF
  • line 1435~1574 - KS-DFT & B3LYP
  • line 1578~1661 - 3c & double-hybrid XC functional

For CRYSTAL, the supported methods are consistent with those listed in the script ‘gCP.f90’. Even though the supported methods are not listed in the manual, they can be viewed by a test run. Supported values are printed out if the value of method in GCP sub-block is not recognized, which are listed below:

CRYSTAL17 available options & default parameters - gCP v2.02

KEYWORDSIGMAALPHABETAETA
Hartree-Fock    
HF/SV0.17240.85681.23421.2804
HF/SVP, HF/DEF2SVP0.20540.81361.25721.3157
HF/SV(P), HF/DEF2SV(P), HF/SV_P (*)0.13730.81411.27601.4271
HF/DZP0.14430.37111.63001.4547
HF/631GD0.20480.94471.21001.5652
HF/MINIS, HF/MINIX0.12901.15491.17631.1526
HF/DEF2TZVP0.31271.02161.28331.9914
HF/DEFTZVP, HF/TZVP0.26000.79981.43812.2448
HF/CCDZ, HF/CCPVDZ0.44160.69021.37131.5185
HF/ACCDZ, HF/AUGCCDZ0.07480.38111.01550.0663
HF/2G0.24610.73351.47091.1616
KS-DFT    
DFT/LANL, B3LYP/LANL0.34050.85891.28301.6127
DFT/SV, B3LYP/SV0.40480.86521.23751.1626
DFT/SV(P), B3LYP/SV(P), DFT/DEF2SV(P), B3LYP/DEF2SV(P) (*), DFT/SV_P0.24240.60761.40781.2371
DFT/SVX, B3LYP/SVX0.18610.61711.40191.3200
DFT/SVP, B3LYP/SVP, DFT/DEF2SVP, B3LYP/DEF2SVP0.29900.64381.36941.2605
DFT/DZP0.26870.35131.68801.4634
DFT/631GD, B3LYP/631GD0.34050.85891.28301.6127
DFT/MINIS, B3LYP/MINIS0.20591.19611.14560.9722
DFT/TZ, B3LYP/TZ, DFT/DEF2TZVP, B3LYP/DEF2TZVP0.29050.81201.44122.2495
DFT/DEFTZVP, B3LYP/DEFTZVP, DFT/TZVP, B3LYP/TZVP0.23930.81851.42982.2247
DFT/CCDZ, B3LYP/CCDZ, DFT/CCPVDZ, B3LYP/CCPVDZ0.53830.62301.45231.6482
DFT/ACCDZ, B3LYP/ACCDZ, DFT/AUGCCPVDZ, B3LYP/AUGCCPVDZ0.14650.60030.87610.0500
DFT/POBTZ, B3LYP/POBTZ0.13000.47921.39621.3743
Special Cases    
GGA/MINIS, BLYP/MINIS,0.15661.07321.19681.0271
GGA/SVP, BLYP/SVP0.68230.82251.28111.2491
GGA/SV, BLYP/SV0.27270.80551.30001.4022
GGA/TZ, BLYP/TZ0.11821.05101.12871.0631
TPSS/MINIS0.229821.476331.113001.35401
TPSS/SVP0.66471.07921.16511.3306
PW6B95/MINIS0.210541.350031.140611.25458
PW6B95/SVP0.30980.68961.33471.2373
PBE/DEF2SV(P)0.24240.60761.40781.2371
PBEH3C1.000000.276491.956001.32492
HSE3C1.000000.283141.945271.32378
B3PBE3C1.000000.30112.44052.98561
No Data    
RSH2C/MODDZ, B973C----

(*): Available in CRYSTAL17 but not included in the script ‘gCP.f90’. Their parameters are guessed from similar cases.

B97-3c method doesn’t adopt a standard gCP correction because of the relatively complete basis set. See the B973C keyword in the manual.

Note that there are some options included in ‘gCP.f90’ but not in CRYSTAL17, which are not listed here.

This post is licensed under CC BY 4.0 by the author.