XC functional refactor#778
Conversation
by a single keyword xc_func
not finished yet, but working
class xc_func by two ID's identifying the type of
exchange and correlation functional
which is consistent with LIBXC
LDA functionals (using or not using libxc)
1. add PWLDA functional 2. modify some parameters in pbex and pbec 3. add interface gcxc_libxc
1. add xc_funcs.h for compiling without libxc 2. removed some no longer used subroutines
into 5 separate files
1. remove input variable vxc_in_h since it is equivalent to setting dft_functional = "none" 2. switch back to v_xc_libxc since it is faster to calculate vxc on entire grid, not loop over points 3. move v_xc, v_xc_libxc and v_xc_meta to xc_functional_vxc.cpp
instead of gcxc
and add comments
1. replace id numbers by LIBXC keywords 2. modify v_xc_meta and tau_xc, so that all mGGA in LIBXC can be used also fixed bugs in mGGA realization
compiling without USE_LIBXC
e52d7d4 to
37af449
Compare
to check if xc functional from input and pp is consistent
|
Recently, the TDDFT branch also made a lot of changes based on the knowledge that we know daye, xinglinag, and tianqi are working on the module_base. Unexepectly, this commit involves changes of many files. Therefore, we need to be careful in merging TDDFT branch and the develop branch. |
I think if the results can better match qe, maybe we should change the results. However, as mentioned before, some parameters in this code was chosen to have better convergence for some special systems. Maybe we should add those systems into integreated tests. |
Most of the changes in this pull request involves moving subroutines into different files, and the interface to this module is still v_xc which has not been modified. Hopefully there won't be too many conflicts. |
by nrxx (input variable)
2. remove some unnecessary public: in header
mohanchen
left a comment
There was a problem hiding this comment.
be careful when merging with the TDDFT branch, 'be careful' means test more
I have done several things in this refactor :
NOTE: as a result of this modification, the numbers produced in integrated tests are now slightly different from the reference value, are we considering changing the results?