33 void setfft(std::string device_in, std::string precision_in);
63 bool xprime_in =
true,
64 bool mpifft_in =
false);
92 template <
typename FPTYPE>
101 template <
typename FPTYPE>
110 template <
typename FPTYPE>
119 template <
typename FPTYPE>
132 template <
typename FPTYPE>
133 void fftzfor(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
143 template <
typename FPTYPE>
144 void fftxyfor(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
154 template <
typename FPTYPE>
155 void fftzbac(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
165 template <
typename FPTYPE>
166 void fftxybac(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
177 template <
typename FPTYPE>
178 void fftxyr2c(FPTYPE* in, std::complex<FPTYPE>* out)
const;
188 template <
typename FPTYPE>
189 void fftxyc2r(std::complex<FPTYPE>* in, FPTYPE* out)
const;
191 template <
typename FPTYPE>
192 void fft3D_forward(std::complex<FPTYPE>* in, std::complex<FPTYPE>* out)
const;
193 template <
typename FPTYPE>
Definition fft_bundle.h:11
bool float_flag
Definition fft_bundle.h:198
std::string device
Definition fft_bundle.h:203
void fftxyfor(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Forward fft in x-y direction.
void fftxyr2c(FPTYPE *in, std::complex< FPTYPE > *out) const
Real to complex fft in x-y direction.
void fft3D_backward(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
std::complex< FPTYPE > * get_auxr_3d_data() const
Get the auxr 3d data.
void fftxyc2r(std::complex< FPTYPE > *in, FPTYPE *out) const
Complex to real fft in x-y direction.
void fft3D_forward(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
void fftxybac(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Backward fft in x-y direction.
void initfft(int nx_in, int ny_in, int nz_in, int lixy_in, int rixy_in, int ns_in, int nplane_in, int nproc_in, bool gamma_only_in, bool xprime_in=true, bool mpifft_in=false)
Initialize the fft parameters.
Definition fft_bundle.cpp:35
FFT_Bundle(std::string device_in, std::string precision_in)
Constructor with device and precision.
Definition fft_bundle.h:23
void initfftmode(int fft_mode_in)
Initialize the fft mode.
Definition fft_bundle.h:73
void resource_handler(const int flag) const
Definition fft_bundle.cpp:149
void fftzbac(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Backward fft in z direction.
~FFT_Bundle()
Definition fft_bundle.cpp:24
void fftzfor(std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const
Forward fft in z direction.
int fft_mode
Definition fft_bundle.h:197
std::shared_ptr< FFT_BASE< float > > fft_float
Definition fft_bundle.h:200
std::shared_ptr< FFT_BASE< double > > fft_double
Definition fft_bundle.h:201
std::string precision
Definition fft_bundle.h:204
std::complex< FPTYPE > * get_auxg_data() const
Get the auxg data.
void setfft(std::string device_in, std::string precision_in)
Set device and precision.
Definition fft_bundle.cpp:29
void setupFFT()
Definition fft_bundle.cpp:113
FFT_Bundle()
Definition fft_bundle.h:13
std::complex< FPTYPE > * get_auxr_data() const
Get the auxr data.
bool double_flag
Definition fft_bundle.h:199
void clearFFT()
Definition fft_bundle.cpp:125
FPTYPE * get_rspace_data() const
Get the real space data.
void clear()
Definition fft_bundle.cpp:136
Definition fft_bundle.h:209
const FFT_Bundle & fft_
Definition fft_bundle.h:210
~FFT_Guard()
Definition fft_bundle.h:213
FFT_Guard(const FFT_Bundle &fft)
Definition fft_bundle.h:211