Skip to content

Commit d76ce40

Browse files
authored
Add parameters for B97-3c (#26)
1 parent 84ba953 commit d76ce40

3 files changed

Lines changed: 20 additions & 9 deletions

File tree

assets/parameters.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ d3.bjm = {a1=0.240184, s8=1.206988, a2=3.864426, doi="10.1021/acs.jpclett.6b0078
3737
d3.zerom = {rs6=1.151808, s8=1.020078, bet=0.035964, doi="10.1021/acs.jpclett.6b00780"}
3838
d3.op = {s6=1.0, s8=1.46861, a1=0.600, a2=2.50, bet=0.0, doi="10.1021/acs.jctc.7b00176"}
3939

40+
[parameter.b973c]
41+
d3.bj = {a1=0.37, s8=1.50, a2=4.10, doi="10.1063/1.5012601"}
42+
d3.zero = {rs6=1.06, s8=1.50, doi="10.1063/1.5012601"}
43+
4044
[parameter.pbe]
4145
d3.bj = {a1=0.4289, s8=0.7875, a2=4.4407}
4246
d3.zero = {rs6=1.217, s8=0.722, doi="10.1063/1.3382344"}

src/dftd3/param.f90

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ module dftd3_param
6060
& p_mpw2plyp_df, p_m11_df, p_sogga11x_df, p_n12sx_df, p_mn12sx_df, &
6161
& p_ms2_df, p_ms2h_df, p_mpw1lyp_df, p_mpwkcis1k_df, p_pkzb_df, p_n12_df, &
6262
& p_m08hx_df, p_m11l_df, p_mn15l_df, p_pwp_df, p_r2scanh_df, p_r2scan0_df, &
63-
& p_r2scan50_df
63+
& p_r2scan50_df, p_b973c_df
6464
end enum
6565

6666
contains
@@ -97,6 +97,7 @@ function get_method_id(method) result(id)
9797
case("b971"); id = p_b97_1_df
9898
case("b972"); id = p_b97_2_df
9999
case("b97d"); id = p_b97d_df
100+
case("b973c"); id = p_b973c_df
100101
case("b97m"); id = p_b97m_df
101102
case("b98"); id = p_b98_df
102103
case("bhlyp"); id = p_bhlyp_df
@@ -229,6 +230,8 @@ subroutine get_rational_damping(param, method, error, s9)
229230
param = d3_param(a1=0.1820_wp, s8=0.8318_wp, a2=4.0094_wp)
230231
case(p_b97d_df)
231232
param = d3_param(a1=0.5545_wp, s8=2.2609_wp, a2=3.2297_wp)
233+
case(p_b973c_df)
234+
param = d3_param(a1=0.37_wp, s8=1.50_wp, a2=4.10_wp)
232235
case(p_pbe_df)
233236
param = d3_param(a1=0.4289_wp, s8=0.7875_wp, a2=4.4407_wp)
234237
case(p_rpw86pbe_df)
@@ -440,6 +443,8 @@ subroutine get_zero_damping(param, method, error, s9)
440443
param = d3_param(rs6=1.139_wp, s8=1.683_wp)
441444
case(p_b97d_df)
442445
param = d3_param(rs6=0.892_wp, s8=0.909_wp)
446+
case(p_b973c_df)
447+
param = d3_param(rs6=1.06_wp, s8=1.50_wp)
443448
case(p_revpbe_df)
444449
param = d3_param(rs6=0.923_wp, s8=1.010_wp)
445450
case(p_pbe_df)

test/unit/test_param.f90

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ subroutine test_d3bj_mb01(error)
110110
& "b1lyp", "mpw1pw", "mpw1kcis", "pbeh1pbe", "pbe1kcis", "x3lyp", "o3lyp", &
111111
& "b971", "b972", "b98", "hiss", "hse03", "revtpssh", "revtpss0", "tpss1kcis", &
112112
& "tauhcthhyb", "mn15", "lcwhpbe", "mpw2plyp", "m11", "sogga11x", "n12sx", "mn12sx", &
113-
& "r2scanh", "r2scan0", "r2scan50"]
113+
& "r2scanh", "r2scan0", "r2scan50", "b973c"]
114114
real(wp), parameter :: ref(*) = [&
115115
&-2.9551694676908012E-2_wp,-1.6638703086788331E-2_wp,-1.6725877716130381E-2_wp, &
116116
&-3.3014429592265318E-2_wp,-2.2051435219996540E-2_wp,-3.3481565825316001E-2_wp, &
@@ -142,7 +142,7 @@ subroutine test_d3bj_mb01(error)
142142
&-2.6879433016433214E-3_wp,-4.7068039876219803E-5_wp,-2.2830467677890126E-2_wp, &
143143
&-8.9046741008620024E-3_wp,-4.2882619531553470E-3_wp,-3.4182032740020921E-2_wp, &
144144
&-1.7851923991011053E-2_wp,-7.2749942776428288E-3_wp,-5.9043780290722733E-3_wp, &
145-
&-6.5370091760150479E-3_wp,-7.3564457249637944E-3_wp]
145+
&-6.5370091760150479E-3_wp,-7.3564457249637944E-3_wp,-4.2958524322550894E-2_wp]
146146

