Skip to content

Commit 1692853

Browse files
authored
Add damping parameters for PBEsol, AM05, MN12sx (#132)
1 parent be0a98b commit 1692853

4 files changed

Lines changed: 38 additions & 5 deletions

File tree

.github/workflows/fortran-build.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,17 +69,23 @@ jobs:
6969
--prefix=$PWD/_dist
7070
--libdir=lib
7171
--warnlevel=0
72-
-Db_coverage=true
72+
-Db_coverage=${{ env.COVERAGE }}
7373
-Dlapack=netlib
7474
-Dpython=true
7575
-Dapi_v2=true
76+
env:
77+
COVERAGE: ${{ contains(matrix.os, 'ubuntu') && 'true' || 'false' }}
7678

7779
- name: Build library
7880
run: meson compile -C ${{ env.M_BUILD_DIR }}
7981

8082
- name: Run unit tests
8183
run: |
8284
meson test -C ${{ env.M_BUILD_DIR }} --print-errorlogs --no-rebuild --num-processes 2 -t 2
85+
86+
- name: Create coverage report
87+
if: contains(matrix.os, 'ubuntu')
88+
run: |
8389
ninja -C ${{ env.M_BUILD_DIR }} coverage
8490
8591
- name: Install project
@@ -155,7 +161,7 @@ jobs:
155161
matrix:
156162
os: [ubuntu-latest, macos-latest]
157163
gcc_v: [9]
158-
python_v: ['3.6', '3.7', '3.8']
164+
python_v: ['3.7', '3.8', '3.9']
159165

160166
env:
161167
FC: gfortran

assets/parameters.toml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ d4.bj-eeq-two = { s6=1.0, s9=0.0, alp=16.0, damping="bj", mbd="none" }
66
d4.bj-eeq-atm = { s6=1.0, s9=1.0, alp=16.0, damping="bj", mbd="approx-atm" }
77
d4.bj-eeq-mbd = { s6=1.0, s9=1.0, alp=16.0, damping="bj", mbd="rpa-like" }
88

9+
[parameter.am05]
10+
reference.doi = ["10.1103/PhysRevB.72.085108", "10.1063/1.2835596"]
11+
d4.bj-eeq-atm = { s8=1.71885838, a1=0.47901431, a2=5.96771581 }
12+
913
[parameter.b1b95]
1014
reference.doi = ["10.1063/1.470829"]
1115
d4.bj-eeq-atm = { s8=1.27701162, a1=0.40554715, a2=4.63323074, doi="10.1063/1.5090222" }
@@ -175,6 +179,10 @@ reference.doi = ["10.1063/1.2370993"]
175179
d4.bj-eeq-atm = { s8=0.59493760, a1=0.71422359, a2=6.35314182, doi="10.1063/1.5090222" }
176180
d4.bj-eeq-mbd = { s8=0.40077779, a1=0.69611405, a2=6.29092087, doi="10.1063/1.5090222" }
177181

182+
[parameter.mn12sx]
183+
reference.doi = ["10.1039/C2CP42576A"]
184+
d4.bj-eeq-atm = { s8=0.85964873, a1=0.62662681, a2=5.62088906 }
185+
178186
[parameter.mpw1b95]
179187
reference.doi = ["10.1021/jp048147q"]
180188
d4.bj-eeq-atm = { s8=0.50093024, a1=0.41585097, a2=4.99154869, doi="10.1063/1.5090222" }
@@ -235,6 +243,10 @@ reference.doi = ["10.1103/PhysRevLett.77.3865"]
235243
d4.bj-eeq-atm = { s8=0.95948085, a1=0.38574991, a2=4.80688534, doi="10.1063/1.5090222" }
236244
d4.bj-eeq-mbd = { s8=0.99924614, a1=0.38142528, a2=4.81839284, doi="10.1063/1.5090222" }
237245

246+
[parameter.pbesol]
247+
reference.doi = ["10.1063/1.3691197"]
248+
d4.bj-eeq-atm = { s8=1.71885698, a1=0.47901421, a2=5.96771589 }
249+
238250
[parameter.pw1pw]
239251
d4.bj-eeq-atm = { s8=0.96850170, a1=0.42427511, a2=5.02060636, doi="10.1063/1.5090222" }
240252
d4.bj-eeq-mbd = { s8=1.09759050, a1=0.42759830, a2=5.04559572, doi="10.1063/1.5090222" }

src/dftd4/param.f90

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ module dftd4_param
5050
& p_m05, p_m052x, p_m08hx, p_lcwhpbe, p_mn12l, p_tauhcthhyb, &
5151
& p_sogga11x, p_n12sx, p_mn12sx, p_mn15, p_glyp, p_bop, &
5252
& p_mpw1b95, p_revpbe0dh, p_revtpss0, p_revdsdpbep86, p_revdsdpbe, &
53-
& p_revdsdblyp, p_revdodpbep86
53+
& p_revdsdblyp, p_revdodpbep86, p_am05
5454
end enum
5555
integer, parameter :: df_enum = kind(p_invalid)
5656

@@ -280,6 +280,10 @@ subroutine get_d4eeq_bjatm_parameter(dfnum, param, s9)
280280
param = dftd_param ( & ! (SAW190103)
281281
& s6=1.0000_wp, s8=0.59493760_wp, a1=0.71422359_wp, a2=6.35314182_wp )
282282
! Fitset: MD= 0.08395 MAD= 0.24888 RMSD= 0.34879
283+
case(p_mn12sx)
284+
param = dftd_param ( & ! (SAW211021)
285+
& s6=1.0000_wp, s8=0.85964873_wp, a1=0.62662681_wp, a2=5.62088906_wp )
286+
! Fitset: MD= 0.16131 MAD= 0.34142 RMSD= 0.47113
283287
case(p_mpw1b95)
284288
param = dftd_param ( & ! (SAW190107)
285289
& s6=1.0000_wp, s8=0.50093024_wp, a1=0.41585097_wp, a2=4.99154869_wp )
@@ -336,6 +340,14 @@ subroutine get_d4eeq_bjatm_parameter(dfnum, param, s9)
336340
param = dftd_param ( & ! (SAW190103)
337341
& s6=1.0000_wp, s8=0.95948085_wp, a1=0.38574991_wp, a2=4.80688534_wp )
338342
! Fitset: MD= -0.20544 MAD= 0.33635 RMSD= 0.51168
343+
case(p_pbesol)
344+
param = dftd_param ( & ! (SAW211021)
345+
& s6=1.0000_wp, s8=1.71885698_wp, a1=0.47901421_wp, a2=5.96771589_wp )
346+
! Fitset: MD= -0.28899 MAD= 0.52215 RMSD= 0.93584
347+
case(p_am05)
348+
param = dftd_param ( & ! (SAW211021)
349+
& s6=1.0000_wp, s8=1.71885838_wp, a1=0.47901431_wp, a2=5.96771581_wp )
350+
! Fitset: MD= -0.28899 MAD= 0.52215 RMSD= 0.93584
339351
case(p_pw1pw)
340352
param = dftd_param ( & ! (SAW190103)
341353
& s6=1.0000_wp, s8=0.96850170_wp, a1=0.42427511_wp, a2=5.02060636_wp )
@@ -772,6 +784,8 @@ pure function get_functional_id(df) result(num)
772784
num = p_b97m
773785
case('wb97m', 'ωb97m', 'omegab97m')
774786
num = p_wb97m
787+
case('am05')
788+
num = p_am05
775789
end select
776790
end function get_functional_id
777791

test/unit/test_param.f90

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ subroutine test_rational_damping(error)
9595
& 'dodpbep86', 'dodsvwn', 'pbe02', 'pbe0dh', 'dftb(3ob)', 'dftb(mio)', &
9696
& 'dftb(pbc)', 'dftb(matsci)', 'dftb(ob2)', 'b1b95', 'glyp', 'revpbe0dh', &
9797
& 'revtpss0', 'revdsd-pbep86', 'revdsd-pbe', 'revdsd-blyp', &
98-
& 'revdod-pbep86', 'b97m', 'wb97m']
98+
& 'revdod-pbep86', 'b97m', 'wb97m', 'pbesol', 'am05', 'mn12sx']
9999
real(wp), parameter :: ref(*) = [&
100100
&-2.82477943738524E-1_wp,-1.83931932418458E-1_wp,-1.67883732655799E-1_wp, &
101101
&-1.19260344932822E-1_wp,-1.73553644083274E-1_wp,-4.64187011491173E-1_wp, &
@@ -125,7 +125,8 @@ subroutine test_rational_damping(error)
125125
&-4.28867617727652E-2_wp,-1.03264577526582E-1_wp,-2.71073701507995E-1_wp, &
126126
&-1.02702213711187E-1_wp,-8.21356035564771E-2_wp,-5.65853022691401E-2_wp, &
127127
&-8.56296238144821E-2_wp,-8.91479952796072E-2_wp,-6.13524150208560E-2_wp, &
128-
&-1.24018193150396E-1_wp,-1.05459213596423E-1_wp]
128+
&-1.24018193150396E-1_wp,-1.05459213596423E-1_wp,-3.62056545113500E-2_wp, &
129+
&-3.62056561428035E-2_wp,-2.40058303330640E-2_wp]
129130
class(damping_param), allocatable :: param
130131
type(structure_type) :: mol
131132
integer :: ii

0 commit comments

Comments
 (0)