18 #include <spline/einspline_engine.hpp> 30 FFTplan = fftw_plan_dft_3d(nx, ny, nz, reinterpret_cast<fftw_complex*>(
FFTbox.
data()),
31 reinterpret_cast<fftw_complex*>(
FFTbox.
data()), +1, FFTW_ESTIMATE);
46 : mesh_size_(mesh_size), isComplex_(isComplex)
helper functions for EinsplineSetBuilder
void fix_phase_rotate_c2c(const Array< std::complex< T >, 3 > &in, Array< std::complex< T1 >, 3 > &out, const TinyVector< T2, 3 > &twist)
void create(const TinyVector< int, 3 > &halfG)
void resize(const std::array< SIZET, D > &dims)
Resize the container.
Array< double, 3 > splineData_r
Array< std::complex< double >, 3 > FFTbox
void fix_phase_rotate_c2r(Array< std::complex< T >, 3 > &in, Array< T1, 3 > &out, const TinyVector< T2, 3 > &twist, T &phase_r, T &phase_i)
rotate the state after 3dfft
Array< double, 3 > splineData_i
void split_real_components_c2c(const Array< std::complex< T >, 3 > &in, Array< T1, 3 > &out_r, Array< T1, 3 > &out_i)
Split FFTs into real/imaginary components.
OneSplineOrbData(const TinyVector< int, 3 > &mesh_size, const TinyVector< int, 3 > &halfG, const bool isComplex)
const TinyVector< int, 3 > & mesh_size_
void fft_spline(const Vector< std::complex< double >> &cG, const std::vector< TinyVector< int, 3 >> &gvecs, const TinyVector< double, 3 > &primcell_kpoint, const bool rotate)
fft and spline cG
void unpack4fftw(const Vector< std::complex< T >> &cG, const std::vector< TinyVector< int, 3 >> &gvecs, const TinyVector< int, 3 > &maxg, Array< std::complex< T >, 3 > &fftbox)
unpack packed cG to fftbox