26#if defined(ESPRESSO_DP3M)
37template <
typename FloatType>
struct fft_data_struct;
44template <
typename FloatType>
46 static_assert(std::is_same_v<FloatType, float>
or
47 std::is_same_v<FloatType, double>,
48 "FFTW only implements float and double");
49 std::unique_ptr<fft::fft_data_struct<FloatType>>
fft;
51 int ca_mesh_size = -1;
63 return fft->get_mesh_size();
66 return fft->get_mesh_start();
Historic FFT backend based on FFTW3.
void backward_fft(FloatType *rs_mesh) override
~FFTBackendLegacy() override
std::array< int, 3u > const & get_mesh_size() const override
std::array< int, 3u > const & get_mesh_start() const override
void init(P3MParameters const ¶ms) override
void forward_fft(FloatType *rs_mesh) override
int get_ca_mesh_size() const noexcept override
int get_ks_pnum() const noexcept override
API for the legacy FFT backend of the P3M algorithm.
P3MLocalMesh const & local_mesh
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Common functions for dipolar and charge P3M.
Properties of the local mesh.
Structure to hold P3M parameters and some dependent variables.