ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
FFTBackend< FloatType > Class Template Referenceabstract

API for the FFT backend of the P3M algorithm. More...

#include <data_struct.hpp>

+ Inheritance diagram for FFTBackend< FloatType >:
+ Collaboration diagram for FFTBackend< FloatType >:

Public Member Functions

 FFTBackend (P3MLocalMesh const &local_mesh)
 
virtual ~FFTBackend ()=default
 
virtual void init (P3MParameters const &params)=0
 
virtual int get_ca_mesh_size () const noexcept=0
 
virtual int get_ks_pnum () const noexcept=0
 
virtual void forward_fft (FloatType *rs_mesh)=0
 Carry out the forward FFT of the scalar mesh.
 
virtual void backward_fft (FloatType *rs_mesh)=0
 Carry out the backward FFT of the scalar mesh.
 
virtual std::tuple< int, int, int > get_permutations () const =0
 Get indices of the k-space data layout.
 
virtual std::array< int, 3u > const & get_mesh_size () const =0
 
virtual std::array< int, 3u > const & get_mesh_start () const =0
 

Public Attributes

bool check_complex_residuals = false
 

Protected Attributes

P3MLocalMesh const & local_mesh
 

Detailed Description

template<typename FloatType>
class FFTBackend< FloatType >

API for the FFT backend of the P3M algorithm.

Definition at line 108 of file data_struct.hpp.

Constructor & Destructor Documentation

◆ FFTBackend()

template<typename FloatType >
FFTBackend< FloatType >::FFTBackend ( P3MLocalMesh const &  local_mesh)
inlineexplicit

Definition at line 114 of file data_struct.hpp.

◆ ~FFTBackend()

template<typename FloatType >
virtual FFTBackend< FloatType >::~FFTBackend ( )
virtualdefault

Member Function Documentation

◆ backward_fft()

template<typename FloatType >
virtual void FFTBackend< FloatType >::backward_fft ( FloatType *  rs_mesh)
pure virtual

Carry out the backward FFT of the scalar mesh.

Implemented in FFTBackendLegacy< FloatType >.

◆ forward_fft()

template<typename FloatType >
virtual void FFTBackend< FloatType >::forward_fft ( FloatType *  rs_mesh)
pure virtual

Carry out the forward FFT of the scalar mesh.

Implemented in FFTBackendLegacy< FloatType >.

◆ get_ca_mesh_size()

template<typename FloatType >
virtual int FFTBackend< FloatType >::get_ca_mesh_size ( ) const
pure virtualnoexcept

◆ get_ks_pnum()

template<typename FloatType >
virtual int FFTBackend< FloatType >::get_ks_pnum ( ) const
pure virtualnoexcept

◆ get_mesh_size()

template<typename FloatType >
virtual std::array< int, 3u > const & FFTBackend< FloatType >::get_mesh_size ( ) const
pure virtual

◆ get_mesh_start()

template<typename FloatType >
virtual std::array< int, 3u > const & FFTBackend< FloatType >::get_mesh_start ( ) const
pure virtual

◆ get_permutations()

template<typename FloatType >
virtual std::tuple< int, int, int > FFTBackend< FloatType >::get_permutations ( ) const
pure virtual

Get indices of the k-space data layout.

Implemented in FFTBackendLegacy< FloatType >.

◆ init()

template<typename FloatType >
virtual void FFTBackend< FloatType >::init ( P3MParameters const &  params)
pure virtual

Member Data Documentation

◆ check_complex_residuals

template<typename FloatType >
bool FFTBackend< FloatType >::check_complex_residuals = false

Definition at line 113 of file data_struct.hpp.

◆ local_mesh

template<typename FloatType >
P3MLocalMesh const& FFTBackend< FloatType >::local_mesh
protected

Definition at line 110 of file data_struct.hpp.


The documentation for this class was generated from the following file: