We implemented the new vdW-DF type functionals vdW-DF3-opt1, vdW-DF3-opt2, and
vdW-DF-C6. For purposes of non-local functional implementation and evaluation,
we also grouped similar implementations into ranges for the "inlc" variable. To
this end, we have reserved inlc=1 to inlc=25 for vdW-DF development and we
moved rVV10 to inlc=26. This allows for a cleaner code when parsing through the
various non-local functionals. In addition, we have removed all instances of
"inlc" and "get_inlc" in several source files where they are no longer needed.
This work was performed by T. Thonhauser and is supported by NSF Grant No.
1712425.
In this commit, the entire Quantum Espresso environment is updated so
that "make all" succeeds and produces functional codes. The resulting
codes were tested with the test-suite and all related tests passed. In
addition, I did some more extensive testing with van der Waals systems,
using the option "verbosity = 'high'" so that the non-local corr. energy
is written out explicitly; in all cases, results were identical to
qe-6.4.1 (also tested in parallel).
Overall, I updated 21 Fortran source files, mostly related to the
handling of the kernel file name(s). Modules/xc_rVV10.f90 saw more
substantial changes and now also computes the kernel on the fly. The
two routines PW/src/generate_rVV10_kernel_table.f90 and
PW/src/generate_vdW_kernel_table.f90 are now removed.
In addition, I updated the developer manual and the PW user guide. I
edited two Makefiles and ran "make depend", resulting in 6 changed
make.depend files. I updated 5 scripts and one README file, mostly
related to examples.
Finally, some of the reference files in the test suite and in some
examples had a rather old format and a "diff" after running those cases
shows unnecessarily many differences. I thus created new reference data
for the vdW cases in the test suite (running "make create-reference-pw")
and I updated the PHonon/examples/example16 and
PW/examples/vdwDF_example references (23 files updated, 11 files
deleted, and 6 files added; the file and directory structure of the
delta-scf calculations needed some more substantial updating). I also
updated PP/examples/ACF_example/reference_vdw-df-cx/atoms.out.
At this point I will do some final testing and cleaning-up of the code.
The next commit fill be the final commit.
This requires two important changes:
1. that rvv10 can take b_param as input, as it uses as different value when combined with scan
2. that v_xc_meta does not reset the XC potential and energy to zero, but adds on top of the input potential. This allows calling v_xc first and v_xc_meta afterwards
The new functional can be used with the shortcut name rvv10-scan aka (1,4,13,4,3,5) aka SLA+PW+RW86+PBC+VV10+SCAN
NOTA BENE: the indices of the array containing the gradient for vdW-DF and
rVV10 functionals have been reverted: now the index of components is the first,
the index of grid points is the last last. Not sure this is the best choice
but it is the choice done (almost) everywhere else in QE
three types of calls are possibles : 'Rho', 'Wave', 'tgWave'
In order to enable an fft-type for a given grid the corresponding clock_labels must be set.
One gives a name to desc%rho_clock_lable for 'Rho' type fft and a name to
desc%wave_clock_lable for 'Wave' and 'tgWave' types. Whether tg is
possible depends of the already defined value of desc%have_task_groups variable (mispell to be corrected soon).
definining
dffts%rho_clock_label='ffts', dffts%wave_clock_label='fftw',
dfftp%rho_clock_label='fft', dfftt%rho_clock_label='fftc' and
dfftt%wave_clock_label='fftcw'
and changing
'Dense'->'Rho', 'Smooth'->'Rho', 'Custom'->'Rho', 'CustomWave'->'Wave'
the same clock names and the same overall behavior as with the old interface is obtained.
to compute many FFTs at the same time, particularly usefull for EXX
but could be usefule for many linear response code as well
(for the time being implemented only for DFTI and internal FFTW,
should be trivial to extend other drivers)
- more clean-ups
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12815 c92efa57-630b-4861-b058-cf58834340f0
table can be generated, energy&potential and stress added
to the main drivers
- funct.f90 modified to accomodate the rVV10 and to clean
up new addition for VDW-DF3 and VDW-DF4 (new GGA-NL combination,
not new NL functionals)
- nspin=1 case added for NL functionals, both for vDW-DF and rVV10
*still to test*
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10591 c92efa57-630b-4861-b058-cf58834340f0