mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-28 14:15:30 -04:00
NCAPR
This commit is contained in:
parent
0952071094
commit
5efbdff343
5 changed files with 55 additions and 12 deletions
|
|
@ -703,6 +703,7 @@ c
|
|||
xname(83)=' MN15-L Exchange Functional'
|
||||
xname(84)=' MN15 Exchange Functional'
|
||||
xname(85)=' M06-SX Exchange Functional'
|
||||
xname(87)=' NCAPR GGA Exchange Functional'
|
||||
c
|
||||
c Exchange-Correlation combination functional name defaults.
|
||||
c
|
||||
|
|
@ -785,6 +786,7 @@ c
|
|||
xcname(84)=' MN15 Method XC Functional'
|
||||
xcname(85)=' M06-SX Method XC Functional'
|
||||
xcname(86)=' r^2SCAN0 Method XC Functional'
|
||||
xcname(87)=' NCAPR Method XC Functional'
|
||||
c
|
||||
c place character XC parameters in rtdb
|
||||
c
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ c
|
|||
c r2scan0 ==> 19
|
||||
c
|
||||
integer num_dirs, ind, mlen, iline, n, itemp
|
||||
parameter (num_dirs=168)
|
||||
parameter (num_dirs=169)
|
||||
c
|
||||
character*15 dirs(num_dirs)
|
||||
character*255 test
|
||||
|
|
@ -212,7 +212,7 @@ c
|
|||
& 'xscan', 'cscan',
|
||||
& 'hcth147@tz2p',
|
||||
W 'wb97','wb97x','wb97x-d3',
|
||||
& 'xr2scan', 'cr2scan','r2scan0' /
|
||||
& 'xr2scan', 'cr2scan','r2scan0', 'ncapr' /
|
||||
c becke97-d, ssb-d
|
||||
logical disp, dumdirect
|
||||
integer ivdw
|
||||
|
|
@ -298,7 +298,8 @@ c
|
|||
& 9710,9720,9650,9660,9615,9616,
|
||||
& 1947,
|
||||
& 9410,9420,9430,
|
||||
& 9661,9662,9670,
|
||||
& 9661,9662,9670,
|
||||
& 9730,
|
||||
& 1999 ) ind
|
||||
|
||||
|
||||
|
|
@ -1817,6 +1818,17 @@ c
|
|||
nlxfac(72) = .true.
|
||||
xfac(72) = 1.0d0
|
||||
goto 10
|
||||
|
||||
|
||||
9730 xccomb(87) = .true.
|
||||
cfac(3) = 1d0
|
||||
lcfac(3) = .true.
|
||||
cfac(4) = 1d0
|
||||
nlcfac(4) = .true.
|
||||
lxfac(87) = .true.
|
||||
nlxfac(87) = .true.
|
||||
xfac(87) = 1.0d0
|
||||
goto 10
|
||||
c
|
||||
c r2SCAN metaGGA
|
||||
c
|
||||
|
|
|
|||
|
|
@ -1646,6 +1646,7 @@ c Clean scratch space
|
|||
if (nodezero) call util_flush(LuOut)
|
||||
c
|
||||
endif ! gmh
|
||||
|
||||
c
|
||||
enddo ! outer loop over roots
|
||||
c
|
||||
|
|
|
|||
|
|
@ -1855,15 +1855,32 @@ c
|
|||
if (.not. do_2nd .and..not. do_3rd) then
|
||||
call xc_xncap(tol_rho, xfac(72), rho,
|
||||
& delrho, Amat, Cmat, nq, ipol,
|
||||
& Ex, qwght, ldew, func)
|
||||
& Ex, qwght, ldew, func, ' ')
|
||||
else if (.not. do_3rd) then
|
||||
call xc_xncap_d2(tol_rho, xfac(72), rho,
|
||||
& delrho, Amat, Amat2, Cmat, Cmat2, nq, ipol,
|
||||
& Ex, qwght, ldew, func)
|
||||
& Ex, qwght, ldew, func, ' ')
|
||||
else
|
||||
call xc_xncap_d3(tol_rho, xfac(72), rho,
|
||||
& delrho, Amat, Amat2, Amat3, Cmat, Cmat2, Cmat3,
|
||||
& nq, ipol, Ex, qwght, ldew, func)
|
||||
& nq, ipol, Ex, qwght, ldew, func, ' ')
|
||||
endif
|
||||
endif
|
||||
c
|
||||
|
||||
if (abs(xfac(87)).gt.eps)then
|
||||
if (.not. do_2nd .and..not. do_3rd) then
|
||||
call xc_xncap(tol_rho, xfac(87), rho,
|
||||
& delrho, Amat, Cmat, nq, ipol,
|
||||
& Ex, qwght, ldew, func, 'r')
|
||||
else if (.not. do_3rd) then
|
||||
call xc_xncap_d2(tol_rho, xfac(87), rho,
|
||||
& delrho, Amat, Amat2, Cmat, Cmat2, nq, ipol,
|
||||
& Ex, qwght, ldew, func, 'r')
|
||||
else
|
||||
call xc_xncap_d3(tol_rho, xfac(87), rho,
|
||||
& delrho, Amat, Amat2, Amat3, Cmat, Cmat2, Cmat3,
|
||||
& nq, ipol, Ex, qwght, ldew, func, 'r')
|
||||
endif
|
||||
endif
|
||||
c
|
||||
|
|
|
|||
|
|
@ -32,19 +32,23 @@ c
|
|||
c
|
||||
#if !defined SECOND_DERIV && !defined THIRD_DERIV
|
||||
Subroutine xc_xncap(tol_rho, fac, rho, delrho,
|
||||
& Amat, Cmat, nq, ipol, Ex, qwght,ldew,func)
|
||||
& Amat, Cmat, nq, ipol, Ex, qwght,ldew,func,
|
||||
& version)
|
||||
#elif defined(SECOND_DERIV) && !defined THIRD_DERIV
|
||||
Subroutine xc_xncap_d2(tol_rho, fac, rho, delrho,
|
||||
& Amat, Amat2, Cmat, Cmat2, nq, ipol, Ex,
|
||||
& qwght,ldew,func)
|
||||
& qwght,ldew,func,
|
||||
& version)
|
||||
#else
|
||||
Subroutine xc_xncap_d3(tol_rho, fac, rho, delrho,
|
||||
& Amat, Amat2, Amat3, Cmat, Cmat2, Cmat3,
|
||||
& nq, ipol, Ex, qwght,ldew,func)
|
||||
& nq, ipol, Ex, qwght,ldew,func,
|
||||
& version)
|
||||
#endif
|
||||
c
|
||||
implicit none
|
||||
c
|
||||
c
|
||||
character*1 version
|
||||
double precision fac, Ex
|
||||
integer nq, ipol
|
||||
logical ldew
|
||||
|
|
@ -77,8 +81,7 @@ c
|
|||
double precision ckf, Ax
|
||||
double precision F43, F13, F23, F49
|
||||
c
|
||||
parameter(mu=0.2195149727645171d0, beta=0.01808569669d0)
|
||||
parameter(zeta=0.30412141859531383d0)
|
||||
parameter(mu=0.2195149727645171d0)
|
||||
|
||||
parameter (F43=4.d0/3.d0, F13=1.d0/3.d0, F23=2.0d0/3.0d0)
|
||||
parameter (F49=4d0/9d0)
|
||||
|
|
@ -105,6 +108,14 @@ c
|
|||
d2arcsinh(s) = -s/dsqrt(1d0+s*s)**3
|
||||
d3arcsinh(s) = (2d0*s*s - 1d0)/dsqrt(1d0+s*s)**5
|
||||
c
|
||||
if (version.eq.'r') then
|
||||
zeta = 0.5d0
|
||||
beta = 0.017983d0
|
||||
else
|
||||
zeta = 0.30412141859531383d0
|
||||
beta = 0.01808569669d0
|
||||
endif
|
||||
|
||||
pi = acos(-1.d0)
|
||||
ckf = (3d0*pi*pi)**F13
|
||||
Ax = -3d0/(4d0*pi)*ckf
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue