mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-27 13:45:27 -04:00
wb97-d3
This commit is contained in:
parent
9b46b25036
commit
f04cfd781d
10 changed files with 1532 additions and 24 deletions
|
|
@ -323,6 +323,7 @@ fi
|
|||
./runtests.mpi.unix procs $np dft_he2p_wb97
|
||||
./runtests.mpi.unix procs $np dft_ne2p_wb97x
|
||||
./runtests.mpi.unix procs $np dft_ar2p_wb97
|
||||
./runtests.mpi.unix procs $np dft_waterdimer_wb97d3
|
||||
#
|
||||
./runtests.mpi.unix procs $np aump2
|
||||
./runtests.mpi.unix procs $np n2_ccsd
|
||||
|
|
|
|||
59
QA/tests/dft_waterdimer_wb97d3/dft_waterdimer_wb97d3.nw
Normal file
59
QA/tests/dft_waterdimer_wb97d3/dft_waterdimer_wb97d3.nw
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
echo
|
||||
start w_dim_s22
|
||||
#S22 geometry http://www.begdb.org/index.php?action=oneMolecule&state=show&id=82
|
||||
#DOI:10.1021/ct300715s Supp. inform. Table S7
|
||||
#627.5*(152.887640305943-76.439682992521-76.4399284507)=5.04
|
||||
|
||||
geometry dimer
|
||||
O -1.551007 -0.114520 0.000000
|
||||
H -1.934259 0.762503 0.000000
|
||||
H -0.599677 0.040712 0.000000
|
||||
O 1.350625 0.111469 0.000000
|
||||
H 1.680398 -0.373741 -0.758561
|
||||
H 1.680398 -0.373741 0.758561
|
||||
end
|
||||
geometry w1@dimg_b
|
||||
O -1.551007 -0.114520 0.000000
|
||||
H -1.934259 0.762503 0.000000
|
||||
H -0.599677 0.040712 0.000000
|
||||
bqO 1.350625 0.111469 0.000000
|
||||
bqH 1.680398 -0.373741 -0.758561
|
||||
bqH 1.680398 -0.373741 0.758561
|
||||
end
|
||||
geometry w2@dimg_b
|
||||
bqO -1.551007 -0.114520 0.000000
|
||||
bqH -1.934259 0.762503 0.000000
|
||||
bqH -0.599677 0.040712 0.000000
|
||||
O 1.350625 0.111469 0.000000
|
||||
H 1.680398 -0.373741 -0.758561
|
||||
H 1.680398 -0.373741 0.758561
|
||||
end
|
||||
|
||||
basis spherical
|
||||
* library 6-311++g(3df,3pd)
|
||||
bqH library H 6-311++g(3df,3pd)
|
||||
bqO library O 6-311++g(3df,3pd)
|
||||
end
|
||||
|
||||
dft
|
||||
xc wb97x-d3
|
||||
noprint "final vectors analysis" multipole
|
||||
end
|
||||
|
||||
set geometry dimer
|
||||
|
||||
dft;vectors input atomic;end
|
||||
|
||||
task dft
|
||||
|
||||
set geometry w1@dimg_b
|
||||
|
||||
dft;vectors input atomic;end
|
||||
|
||||
task dft
|
||||
|
||||
set geometry w2@dimg_b
|
||||
|
||||
dft;vectors input atomic;end
|
||||
|
||||
task dft
|
||||
1396
QA/tests/dft_waterdimer_wb97d3/dft_waterdimer_wb97d3.out
Normal file
1396
QA/tests/dft_waterdimer_wb97d3/dft_waterdimer_wb97d3.out
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -609,6 +609,7 @@ c
|
|||
cname(75)=' HCTH147@TZ2P Correlation Functional'
|
||||
cname(76)=' wb97 Correlation Functional'
|
||||
cname(77)=' wb97x Correlation Functional'
|
||||
cname(78)=' wb97x-d3 Correlation Functional'
|
||||
c
|
||||
c Exchange functional name defaults.
|
||||
c
|
||||
|
|
@ -682,6 +683,7 @@ c
|
|||
xname(75)=' HCTH147@TZ2P Exchange Functional'
|
||||
xname(76)=' wb97 Exchange Functional'
|
||||
xname(77)=' wb97x Exchange Functional'
|
||||
xname(78)=' wb97x-d3 Exchange Functional'
|
||||
c
|
||||
c Exchange-Correlation combination functional name defaults.
|
||||
c
|
||||
|
|
@ -755,6 +757,7 @@ c
|
|||
xcname(75)=' HCTH147@TZ2P Method XC Functional'
|
||||
xcname(76)=' wb97 Method XC Functional'
|
||||
xcname(77)=' wb97x Method XC Functional'
|
||||
xcname(78)=' wb97x-d3 Method XC Functional'
|
||||
c
|
||||
c place character XC parameters in rtdb
|
||||
c
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ c hse03 ==> 9320
|
|||
c
|
||||
c wb97 ==> 9410
|
||||
c wb97x ==> 9420
|
||||
c wb97x-d3 ==> 9430
|
||||
c
|
||||
c becke86b ==> 9510
|
||||
c xperde86 ==> 9520
|
||||
|
|
@ -140,7 +141,7 @@ c
|
|||
c hcth147@tz2p ==> 1947
|
||||
c
|
||||
integer num_dirs, ind, mlen, iline, n
|
||||
parameter (num_dirs=158)
|
||||
parameter (num_dirs=159)
|
||||
c
|
||||
character*15 dirs(num_dirs)
|
||||
character*255 test
|
||||
|
|
@ -194,7 +195,7 @@ c
|
|||
& 'xncap', 'ncap', 'r2scan', 'r2scanl',
|
||||
& 'xscan', 'cscan',
|
||||
& 'hcth147@tz2p',
|
||||
W 'wb97','wb97x'/
|
||||
W 'wb97','wb97x','wb97x-d3'/
|
||||
c becke97-d, ssb-d
|
||||
logical disp, dumdirect
|
||||
integer ivdw
|
||||
|
|
@ -269,7 +270,7 @@ c
|
|||
& 9610,9620,9630,9494,9640,
|
||||
& 9710,9720,9650,9660,9615,9616,
|
||||
& 1947,
|
||||
& 9410,9420,
|
||||
& 9410,9420,9430,
|
||||
& 1999 ) ind
|
||||
call errquit('xc_inp: unimplemented directive', ind, INPUT_ERR)
|
||||
c
|
||||
|
|
@ -4086,6 +4087,35 @@ c
|
|||
c
|
||||
goto 10
|
||||
c
|
||||
c wb97x-d3
|
||||
c
|
||||
9430 xccomb(78) = .true.
|
||||
xfac(78)= 1.0d0
|
||||
lxfac(78)=.true.
|
||||
nlxfac(78)=.true.
|
||||
cfac(78) = 1.d0
|
||||
lcfac(78) = .true.
|
||||
nlcfac(78) = .true.
|
||||
xfac(1) = 1d0
|
||||
lxfac(1) = .true.
|
||||
nlxfac(1) = .true.
|
||||
c
|
||||
c set cam parameters since this is a range-separated functional
|
||||
c
|
||||
cam_omega = 0.25d0
|
||||
cam_alpha = 0.195728d0
|
||||
cam_beta = 1d0-cam_alpha
|
||||
cam_exch = .true.
|
||||
cam_srhf = .false.
|
||||
call xc_setcamparam(rtdb,cam_exch,cam_srhf,cam_omega,cam_alpha,
|
||||
& cam_beta)
|
||||
c D3
|
||||
ivdw = 3
|
||||
if (.not.rtdb_put(rtdb,'dft:ivdw', mt_int, 1, ivdw))
|
||||
& call errquit('xc_inp: rtdb_put failed vdw', 0, RTDB_ERR)
|
||||
c
|
||||
goto 10
|
||||
c
|
||||
c gill96; Gill '96 functional for exchange
|
||||
c
|
||||
2300 if (inp_a(test)) then
|
||||
|
|
|
|||
|
|
@ -11,9 +11,10 @@ c
|
|||
logical lhasautodisp,out1
|
||||
lhasautodisp = .false.
|
||||
c
|
||||
c beck97-d, ssb-d
|
||||
c beck97-d, ssb-d, s12, wb97-d3
|
||||
lhasautodisp = xccomb(37).or.xccomb(46).or.xccomb(60).or.
|
||||
& xccomb(61).or.xccomb(62).or.xccomb(63)
|
||||
& xccomb(61).or.xccomb(62).or.xccomb(63).or.
|
||||
O xccomb(78)
|
||||
if (util_module_avail("nwxc")) then
|
||||
call nwxc_getvals("nwxc_has_disp",out1)
|
||||
lhasautodisp = lhasautodisp.or.out1
|
||||
|
|
|
|||
|
|
@ -320,6 +320,11 @@ c
|
|||
dohcth=.true.
|
||||
nx=77
|
||||
nc=77
|
||||
elseif (abs(xfac(78)).gt.eps.or.abs(cfac(78)).gt.eps)then
|
||||
whichf='w9d3'
|
||||
dohcth=.true.
|
||||
nx=78
|
||||
nc=78
|
||||
elseif (abs(xfac(5)).gt.eps.or.abs(cfac(14)).gt.eps)then
|
||||
whichf='b970'
|
||||
dohcth=.true.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ c
|
|||
c variables passed to hcderiv
|
||||
c
|
||||
integer numfunc
|
||||
parameter(numfunc=20)
|
||||
parameter(numfunc=21)
|
||||
|
||||
Cfah sol -- contains the coefficients of the terms in F_xc
|
||||
Cfah convention: sol(1) = c_{x alpha, 0}, c_{x beta, 0}
|
||||
|
|
@ -50,11 +50,11 @@ Cfah below.
|
|||
integer maxpow(numfunc)
|
||||
data maxpow / 2, 2 , 2, 4, 4, 4, 4,
|
||||
, 2 , 4 , 4 , 2 , 4 , 4 , 2,
|
||||
, 4 , 4 , 4 , 4 , 4 , 4 /
|
||||
, 4 , 4 , 4 , 4 , 4 , 4 , 4/
|
||||
|
||||
data funcnam/'b970','b980','b971','hcth','hcta','h120','h147',
|
||||
, 'b97g','h407','hp14','b972','407p','b973','b97d',
|
||||
, 'n120','n12s','wb97','wb9x','h7tz','wb9d'/
|
||||
, 'n120','n12s','wb97','wb9x','h7tz','wb9d','w9d3'/
|
||||
C B97 B98 B97-1 HCTH HCTH-A
|
||||
C m max 2, 2, 4, 4,
|
||||
Cc X s,0
|
||||
|
|
@ -63,105 +63,105 @@ Cc X s,0
|
|||
, +0.109878d+01,1.09163d0, 1.09025d0, 1.1068d0, 1.08184d0,
|
||||
, +0.103161d+01,+0.827642D+00,+1.08018D0,+7.334648D-01,
|
||||
, 1.086620d+0,0d0 ,0d0 ,1.00000d0,8.42294D-01,
|
||||
, 1.09025d0 , 7.77964d-1/
|
||||
, 1.09025d0 , 7.77964d-1 ,0.804272d0/
|
||||
c C ss,0
|
||||
data (coeffs(2,n),n=1,numfunc)/
|
||||
, +0.17370d+00,-0.120163d0,+0.820011d-01,+0.222601d+00,
|
||||
, +0.136823d-01, 0.48951d0, 0.56258d0, 0.4883d0, 1.18777d0,
|
||||
, +0.282414d+01,+0.585808D+00,+0.80302D0,+5.623649D-01,
|
||||
, 0.22340d+00,1d0 ,8.33615D-01,1.000D0, 1.00D0,
|
||||
, +0.56258d0 ,1.0000d0/
|
||||
, +0.56258d0 ,1.0000d0 ,1.000000d0/
|
||||
c C ab,0
|
||||
data (coeffs(3,n),n=1,numfunc)/
|
||||
, +0.94540d+00,0.934715d0,+0.955689d+00,+0.729974d+00,
|
||||
, +0.836897d+00,0.51473d0, 0.54235d0, 0.7961d0, 0.58908d0,
|
||||
, +0.821827d-01,+0.999849D+00,+0.73604D0,+1.133830D+00,
|
||||
, +0.690410d+00,1d0 ,2.63373D+00,1.00000D0,1.d0,
|
||||
, +0.54235d0 ,1.00000d0/
|
||||
, +0.54235d0 ,1.00000d0 ,1.000000d0/
|
||||
c X s,1
|
||||
data (coeffs(4,n),n=1,numfunc)/
|
||||
, +0.50730d+00,0.400271d0,+0.573805d+00,-0.744056d+00,
|
||||
, -0.251173d+01,-0.74720d0, -0.79920d0, -0.8765d0, -0.5183d0,
|
||||
, -0.360781d+00,+0.478400D-01,-0.4117D0,+2.925270D-01,
|
||||
, -0.521270d+00,0d0 ,0d0,1.13116D+00,7.26479D-01,
|
||||
, -0.79919d0 ,6.61160d-1/
|
||||
, -0.79919d0 ,6.61160d-1 ,0.698900d0/
|
||||
c C ss,1
|
||||
data (coeffs(5,n),n=1,numfunc)/
|
||||
, +0.23487d+01,2.82332d0,+0.271681d+01,-0.338622d-01,
|
||||
, +0.268920d+00,-0.26070d0, -0.01710d0, -2.117d0, -2.4029d0,
|
||||
, +0.318843d-01,-0.691682D+00,-1.0479D0,-1.322980D+00,
|
||||
, -1.562080d+00,-5.53170D0 ,3.24128D0,-2.55352D0,-4.33879D0,
|
||||
, +0.01714d0 ,-6.90539d0/
|
||||
, +0.01714d0 ,-6.90539d0 ,-4.868902d0/
|
||||
c C ab,1
|
||||
data (coeffs(6,n),n=1,numfunc)/
|
||||
, +0.74710d+00,1.14105d0,+0.788552d+00,+0.335287d+01,
|
||||
, +0.172051d+01,6.92980d0, 7.01460d0, 5.7060d0, 4.4237d0,
|
||||
, +0.456466d+01,+0.140626D+01,+3.0270D0,-2.811967D+00,
|
||||
, +6.302700d0,3.24511D+00 ,-1.05450D0,3.99051D0,2.37031D0,
|
||||
, +7.01464d0 ,1.79413d0/
|
||||
, +7.01464d0 ,1.79413d0 ,2.433266d0/
|
||||
c X s,2
|
||||
data (coeffs(7,n),n=1,numfunc)/
|
||||
, +0.74810d+00,0.832857d0,+0.660975d+00,+0.559920d+01,
|
||||
, +0.156233d-01,5.07830d0, 5.57210d0, 4.2639d0, 3.4256d0,
|
||||
, +0.351994d+01,+0.176125D+01,+2.4368D0,+3.338789D+00,
|
||||
, +3.254290d+00,0d0 ,0d0,-2.74915D0, 1.04760D0,
|
||||
, +5.57212d0 ,5.74541d-1/
|
||||
, +5.57212d0 ,5.74541d-1 ,0.508940d0/
|
||||
c C ss,2
|
||||
data (coeffs(8,n),n=1,numfunc)/
|
||||
, -0.24868d+01,-2.59412d0,-0.287103d+01,-0.125170d-01,
|
||||
, -0.550769d+00,0.43290d0, -1.30640d0, 2.3235d0, 5.6174d0,
|
||||
, -0.178512d+01,+0.394796D+00,+4.9807D0,+6.359191D+00,
|
||||
, +1.942930d+0,3.07958D+01,-1.06407D+01,1.18926D01,1.82308D01,
|
||||
, -1.3063d0 ,3.13343d01/
|
||||
, -1.3063d0 ,3.13343d01 ,21.29572d0/
|
||||
c C ab,2
|
||||
data (coeffs(9,n),n=1,numfunc)/
|
||||
, -0.45961d+01,-5.33398d0,-0.547869d+01,-0.115430d+02,
|
||||
, -0.278498d+01,-24.7070d0, -28.3820d0,-14.9820d0,-19.222d0,
|
||||
, -0.135529d+02,-0.744060D+01,-10.075D0,+7.431302D+00,
|
||||
, -14.97120d+00,-2.52893D01,-7.29853D-01,-1.70066D1,-1.13995D1,
|
||||
, -28.382d0 ,-1.20477d01/
|
||||
, -28.382d0 ,-1.20477d01,-15.446008d0/
|
||||
c X s,3
|
||||
data (coeffs(10,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,-0.678549d+01,
|
||||
, 0.00000000d0,-4.10750d0, -5.86760d0 ,0d0 , -2.6290d0,
|
||||
, -0.495944d+01,0.d0000000000,+1.3890D0,-1.051158D+01,
|
||||
, 0.0000000d0 ,0d0 ,0d0,1.20900D01,-5.70635D0,
|
||||
, -5.8676d0 ,-5.25671d0/
|
||||
, -5.8676d0 ,-5.25671d0 ,-3.744903d0/
|
||||
c C ss,3
|
||||
data (coeffs(11,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,-0.802496d+00,
|
||||
, +0.103947d+01,-1.99250d0, 1.05750d0,0d0 , -9.1792d0,
|
||||
, +0.239795d+01,0.d0000000000,-12.890D0,-7.464002D+00,
|
||||
, 0.d0,-5.64196D+01,-1.60471D+01,-2.69452D01,-3.17430D01,
|
||||
, +1.0575d0 ,-5.10533D01/
|
||||
, +1.0575d0 ,-5.10533D01 ,-36.020866d0/
|
||||
c C ab,3
|
||||
data (coeffs(12,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,+0.808564d+01,
|
||||
, -0.457504d+01, 23.1100d0, 35.0330d0,0d0 , 42.572d0,
|
||||
, +0.133820d+02,0.000000d0,+20.611D0,-1.969342D+00,
|
||||
, 0.0000000d0 ,1.44407D+01, 4.94024D0,1.07292D0,6.58405D0,
|
||||
, +35.033d0 ,1.40847d01/
|
||||
, +35.033d0 ,1.40847d01 ,17.644390d0/
|
||||
c X s,4
|
||||
data (coeffs(13,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,+0.449357d+01,
|
||||
, 0.00000000d0, 1.17170d0, 3.04540d0, 0d0 , 2.2886d0,
|
||||
, +0.241165d+01,0.000000d0,-1.3529D0,+1.060907D+01,
|
||||
, 0.0000000d0 ,0d0 ,0d0, -5.71642D0,1.32794D01,
|
||||
, +3.0454d0 ,1.16386d01/
|
||||
, +3.0454d0 ,1.16386d01,10.060790d0/
|
||||
c C ss,4
|
||||
data (coeffs(14,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,+0.155396d+01,
|
||||
, 0.00000000d0, 2.48530d0, 0.88540d0, 0d0 , 6.2480d0,
|
||||
, -0.876909d+00,0.000000d0,9.6446D0,+1.827082D+00,
|
||||
, 0.0000000d0,3.21250D+01,2.51047D+01,1.70927D01,1.72901D01,
|
||||
, +0.8854d0 ,2.64423d01/
|
||||
, +0.8854d0 ,2.64423d01 ,19.177018d0/
|
||||
c C ab,4
|
||||
data (coeffs(15,n),n=1,numfunc)/
|
||||
, 0.0000000d0,0.0d000000, 0.00000000d0,-0.447857d+01,
|
||||
, 0.00000000d0,-11.3230d0, -20.4280d0, 0d0, -42.005d0,
|
||||
, -0.317493d+01,0.000000d0,-29.418D0,-1.174423D+01,
|
||||
, 0.0000000d0,1.96870D+01,-7.31760D0,8.88211D0,-3.78132D0,
|
||||
, -20.428d0 ,-8.50809d0/
|
||||
, -20.428d0 ,-8.50809d0 ,-8.879494d0/
|
||||
c
|
||||
c X +0.1! coeffs for HF exchange
|
||||
c
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ c
|
|||
+ xfac(72) + xfac(73) + xfac(74) +
|
||||
+ xfac(75) + cfac(75) +
|
||||
w xfac(76) + xfac(77) + cfac(76) + cfac(77) +
|
||||
w xfac(78) + cfac(78) +
|
||||
L lxdm +
|
||||
cc AJL/Begin/FDE
|
||||
+ xfac_fde(3) + xfac_fde(4) + xfac_fde(5) + xfac_fde(6) +
|
||||
|
|
@ -198,6 +199,7 @@ cb973 . xfac(22).ne.0d0.or.
|
|||
cwb97 should have 2nds
|
||||
. xfac(76).ne.0d0.or.
|
||||
. xfac(77).ne.0d0.or.
|
||||
. xfac(78).ne.0d0.or.
|
||||
c
|
||||
chcth . cfac(13).ne.0d0.or.
|
||||
cCbecke97 . cfac(14).ne.0d0.or.
|
||||
|
|
@ -237,6 +239,7 @@ chp414 . cfac(21).ne.0d0.or.
|
|||
cwb97 should have 2nds
|
||||
. cfac(76).ne.0d0.or.
|
||||
. cfac(77).ne.0d0.or.
|
||||
. cfac(78).ne.0d0.or.
|
||||
. cfac(36).ne.0d0)
|
||||
if (util_module_avail("nwxc")) then
|
||||
call nwxc_getvals("nwxc_has_2nd",out1)
|
||||
|
|
@ -355,6 +358,7 @@ c
|
|||
. xfac(50).ne.0d0.or.
|
||||
. xfac(76).ne.0d0.or.
|
||||
. xfac(77).ne.0d0.or.
|
||||
. xfac(78).ne.0d0.or.
|
||||
. xfac(51).ne.0d0)
|
||||
if (.not.rtdb_get(rtdb, 'dft:cam_exch', mt_log, 1, cam_exch))
|
||||
& cam_exch=.false.
|
||||
|
|
@ -512,6 +516,7 @@ c
|
|||
. xfac(75).ne.0d0.or. ! hcth147@tz2p
|
||||
. xfac(76).ne.0d0.or. ! wb97
|
||||
. xfac(77).ne.0d0.or. ! wb97x
|
||||
. xfac(78).ne.0d0.or. ! wb97x-d3
|
||||
c
|
||||
. cfac(5).ne.0d0.or. ! PW91
|
||||
. cfac(13).ne.0d0.or. ! HCTH
|
||||
|
|
@ -562,7 +567,8 @@ c
|
|||
. cfac(74).ne.0d0.or. ! r^2SCAN-L
|
||||
. cfac(75).ne.0d0.or. ! hcth147@tz2p
|
||||
. cfac(76).ne.0d0.or. ! wb97
|
||||
. cfac(77).ne.0d0 ! wb97x
|
||||
. cfac(77).ne.0d0.or. ! wb97x
|
||||
. cfac(78).ne.0d0 ! wb97x-d3
|
||||
. )
|
||||
c
|
||||
return
|
||||
|
|
|
|||
|
|
@ -792,6 +792,12 @@ c m06hf
|
|||
else if (xccomb(34)) then
|
||||
scalesr6 = 1.446d0
|
||||
scales8 = 0.000d0
|
||||
c wb97-d3
|
||||
else if (xccomb(78)) then
|
||||
scalesr6 = 1.281d0
|
||||
scalesr8 = 1.094d0
|
||||
scales6 = 1d0
|
||||
scales8 = 1d0
|
||||
c hf
|
||||
else if (xfac(1).eq.1d0) then
|
||||
scalesr6 = 1.158d0
|
||||
|
|
@ -1004,6 +1010,7 @@ c
|
|||
xc_neff=0.8d0
|
||||
return
|
||||
endif
|
||||
nv=0
|
||||
if(z.le.2) nv=z
|
||||
if(z.le.10) nv=z-2
|
||||
if(z.gt.10) stop 'neff stop '
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue