ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Information about the three one dimensional FFTs and how the nodes have to communicate inbetween. More...
#include <fft.hpp>
Public Member Functions | |
fft_data_struct (decltype(m_mpi_env) mpi_env) | |
fft_data_struct & | operator= (fft_data_struct< FloatType > const &)=delete |
fft_data_struct (fft_data_struct< FloatType > const &)=delete | |
int | initialize_fft (boost::mpi::communicator const &comm, Utils::Vector3i const &ca_mesh_dim, int const *ca_mesh_margin, Utils::Vector3i const &global_mesh_dim, Utils::Vector3d const &global_mesh_off, int &ks_pnum, Utils::Vector3i const &grid) |
Initialize everything connected to the 3D-FFT. | |
void | forward_fft (boost::mpi::communicator const &comm, FloatType *data) |
Perform an in-place forward 3D FFT. | |
void | backward_fft (boost::mpi::communicator const &comm, FloatType *data, bool check_complex) |
Perform an in-place backward 3D FFT. | |
auto const & | get_mesh_size () const |
auto const & | get_mesh_start () const |
Information about the three one dimensional FFTs and how the nodes have to communicate inbetween.
|
inlineexplicit |
|
delete |
void fft::fft_data_struct< FloatType >::backward_fft | ( | boost::mpi::communicator const & | comm, |
FloatType * | data, | ||
bool | check_complex | ||
) |
Perform an in-place backward 3D FFT.
[in,out] | data | Mesh. |
[in] | check_complex | Throw an error if the complex component is non-zero. |
[in] | comm | MPI communicator. |
Definition at line 748 of file fft.cpp.
References fft::fftw< FloatType >::execute_dft.
void fft::fft_data_struct< FloatType >::forward_fft | ( | boost::mpi::communicator const & | comm, |
FloatType * | data | ||
) |
Perform an in-place forward 3D FFT.
[in,out] | data | Mesh. |
[in] | comm | MPI communicator |
Definition at line 716 of file fft.cpp.
References fft::fftw< FloatType >::execute_dft.
|
inline |
|
inline |
int fft::fft_data_struct< FloatType >::initialize_fft | ( | boost::mpi::communicator const & | comm, |
Utils::Vector3i const & | ca_mesh_dim, | ||
int const * | ca_mesh_margin, | ||
Utils::Vector3i const & | global_mesh_dim, | ||
Utils::Vector3d const & | global_mesh_off, | ||
int & | ks_pnum, | ||
Utils::Vector3i const & | grid | ||
) |
Initialize everything connected to the 3D-FFT.
[in] | comm | MPI communicator. |
[in] | ca_mesh_dim | Local CA mesh dimensions. |
[in] | ca_mesh_margin | Local CA mesh margins. |
[in] | global_mesh_dim | Global CA mesh dimensions. |
[in] | global_mesh_off | Global CA mesh offset. |
[out] | ks_pnum | Number of permutations in k-space. |
[in] | grid | Number of nodes in each spatial dimension. |
Definition at line 516 of file fft.cpp.
References fft::calc_2d_grid(), Utils::Array< T, N >::data(), fft_pack_block(), fft::find_comm_groups(), Utils::get_linear_index(), fft::map_3don2d_grid(), fft::fftw< FloatType >::plan_many_dft, and Utils::product().
|
delete |