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
new subroutine "get_sticks" can be used to initialize and retrieve the sticks for a given input cut-off.
get_sticks can be called in any order (not necessarily starting from the smaller cut-off)
but performance may vary depending on the order.
- NOTE: this is still a transition commit. Further re-factoring to the FFT library is required to
make it more flexible and dynamic, i.e. eliminate pstickset all-in-one FFT setup routine.
Once the re-factoring will be over, the initialization of a single FFT object will feature:
a) call subroutine to set basic grid informations and allocation
fft_type_allocate
b) call subroutine to define if the FFT is going to be performed in parallel or serial (even in parallel run)
temporarily represented by the new get_sticks subroutine
c) call subroutine to "activate" the fft_types object
temporarily represented by fft_type_set
FFT objects may then be created (almost) freely and (almost) independently from the other FFT objects,
behind the scene, we need to keep coherence between sticks map and sticks owner, in order to avoid grid data remapping
(this may change in future, for specific needs).
In other words the above sequence could be called to initialize a new fft descriptor anywhere at any time,
but a coherence will be kept with previous initializations. A keyword (not yet implemented) could be
used to unbound the new descriptors from the old one, then you need to know what you are doing...
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12721 c92efa57-630b-4861-b058-cf58834340f0
the global list of k-points, used for k-points parallelization, moved to a
single subroutine. Most of those pieces of code were never actually used
(k-point parallelization is not implemented in several of the utilities)
but just blindly copied from the code performing I/O of wavefunctions.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12720 c92efa57-630b-4861-b058-cf58834340f0
(it was acting only on descriptor variables, noneed to keep it into module)
- name change: all function/variables named *_dlay_* renamed *_type_* for consistency
- IMPORTANT: fft_type_allocate merged with real space grid initializaiton
some other grid functions removed/merged with fft types.
Since some initialization has been moved elseware there could be some SIDE EFFECT
- In practice, now grid dimensions (nr1, nr2, nr3) comes with fft variable definition
and variable allocation.
NEXT: review of the initialization/setting of the fft parallelization
- real space grid initialization subroutines moved to fft_types module
(it was acting only on descriptor variables, no need to keep it in Modules)
- name change: all function/variables named *_dlay_* renamed *_type_* for consistency
- IMPORTANT: fft_type_allocate merged with real space grid initializaiton
some other grid functions removed/merged with fft types.
Since some initialization has been moved elseware there could be some SIDE EFFECT
- In practice, now grid dimensions (nr1, nr2, nr3) comes with fft variable definition
and variable allocation.
NEXT: review of the initialization/setting of the fft parallelization
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12703 c92efa57-630b-4861-b058-cf58834340f0
set prior to calls fft_dlay_allocate, fft_dlay_set, fft_dlay_scalar.
in these subsequent calls grid dimensions are removed from input and taken from the grid descriptor
that is provided anyway.
-stick_set.f90 and fft_custom.f90 modified accordingly.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12572 c92efa57-630b-4861-b058-cf58834340f0
good idea to call "h_psi" a routine that does something related to but
different from H\psi. Corrected a few grossly wrong comments.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12440 c92efa57-630b-4861-b058-cf58834340f0
prevent trouble with OS-X. May or may not work (it won't unless configure
is updated: please somebody with v.2.63 of autoconf do it), may turn out to
be obsolete anyway.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12364 c92efa57-630b-4861-b058-cf58834340f0
moment to get rid of flib/, whose usefulness is far from obvious. The content
of flib/ is now in Modules/. Many makefiles updated and little more.
Packages using QE routines should just remove links to flib/flib.a.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12072 c92efa57-630b-4861-b058-cf58834340f0