Add first_spo and last_spo to the SplineAdoptorBase to be able to distribute
einspline set.
BsplineSet::set_spline hides the adoptor-specific set_spline implementation:
void set_spline(CT* spline_r, CT* spline_i, int twist, int ispline, int level)
{
SplineAdoptor::set_spline(spline_r,spline_i,twist,ispline,level);
}
* twist is not currently used but reserved for optimizations (twist grouping, eliminating complex algebra etc)
* ispline index of this spline function
* level refinement level
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5739 e5b18d87-469d-4833-9cc0-8cdfa06e9491
Limited testing on a workstation shows that initialize_spline_pio is the fastest.
Both pio method can handle the case when Norb<MPI tasks
Some nodes will be ideal during the first the step 1 & 2.
initialize_spline_pio
1 parallel read
2 fft/spline per node
3 send splines to the root & root pack the data to the multi spline
4 bcast the complete table
initialize_spline_pio_bcast
1 parallel read
2 fft/spline per node: some nodes will be ideal if N<MPI
3 bcast bspline from the reader node
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5727 e5b18d87-469d-4833-9cc0-8cdfa06e9491
These adoptors are used
* SplineR2RAdoptor : real wavefunction for single kpoint calculations
* SplineC2RPackedAdoptor : real wavefunction for kpoint folding
* SplineC2CPackedAdoptor : complex wavefunction
* SplineOpenAdoptor : dual-grid real wavefunction for molecules
* SplineMixedAdoptor : dual-grid real wavefunction for slabs and wires
SplineMixedAdoptor can be used with SplineC2XAdoptor but not yet enabled
and therefore truncations are not done with complex wavefunctions and
real wavefunctions with kpoint folding.
Note that only real spline is used with these orbitals.
Two readers are
* SplineAdoptorReader<SA> for SA=SplineR2RAdoptor, SplineC2RPackedAdoptor, SplineC2CPackedAdoptor
* SplineMixedAdoptorReader<SA> for SA= SplineOpenAdoptor, SplineMixedAdoptor
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5713 e5b18d87-469d-4833-9cc0-8cdfa06e9491
command-line options, preprocess xml to limit certain operations, e.g. not reading
density when MPC is not used, and store the persistent data during a process.
The static data is per MPI task.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5710 e5b18d87-469d-4833-9cc0-8cdfa06e9491
These three attributes will control how to use the truncated orbitals. With <determinantset/>
* precision="float" : unlike bulk orbitals, double can be used
* truncate="yes" : truncate orbitals based on the ionic positions, buffer is addded
* buffer="2.0" : buffer layer for the dense orbitals
Note:
Use only for the molecules. Changes with mixed BConds are not committed yet.
The truncated orbitals with k-point foldings are not implemented and will use the full orbitals.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5701 e5b18d87-469d-4833-9cc0-8cdfa06e9491
* SplineAdoptorReader handles general calculations for R2R, C2R and C2C
** C2R and C2C use two double instead of complex
* SplineMixedAdoptorReader for truncate="yes" with real wavefunction
** SplineMixedAdoptor for slabs and wires (not fully tested)
** SplineOpenAdoptor for molecules (fully tested)
Move around SplineAdoptor classes.
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5695 e5b18d87-469d-4833-9cc0-8cdfa06e9491
twist-dependent gvectors after checking with wfconvert for ab init.
Broadcast all the data associated with SortBands.
Remove protected member declaration to be able to use BsplineReaderBase (We never
claimed to be pure OO developers).
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5693 e5b18d87-469d-4833-9cc0-8cdfa06e9491
* SplineOpenAdoptor : molecules, truncation-enabled
* SplineR2RAdoptor : solid states without k-point folding (tilematrix=I)
* SplineC2XAdoptor : generic complex wavefunctions with k-point folding for both real and complex builds
git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5691 e5b18d87-469d-4833-9cc0-8cdfa06e9491