Skip to content

Commit

Permalink
Add parameters for B97-3c (#26)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeanwsr authored Jul 25, 2022
1 parent 84ba953 commit d76ce40
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 9 deletions.
4 changes: 4 additions & 0 deletions assets/parameters.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ d3.bjm = {a1=0.240184, s8=1.206988, a2=3.864426, doi="10.1021/acs.jpclett.6b0078
d3.zerom = {rs6=1.151808, s8=1.020078, bet=0.035964, doi="10.1021/acs.jpclett.6b00780"}
d3.op = {s6=1.0, s8=1.46861, a1=0.600, a2=2.50, bet=0.0, doi="10.1021/acs.jctc.7b00176"}

[parameter.b973c]
d3.bj = {a1=0.37, s8=1.50, a2=4.10, doi="10.1063/1.5012601"}
d3.zero = {rs6=1.06, s8=1.50, doi="10.1063/1.5012601"}

[parameter.pbe]
d3.bj = {a1=0.4289, s8=0.7875, a2=4.4407}
d3.zero = {rs6=1.217, s8=0.722, doi="10.1063/1.3382344"}
Expand Down
7 changes: 6 additions & 1 deletion src/dftd3/param.f90
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ module dftd3_param
& p_mpw2plyp_df, p_m11_df, p_sogga11x_df, p_n12sx_df, p_mn12sx_df, &
& p_ms2_df, p_ms2h_df, p_mpw1lyp_df, p_mpwkcis1k_df, p_pkzb_df, p_n12_df, &
& p_m08hx_df, p_m11l_df, p_mn15l_df, p_pwp_df, p_r2scanh_df, p_r2scan0_df, &
& p_r2scan50_df
& p_r2scan50_df, p_b973c_df
end enum

contains
Expand Down Expand Up @@ -97,6 +97,7 @@ function get_method_id(method) result(id)
case("b971"); id = p_b97_1_df
case("b972"); id = p_b97_2_df
case("b97d"); id = p_b97d_df
case("b973c"); id = p_b973c_df
case("b97m"); id = p_b97m_df
case("b98"); id = p_b98_df
case("bhlyp"); id = p_bhlyp_df
Expand Down Expand Up @@ -229,6 +230,8 @@ subroutine get_rational_damping(param, method, error, s9)
param = d3_param(a1=0.1820_wp, s8=0.8318_wp, a2=4.0094_wp)
case(p_b97d_df)
param = d3_param(a1=0.5545_wp, s8=2.2609_wp, a2=3.2297_wp)
case(p_b973c_df)
param = d3_param(a1=0.37_wp, s8=1.50_wp, a2=4.10_wp)
case(p_pbe_df)
param = d3_param(a1=0.4289_wp, s8=0.7875_wp, a2=4.4407_wp)
case(p_rpw86pbe_df)
Expand Down Expand Up @@ -440,6 +443,8 @@ subroutine get_zero_damping(param, method, error, s9)
param = d3_param(rs6=1.139_wp, s8=1.683_wp)
case(p_b97d_df)
param = d3_param(rs6=0.892_wp, s8=0.909_wp)
case(p_b973c_df)
param = d3_param(rs6=1.06_wp, s8=1.50_wp)
case(p_revpbe_df)
param = d3_param(rs6=0.923_wp, s8=1.010_wp)
case(p_pbe_df)
Expand Down
18 changes: 10 additions & 8 deletions test/unit/test_param.f90
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ subroutine test_d3bj_mb01(error)
& "b1lyp", "mpw1pw", "mpw1kcis", "pbeh1pbe", "pbe1kcis", "x3lyp", "o3lyp", &
& "b971", "b972", "b98", "hiss", "hse03", "revtpssh", "revtpss0", "tpss1kcis", &
& "tauhcthhyb", "mn15", "lcwhpbe", "mpw2plyp", "m11", "sogga11x", "n12sx", "mn12sx", &
& "r2scanh", "r2scan0", "r2scan50"]
& "r2scanh", "r2scan0", "r2scan50", "b973c"]
real(wp), parameter :: ref(*) = [&
&-2.9551694676908012E-2_wp,-1.6638703086788331E-2_wp,-1.6725877716130381E-2_wp, &
&-3.3014429592265318E-2_wp,-2.2051435219996540E-2_wp,-3.3481565825316001E-2_wp, &
Expand Down Expand Up @@ -142,7 +142,7 @@ subroutine test_d3bj_mb01(error)
&-2.6879433016433214E-3_wp,-4.7068039876219803E-5_wp,-2.2830467677890126E-2_wp, &
&-8.9046741008620024E-3_wp,-4.2882619531553470E-3_wp,-3.4182032740020921E-2_wp, &
&-1.7851923991011053E-2_wp,-7.2749942776428288E-3_wp,-5.9043780290722733E-3_wp, &
&-6.5370091760150479E-3_wp,-7.3564457249637944E-3_wp]
&-6.5370091760150479E-3_wp,-7.3564457249637944E-3_wp,-4.2958524322550894E-2_wp]

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

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

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

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

0 comments on commit d76ce40

Please sign in to comment.