Skip to content

Commit f1df335

Browse files
committed
Add SCAN-D3(0), SCAN-D3(BJ), rSCAN-D3(BJ) and r²SCAN-D3(BJ) parameters
1 parent 6c47f13 commit f1df335

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

src/dftd3/param.f90

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ module dftd3_param
4949
& p_hf_minis_df, p_b3lyp_631gd_df, p_hcth120_df, p_dftb3_df, p_pw1pw_df, &
5050
& p_pwgga_df, p_hsesol_df, p_hf3c_df, p_hf3cv_df, p_pbeh3c_df, &
5151
& p_slaterdiracexchange_df, p_m05_df, p_m052x_df, p_m06l_df, p_m06_df, &
52-
& p_m062x_df, p_m06hf_df, p_pbe38_df, p_mpwb1k_df
52+
& p_m062x_df, p_m06hf_df, p_pbe38_df, p_mpwb1k_df, p_scan_df, &
53+
& p_rscan_df, p_r2scan_df
5354
end enum
5455

5556
contains
@@ -135,6 +136,9 @@ function get_method_id(method) result(id)
135136
case("tpss0"); id = p_tpss0_df
136137
case("tpssh"); id = p_tpssh_df
137138
case("tpss"); id = p_tpss_df
139+
case("scan"); id = p_scan_df
140+
case("rscan"); id = p_rscan_df
141+
case("r2scan"); id = p_r2scan_df
138142
end select
139143

140144
end function get_method_id
@@ -262,6 +266,12 @@ subroutine get_rational_damping(param, method, error, s9)
262266
param = d3_param(a1=0.3063_wp, s8=0.5022_wp, a2=3.9856_wp)
263267
case(p_pbeh3c_df)
264268
param = d3_param(a1=0.4860_wp, s8=0.0000_wp, a2=4.5000_wp)
269+
case(p_scan_df)
270+
param = d3_param(a1=0.5380_wp, s8=0.0000_wp, a2=5.4200_wp)
271+
case(p_rscan_df)
272+
param = d3_param(a1=0.47023427_wp, s8=1.08859014_wp, a2=5.73408312_wp)
273+
case(p_r2scan_df)
274+
param = d3_param(a1=0.49484001_wp, s8=0.78981345_wp, a2=5.73083694_wp)
265275
end select
266276

267277
if (present(s9)) then
@@ -385,6 +395,8 @@ subroutine get_zero_damping(param, method, error, s9)
385395
param = d3_param(rs6=1.446_wp, s8=0.000_wp)
386396
case(p_hcth120_df)
387397
param = d3_param(rs6=1.221_wp, s8=1.206_wp)
398+
case(p_scan_df)
399+
param = d3_param(rs6=1.324_wp, s8=0.000_wp)
388400
end select
389401

390402
if (present(s9)) then

test/test_param.f90

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ subroutine test_d3bj_mb01(error)
101101
& "hf/mixed", "hf/sv", "hse06", "hsesol", "lcwpbe", "mpw1b95", "mpwlyp", &
102102
& "olyp", "opbe", "otpss", "pbe", "pbe0", "pbeh3c", "pbesol", "ptpss", &
103103
& "pw1pw", "pw6b95", "pwb6k", "pwgga", "pwpb95", "revpbe", "revpbe0", &
104-
& "revpbe38", "revssb", "rpbe", "rpw86pbe", "ssb", "tpss", "tpss0", "tpssh"]
104+
& "revpbe38", "revssb", "rpbe", "rpw86pbe", "ssb", "tpss", "tpss0", "tpssh", &
105+
& "scan", "rscan", "r2scan"]
105106
real(wp), parameter :: ref(*) = [&
106107
& -2.9551695097427895E-2_wp,-1.6638703327271943E-2_wp,-1.6725877952934207E-2_wp,&
107108
& -3.3014430058391525E-2_wp,-2.2051435529913663E-2_wp,-3.3481566296209062E-2_wp,&
@@ -120,7 +121,8 @@ subroutine test_d3bj_mb01(error)
120121
& -4.1947445140749925E-2_wp,-3.7430729018863761E-2_wp,-3.5154038334136578E-2_wp,&
121122
& -1.6039213182661993E-2_wp,-1.0199409897552987E-1_wp,-1.8473410189294232E-2_wp,&
122123
& -4.5113899837342458E-2_wp,-2.3465720037227366E-2_wp,-2.5011519452203857E-2_wp,&
123-
& -2.2089903668121399E-2_wp]
124+
& -2.2089903668121399E-2_wp,-4.1432014419532683E-3_wp,-6.6123762443193899E-3_wp,&
125+
& -5.4507720332652972E-3_wp]
124126

