Merge pull request #712 from dmejiar/libxc

Changes for LibXC 4.x
This commit is contained in:
Edoardo Aprà 2022-12-20 09:03:55 -08:00 committed by GitHub
commit ffddacb3de
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 18 deletions

View file

@ -159,9 +159,9 @@
fac = libxc_facts(ifunc)
call xc_f03_func_init(xcfunc,libxc_funcs(ifunc),polarized)
#if XC_MAJOR_VERSION > 4
call xc_f03_func_set_dens_threshold(xcfunc, tol_rho)
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho**2)
#if XC_MAJOR_VERSION > 4
call xc_f03_func_set_sigma_threshold(xcfunc, tol_rho)
call xc_f03_func_set_zeta_threshold(xcfunc, 1d-10)
#endif
select case(libxc_family(ifunc))
@ -178,7 +178,9 @@
call xc_f03_lda_exc_vxc_fxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho))
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
#endif
else
#if XC_MAJOR_VERSION > 4
@ -186,7 +188,10 @@
$ dbl_mb(kexc),dbl_mb(kvrho),dbl_mb(kv2rho2),
$ dbl_mb(kv3rho3))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_lda_exc_vxc(xcfunc,nqs,dbl_mb(krho),
$ dbl_mb(kexc),dbl_mb(kvrho))
call xc_f03_lda_fxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv2rho2))
call xc_f03_lda_kxc(xcfunc,nqs,dbl_mb(krho),dbl_mb(kv3rho3))
#endif
endif
@ -210,7 +215,14 @@
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_gga_exc_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
#endif
else
#if XC_MAJOR_VERSION > 4
@ -221,7 +233,18 @@
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_gga_exc_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kexc),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
call xc_f03_gga_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#endif
endif
else
@ -236,7 +259,13 @@
$ dbl_mb(kvrho),dbl_mb(kvsigma),dbl_mb(kv2rho2),
$ dbl_mb(kv2rhosig),dbl_mb(kv2sig2))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_gga_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
#endif
else
#if XC_MAJOR_VERSION > 4
@ -247,7 +276,17 @@
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#else
call errquit(' libxc interface incomplete',0,0)
call xc_f03_gga_vxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kvrho),dbl_mb(kvsigma))
call xc_f03_gga_fxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv2rho2),dbl_mb(kv2rhosig),
$ dbl_mb(kv2sig2))
call xc_f03_gga_kxc(xcfunc,nqs,
$ dbl_mb(krho),dbl_mb(ksigma),
$ dbl_mb(kv3rho3),dbl_mb(kv3rho2sig),
$ dbl_mb(kv3rhosig2),dbl_mb(kv3sig3))
#endif
endif
call dfill(nq,0d0,dbl_mb(kexc),1)

View file

@ -73,11 +73,7 @@
subroutine nwchem_libxc_print
use,intrinsic :: iso_c_binding
#ifdef USE_LIBXC
use xc_f03_lib_m, only: xc_f03_version_string,
#if XC_MAJOR_VERSION > 4
$ xc_f03_reference,
#endif
$ xc_f03_functional_get_name
use xc_f03_lib_m, only: xc_f03_functional_get_name
#endif
implicit none
@ -111,11 +107,7 @@
subroutine nwchem_libxc_print_header
use,intrinsic :: iso_c_binding
#ifdef USE_LIBXC
use xc_f03_lib_m, only: xc_f03_version_string,
#if XC_MAJOR_VERSION > 4
$ xc_f03_reference,
#endif
$ xc_f03_functional_get_name
use xc_f03_lib_m, only: xc_f03_version_string
#endif
implicit none