Once you can sincerely say, "I don't know," then it becomes possible to get at the truth.
(Robert A. Heinlein)
How to run the revDSD-PBEP86-D3BJ double hybrid functional
This newly reparametrized version was fitted against the very large and diverse GMTKN55 benchmark of Goerigk, Grimme, and coworkers. Details are given in Paper 287; it is clearly superior in performance to the original functional (which, for want of computational resources, was fit against about 1/10th the sample size) and in fact, its accuracy approaches composite wavefunction methods like G4 theory.
Sample inputs for revDSD-PBEP86-D3BJ:
​
Gaussian 16
​
$rungauss
%mem=8GB
%nproc=8
#p dsdpbep86/def2TZVPP iop(3/125=0079905785,3/78=0429604296,3/76=0310006900,3/74=1004)
# empiricaldispersion=gd3bj iop(3/174=0437700,3/175=-1,3/176=0,3/177=-1,3/178=5500000)
0 1
C 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.131400
​
Orca 4 and later
This Gaussian version includes an implementation of Grimme's DFT-D3 empirical dispersion correction. Unfortunately,
custom parameters for it cannot be set via the command line or IOps: instead, the parameters can be set via environment variables. For example, if your command shell is csh or tcsh, then the prologue should execute the following commands:
​
!PAL8
%MaxCore 2500
! RKS def2-TZVPP def2-tzvpp/c def2/j tightscf rijcosx GRID6 GRIDX9 NoPOP d3bj
%method
Exchange X_PBE
Correlation C_P86
ScalHFX 0.69
ScalDFX 0.31
ScalGGAC 0.4296
ScalLDAC 0.4296
ScalMP2C 1.0
D3S6 0.4377
D3A2 5.5
D3S8 0.0
D3A1 0.0
end
%mp2
DoSCS true
PS 0.5785
PT 0.0799
end
*xyz 0 1
C 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.131400
*
​
​
Q-CHEM 5.1 and later
$comment
revDSD-PBEP86-D3BJ with frozen cores
$end
$rem
SYMMETRY false
BASIS def2-TZVPP
exchange GEN
correlation rimp2
DH TRUE
SSS_FACTOR 079900
SOS_FACTOR 578500
DFT_D D3_BJ
DFT_D3_S6 43770
DFT_D3_S8 0
DFT_D3_A2 550000
DFT_D3_A1 0
XC_GRID 3
ECP def2-ECP
N_FROZEN_CORE FC
AUX_BASIS_CORR rimp2-def2-TZVPPD
MAX_SCF_CYCLES 1000
SCF_CONVERGENCE 7
THRESH 12
MEM_STATIC 2000
SET_ITER 100
MOLDEN_FORMAT false
PRINT_ORBITALS 10
SCF_FINAL_PRINT 1
$end
$xc_functional
C P86 1
X HF 0.6900
X PBE 0.3100
$end
$molecule
0 1
C 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.131400
$end
​
​
MOLPRO, late patch levels of 2015 and more recent versions
The following ought to work:
gthresh,energy=1d-10
geomtyp=xyz
geom={
2
carbon monoxide
c 0.0 0.0 0.0
o 0.0 0.0 1.1314
}
basis,avtz
{ks,pbex,p86;dh,0.69,0.5704;}
mp2,scsfacs=0.5785/0.5704,scsfact=0.0799/0.5704;
dispcorr3,version=4,s6=0.4377,rs6=0.0000,s18=0.0000,rs18=5.5
show,emp2_scs,edisp
energy=emp2_scs+edisp
---
​
MRCC (recent versions)
The following ought to work:
​
basis=def2-TZVPP
symm=0
mem=14GB
ecp=auto
agrid=LD0110-LD0590
grtol=12
verbosity=3
calc=scf
dft=user
5
0.3100 PBEx
0.4296 P86
0.6900 HFx
0.5785 MP2s
0.0799 MP2t
edisp=-bj
charge= 0
mult= 1
geom=xyz
2
Charge is 0 Multiplicity is 1
C 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.131400
Use the following .dftd3par.$HOST file for adding the D3BJ correction:
0. 4377 0.0 0.0 5.5 14.0 4
s6 a1 s8 a2 alpha 4
#with s6=1.0 except for double hybrids
#and alpha is ignored except when 3-body terms enabled using -#abc (default then 14.0)
​
revDSD-PBEP86-D4
​
​
The above electronic structure codes can do everything except the final D4 correction, which can be computed using Grimme's DFTD4 external program. ORCA 5 has the latter built in, however:
​
ORCA (recent versions):
​
!PAL8
%MaxCore 2500
! RKS D4 def2-TZVPP def2-TZVPP/c def2/j tightscf DEFGRID3 NoPOP rijcosx
%method
Exchange X_PBE
Correlation C_P86
ScalHFX 0.69
ScalDFX 0.31
ScalGGAC 0.4210
ScalLDAC 0.4210
ScalMP2C 1.0
LDAOpt C_VWN5
D3S6 0.5132
D3S8 0.0
D3A1 0.44
D3A2 3.60
end
%mp2
DoSCS true
PS 0.5922
PT 0.0636
end
*xyz 0 1
C 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.131400
*
​
For additional variations, consult Paper 287 or its ESI, or contact us.
​
​
MOLPRO 2022 or later (now also works for open shell):
gthresh,energy=1d-10
geomtyp=xyz
geom={
2
carbon monoxide
c 0.0 0.0 0.0
o 0.0 0.0 1.1314
}
basis,avtz
cDFTc=0.4210
cXHF=0.69
c2ab=0.5922
c2ss=0.0636
{DF-ks,pbex,p86,gridthr=1d-6,gridthr=3d-7;dh,cXHF,1.00-cDFTc}
EKS=ENERGY;
DF-mp2,scsfacs=c2ab/(1.00-cDFTc),scsfact=c2ss/(1.00-cDFTc)
PT2=(EMP2_SCS - ENERGR)*(1.00-cDFTc)
!For normal MP2-F12, we need not to multiply SCSMP2DZ with 0.5790
TOTAL_ENERGY=EKS+PT2
MOLPRO 2022.3, 2023, or later (note ksfock keyword now required for KS->MP2):
gthresh,energy=1d-10
geomtyp=xyz
geom={
2
carbon monoxide
c 0.0 0.0 0.0
o 0.0 0.0 1.1314
}
basis,avtz
cDFTc=0.4210
cXHF=0.69
c2ab=0.5922
c2ss=0.0636
{DF-ks,pbex,p86,gridthr=1d-6,gridthr=3d-7;dh,cXHF,1.00-cDFTc}
EKS=ENERGY;
DF-mp2,ksfock,scsfacs=c2ab/(1.00-cDFTc),scsfact=c2ss/(1.00-cDFTc)
PT2=(EMP2_SCS - ENERGR)*(1.00-cDFTc)
!For normal MP2-F12, we need not to multiply SCSMP2DZ with 0.5790
TOTAL_ENERGY=EKS+PT2
​