125127
call get_structure(mol, "MB16-43", "01")
126128
do ii = 1, size(func)
@@ -150,7 +152,7 @@ subroutine test_d3zero_mb09(error)
150152
& "mpwlyp", "bpbe", "bhlyp", "tpssh", "pwb6k", "b1b95", "bop", "olyp", &
151153
& "opbe", "ssb", "revssb", "otpss", "b3pw91", "revpbe0", "pbe38", &
152154
& "mpw1b95", "mpwb1k", "bmk", "camb3lyp", "lcwpbe", "m05", "m052x", &
153-
& "m06l", "m06", "m062x", "m06hf", "hcth120"]
155+
& "m06l", "m06", "m062x", "m06hf", "hcth120", "scan"]
154156
real(wp), parameter :: ref(*) = [&
155157
& 1.4617020226660418E-1_wp,-1.4741291128345406E-2_wp,-1.3716392502956634E-2_wp,&
156158
&-2.0673076853447107E-2_wp,-1.8741322042994321E-2_wp,-6.7002109171808389E-3_wp,&
@@ -167,7 +169,8 @@ subroutine test_d3zero_mb09(error)
167169
&-7.1465707444989066E-3_wp,-6.7044219556221807E-3_wp,-1.3136115461328510E-2_wp,&
168170
&-8.3906504527315601E-3_wp,-8.8794919064170072E-3_wp,-4.6788894211193350E-3_wp,&
169171
&-9.1485044846090549E-4_wp,-4.7465342510505533E-4_wp,-1.3751400571877287E-3_wp,&
170-
&-4.0846462251094566E-4_wp,-8.1141664867494625E-4_wp,-9.5577230094779884E-3_wp]
172+
&-4.0846462251094566E-4_wp,-8.1141664867494625E-4_wp,-9.5577230094779884E-3_wp,&
173+
&-1.3816199665340021E-3_wp]
171174

172175
call get_structure(mol, "MB16-43", "09")
173176
do ii = 1, size(func)
@@ -197,7 +200,8 @@ subroutine test_d3bjatm_mb17(error)
197200
& "hf/mixed", "hf/sv", "hse06", "hsesol", "lcwpbe", "mpw1b95", "mpwlyp", &
198201
& "olyp", "opbe", "otpss", "pbe", "pbe0", "pbeh3c", "pbesol", "ptpss", &
199202
& "pw1pw", "pw6b95", "pwb6k", "pwgga", "pwpb95", "revpbe", "revpbe0", &
200-
& "revpbe38", "revssb", "rpbe", "rpw86pbe", "ssb", "tpss", "tpss0", "tpssh"]
203+
& "revpbe38", "revssb", "rpbe", "rpw86pbe", "ssb", "tpss", "tpss0", "tpssh", &
204+
& "scan", "rscan", "r2scan"]
201205
real(wp), parameter :: ref(*) = [&
202206
& -2.3886025810397844E-2_wp,-1.2511386988136818E-2_wp,-1.4044660769381583E-2_wp,&
203207
& -2.8422911196001738E-2_wp,-1.9411342505549978E-2_wp,-2.9014209453188066E-2_wp,&
@@ -216,7 +220,8 @@ subroutine test_d3bjatm_mb17(error)
216220
& -3.7212355838534522E-2_wp,-3.2852411771293132E-2_wp,-3.0614547789893518E-2_wp,&
217221
& -1.4346950270945317E-2_wp,-8.2244404039440305E-2_wp,-1.6294716345316058E-2_wp,&
218222
& -3.9038612599902538E-2_wp,-2.0567214691452097E-2_wp,-2.1558425276809661E-2_wp,&
219-
& -1.9336394869980178E-2_wp]
223+
& -1.9336394869980178E-2_wp,-3.7332351763594033E-3_wp,-5.8233053769766027E-3_wp,&
224+
& -4.8268740049936159E-3_wp]
220225

221226
call get_structure(mol, "MB16-43", "17")
222227
do ii = 1, size(func)
@@ -246,8 +251,7 @@ subroutine test_d3zeroatm_mb25(error)
246251
& "mpwlyp", "bpbe", "bhlyp", "tpssh", "pwb6k", "b1b95", "bop", "olyp", &
247252
& "opbe", "ssb", "revssb", "otpss", "b3pw91", "revpbe0", "pbe38", &
248253
& "mpw1b95", "mpwb1k", "bmk", "camb3lyp", "lcwpbe", "m05", "m052x", &
249-
& "m06l", "m06", "m062x", "m06hf", "hcth120"]
250-
254+
& "m06l", "m06", "m062x", "m06hf", "hcth120", "scan"]
251255
real(wp), parameter :: ref(*) = [&
252256
& 1.0613172079515042E-1_wp,-1.8876287896469810E-2_wp,-1.7576404430843656E-2_wp,&
253257
&-2.3748729523009868E-2_wp,-2.2303397068410617E-2_wp,-8.6007354850641034E-3_wp,&
@@ -264,7 +268,8 @@ subroutine test_d3zeroatm_mb25(error)
264268
&-8.9000499264262189E-3_wp,-8.3515334090636072E-3_wp,-1.6554343644100331E-2_wp,&
265269
&-1.0553688835175507E-2_wp,-1.1195100434896285E-2_wp,-5.8550454517077369E-3_wp,&
266270
&-1.0495107671637961E-3_wp,-4.4388399279473369E-4_wp,-1.7181987666819525E-3_wp,&
267-
&-3.6397398055820356E-4_wp,-9.0020655669676070E-4_wp,-1.2216291416317950E-2_wp]
271+
&-3.6397398055820356E-4_wp,-9.0020655669676070E-4_wp,-1.2216291416317950E-2_wp,&
272+
&-1.7275318040978318E-3_wp]
268273

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

0 commit comments

Comments
 (0)