ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <fft_cuda.h>
Public Member Functions | |
FFT_CUDA () | |
~FFT_CUDA () | |
void | setupFFT () override |
Setup the fft plan and data as pure virtual function. | |
void | clear () override |
Clear the fft data as pure virtual function. | |
void | cleanFFT () override |
Clean the fft plan as pure virtual function. | |
void | initfft (int nx_in, int ny_in, int nz_in) override |
Initialize the fft parameters. | |
std::complex< FPTYPE > * | get_auxr_3d_data () const override |
Get the real space data. | |
void | fft3D_forward (std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const override |
Forward FFT in 3D. | |
void | fft3D_backward (std::complex< FPTYPE > *in, std::complex< FPTYPE > *out) const override |
Backward FFT in 3D. | |
void | setupFFT () |
Setup the fft plan and data as pure virtual function. | |
void | setupFFT () |
Setup the fft plan and data as pure virtual function. | |
void | cleanFFT () |
Clean the fft plan as pure virtual function. | |
void | cleanFFT () |
Clean the fft plan as pure virtual function. | |
void | clear () |
Clear the fft data as pure virtual function. | |
void | clear () |
Clear the fft data as pure virtual function. | |
void | fft3D_forward (std::complex< float > *in, std::complex< float > *out) const |
void | fft3D_forward (std::complex< double > *in, std::complex< double > *out) const |
void | fft3D_backward (std::complex< float > *in, std::complex< float > *out) const |
void | fft3D_backward (std::complex< double > *in, std::complex< double > *out) const |
std::complex< float > * | get_auxr_3d_data () const |
std::complex< double > * | get_auxr_3d_data () const |
![]() | |
FFT_BASE () | |
virtual | ~FFT_BASE () |
virtual | __attribute__ ((weak)) void initfft(int nx_in |
Initialize the fft parameters as virtual function. | |
virtual | __attribute__ ((weak)) void initfft(int nx_in |
virtual void | resource_handler (const int flag) const |
Allocate and destory the resoure in FFT running time, Now it only used in the DSP mode. | |
virtual | __attribute__ ((weak)) FPTYPE *get_rspace_data() const |
Get the real space data in cpu-like fft. | |
virtual virtual __attribute__((weak)) std virtual __attribute__((weak)) std virtual __attribute__((weak)) std virtual __attribute__((weak)) void fftxyfor(std virtual __attribute__((weak)) void fftxybac(std virtual __attribute__((weak)) void fftzfor(std virtual __attribute__((weak)) void fftzbac(std | __attribute__ ((weak)) void fftxyr2c(FPTYPE *in |
Get the auxiliary real space data in 3D. | |
Private Attributes | |
cufftHandle | c_handle = {} |
cufftHandle | z_handle = {} |
std::complex< float > * | c_auxr_3d = nullptr |
std::complex< double > * | z_auxr_3d = nullptr |
Additional Inherited Members | |
![]() | |
virtual int | ny_in |
virtual int int | nz_in |
virtual int int int | lixy_in |
virtual int int int int | rixy_in |
virtual int int int int int | ns_in |
virtual int int int int int int | nplane_in |
virtual int int int int int int int | nproc_in |
virtual int int int int int int int bool | gamma_only_in |
virtual int int int int int int int bool bool | xprime_in = true) |
virtual virtual __attribute__((weak)) std virtual __attribute__((weak)) std virtual __attribute__((weak)) std virtual __attribute__((weak)) void fftxyfor(std virtual __attribute__((weak)) void fftxybac(std virtual __attribute__((weak)) void fftzfor(std virtual __attribute__((weak)) void fftzbac(std std::complex< FPTYPE > *out | const |
![]() | |
int | nx = 0 |
Forward FFT in 3D. | |
int | ny = 0 |
int | nz = 0 |
|
inline |
|
inline |
|
virtual |
Clean the fft plan as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clean the fft plan.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
virtual |
Clean the fft plan as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clean the fft plan.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
overridevirtual |
Clean the fft plan as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clean the fft plan.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
virtual |
Clear the fft data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clear the fft data.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
virtual |
Clear the fft data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clear the fft data.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
overridevirtual |
Clear the fft data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to clear the fft data.
Implements ModulePW::FFT_BASE< FPTYPE >.
void ModulePW::FFT_CUDA< double >::fft3D_backward | ( | std::complex< double > * | in, |
std::complex< double > * | out | ||
) | const |
void ModulePW::FFT_CUDA< float >::fft3D_backward | ( | std::complex< float > * | in, |
std::complex< float > * | out | ||
) | const |
|
override |
Backward FFT in 3D.
in | input data, complex FPTYPE |
out | output data, complex FPTYPE |
This function performs the backward FFT in 3D.
void ModulePW::FFT_CUDA< double >::fft3D_forward | ( | std::complex< double > * | in, |
std::complex< double > * | out | ||
) | const |
void ModulePW::FFT_CUDA< float >::fft3D_forward | ( | std::complex< float > * | in, |
std::complex< float > * | out | ||
) | const |
|
override |
Forward FFT in 3D.
in | input data, complex FPTYPE |
out | output data, complex FPTYPE |
This function performs the forward FFT in 3D.
std::complex< float > * ModulePW::FFT_CUDA< float >::get_auxr_3d_data | ( | ) | const |
std::complex< double > * ModulePW::FFT_CUDA< double >::get_auxr_3d_data | ( | ) | const |
|
override |
Get the real space data.
|
override |
Initialize the fft parameters.
nx_in | number of grid points in x direction |
ny_in | number of grid points in y direction |
nz_in | number of grid points in z direction |
|
virtual |
Setup the fft plan and data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to setup the fft plan and data.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
virtual |
Setup the fft plan and data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to setup the fft plan and data.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
overridevirtual |
Setup the fft plan and data as pure virtual function.
The function is set as pure virtual function.In order to override the function in the derived class.In the derived class, the function is used to setup the fft plan and data.
Implements ModulePW::FFT_BASE< FPTYPE >.
|
private |
|
private |
|
private |
|
private |