147147
call get_structure(mol, "MB16-43", "01")
148148
do ii = 1, size(func)
@@ -177,7 +177,7 @@ subroutine test_d3zero_mb09(error)
177177
& "pw1pw", "pbehpbe", "xlyp", "mpwpw", "hcth407", "revtpss", "tauhcth", &
178178
& "b3p", "b1p", "b1lyp", "mpw1pw", "mpw1kcis", "pbeh1pbe", "pbe1kcis", &
179179
& "x3lyp", "o3lyp", "b971", "b972", "b98", "hiss", "hse03", "revtpssh", &
180-
& "revtpss0", "tpss1kcis", "tauhcthhyb", "mpw2plyp"]
180+
& "revtpss0", "tpss1kcis", "tauhcthhyb", "mpw2plyp", "b973c"]
181181
real(wp), parameter :: ref(*) = [&
182182
& 1.4617000329030605E-1_wp,-1.4741267229767294E-2_wp,-1.3716369898239468E-2_wp, &
183183
&-2.0673049860038258E-2_wp,-1.8741296181572904E-2_wp,-6.7002000141365174E-3_wp, &
@@ -206,7 +206,8 @@ subroutine test_d3zero_mb09(error)
206206
&-9.7960459201707675E-3_wp,-1.1804087267700464E-2_wp,-9.8608424063707390E-3_wp, &
207207
&-1.0148393050164134E-2_wp,-1.1462890566584262E-2_wp,-5.8934014233026572E-3_wp, &
208208
&-7.1067312076729611E-3_wp,-8.9020818106658166E-3_wp,-8.0382680164769616E-3_wp, &
209-
&-1.2773548954558107E-2_wp,-1.0444034180767760E-2_wp,-4.8721698293720563E-3_wp]
209+
&-1.2773548954558107E-2_wp,-1.0444034180767760E-2_wp,-4.8721698293720563E-3_wp, &
210+
&-1.4639383757783959E-2_wp]
210211

211212
call get_structure(mol, "MB16-43", "09")
212213
do ii = 1, size(func)
@@ -238,7 +239,7 @@ subroutine test_d3bjatm_mb17(error)
238239
& "pw1pw", "pw6b95", "pwb6k", "pwgga", "pwpb95", "revpbe", "revpbe0", &
239240
& "revpbe38", "revssb", "rpbe", "rpw86pbe", "ssb", "tpss", "tpss0", "tpssh", &
240241
& "scan", "rscan", "r2scan", "b97m", "wb97m", "wb97x", &
241-
& "r2scanh", "r2scan0", "r2scan50"]
242+
& "r2scanh", "r2scan0", "r2scan50", "b973c"]
242243
real(wp), parameter :: ref(*) = [&
243244
&-2.3886024757749025E-2_wp,-1.2511386468651674E-2_wp,-1.4044660238061260E-2_wp, &
244245
&-2.8422909990177846E-2_wp,-1.9411341783127211E-2_wp,-2.9014208237027887E-2_wp, &
@@ -260,7 +261,7 @@ subroutine test_d3bjatm_mb17(error)
260261
&-1.9336394133874998E-2_wp,-3.7332351753141214E-3_wp,-5.8233052775258781E-3_wp, &
261262
&-4.8268739519799772E-3_wp,-4.5927344991332809E-2_wp,-1.9723672704756907E-2_wp, &
262263
&-3.7824098003146032E-2_wp,-5.1862651268351767E-3_wp,-5.7275846053051168E-3_wp, &
263-
&-6.4146049302302843E-3_wp]
264+
&-6.4146049302302843E-3_wp,-3.6643019717926037E-2_wp]
264265

265266
call get_structure(mol, "MB16-43", "17")
266267
do ii = 1, size(func)
@@ -295,7 +296,7 @@ subroutine test_d3zeroatm_mb25(error)
295296
& "pw1pw", "pbehpbe", "xlyp", "mpwpw", "hcth407", "revtpss", "tauhcth", &
296297
& "b3p", "b1p", "b1lyp", "mpw1pw", "mpw1kcis", "pbeh1pbe", "pbe1kcis", &
297298
& "x3lyp", "o3lyp", "b971", "b972", "b98", "hiss", "hse03", "revtpssh", &
298-
& "revtpss0", "tpss1kcis", "tauhcthhyb", "mpw2plyp"]
299+
& "revtpss0", "tpss1kcis", "tauhcthhyb", "mpw2plyp", "b973c"]
299300
real(wp), parameter :: ref(*) = [&
300301
& 1.0613154373646663E-1_wp,-1.8876259384422459E-2_wp,-1.7576377305669005E-2_wp, &
301302
&-2.3748702681871504E-2_wp,-2.2303369775790879E-2_wp,-8.6007220574423112E-3_wp, &
@@ -324,7 +325,8 @@ subroutine test_d3zeroatm_mb25(error)
324325
&-1.2231360411976182E-2_wp,-1.4855506321386058E-2_wp,-1.2440947033067303E-2_wp, &
325326
&-1.2723713762009774E-2_wp,-1.4469421175303927E-2_wp,-7.4336230287781746E-3_wp, &
326327
&-8.9126407786282984E-3_wp,-1.1258613133535007E-2_wp,-1.0204599751079367E-2_wp, &
327-
&-1.6065929734220732E-2_wp,-1.3083826111391977E-2_wp,-6.0511412375980119E-3_wp]
328+
&-1.6065929734220732E-2_wp,-1.3083826111391977E-2_wp,-6.0511412375980119E-3_wp, &
329+
&-1.8691177475853686E-2_wp]
328330

329331
call get_structure(mol, "MB16-43", "25")
330332
do ii = 1, size(func)

0 commit comments

Comments
 (0)