ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
P3MFFTHeffte< FloatType, FFTConfig > Struct Template Referencefinal

heFFTe-backed implementation of the P3M FFT interface. More...

#include <P3MFFT.hpp>

+ Inheritance diagram for P3MFFTHeffte< FloatType, FFTConfig >:
+ Collaboration diagram for P3MFFTHeffte< FloatType, FFTConfig >:

Public Types

using Base = P3MFFTBackend< FloatType, FFTConfig >
 
using ComplexType = typename Base::ComplexType
 
using RSpaceScalar = typename Base::RSpaceScalar
 
- Public Types inherited from P3MFFTBackend< FloatType, FFTConfig >
using ComplexType = std::complex< FloatType >
 
using RSpaceScalar = FloatType
 Real-space scalar type.
 

Public Member Functions

 P3MFFTHeffte (boost::mpi::communicator comm, Utils::Vector3i const &global_mesh, Utils::Vector3i const &rs_local_ld_index, Utils::Vector3i const &rs_local_ur_index, Utils::Vector3i const &node_grid)
 
Utils::Vector3i ks_local_ld_index () const override
 
Utils::Vector3i ks_local_ur_index () const override
 
Utils::Vector3i ks_local_size () const override
 
Utils::Vector3i rs_local_size () const override
 
RSpaceScalarforward_input_buffer () override
 
void forward (RSpaceScalar const *in, ComplexType *out) override
 
void backward (ComplexType *in, RSpaceScalar *out) override
 
- Public Member Functions inherited from P3MFFTBackend< FloatType, FFTConfig >
virtual ~P3MFFTBackend ()=default
 

Detailed Description

template<typename FloatType, class FFTConfig>
struct P3MFFTHeffte< FloatType, FFTConfig >

heFFTe-backed implementation of the P3M FFT interface.

Thin adapter that exposes P3MFFT through the P3MFFTBackend virtual interface, so the solver can hold it interchangeably with other backends. This is the general backend, used for any rank count.

Definition at line 200 of file P3MFFT.hpp.

Member Typedef Documentation

◆ Base

template<typename FloatType , class FFTConfig >
using P3MFFTHeffte< FloatType, FFTConfig >::Base = P3MFFTBackend<FloatType, FFTConfig>

Definition at line 201 of file P3MFFT.hpp.

◆ ComplexType

template<typename FloatType , class FFTConfig >
using P3MFFTHeffte< FloatType, FFTConfig >::ComplexType = typename Base::ComplexType

Definition at line 202 of file P3MFFT.hpp.

◆ RSpaceScalar

template<typename FloatType , class FFTConfig >
using P3MFFTHeffte< FloatType, FFTConfig >::RSpaceScalar = typename Base::RSpaceScalar

Definition at line 203 of file P3MFFT.hpp.

Constructor & Destructor Documentation

◆ P3MFFTHeffte()

template<typename FloatType , class FFTConfig >
P3MFFTHeffte< FloatType, FFTConfig >::P3MFFTHeffte ( boost::mpi::communicator  comm,
Utils::Vector3i const global_mesh,
Utils::Vector3i const rs_local_ld_index,
Utils::Vector3i const rs_local_ur_index,
Utils::Vector3i const node_grid 
)
inline

Definition at line 205 of file P3MFFT.hpp.

Member Function Documentation

◆ backward()

template<typename FloatType , class FFTConfig >
void P3MFFTHeffte< FloatType, FFTConfig >::backward ( ComplexType in,
RSpaceScalar out 
)
inlineoverridevirtual

◆ forward()

template<typename FloatType , class FFTConfig >
void P3MFFTHeffte< FloatType, FFTConfig >::forward ( RSpaceScalar const in,
ComplexType out 
)
inlineoverridevirtual

◆ forward_input_buffer()

template<typename FloatType , class FFTConfig >
RSpaceScalar * P3MFFTHeffte< FloatType, FFTConfig >::forward_input_buffer ( )
inlineoverridevirtual

Implements P3MFFTBackend< FloatType, FFTConfig >.

Definition at line 226 of file P3MFFT.hpp.

◆ ks_local_ld_index()

template<typename FloatType , class FFTConfig >
Utils::Vector3i P3MFFTHeffte< FloatType, FFTConfig >::ks_local_ld_index ( ) const
inlineoverridevirtual

◆ ks_local_size()

template<typename FloatType , class FFTConfig >
Utils::Vector3i P3MFFTHeffte< FloatType, FFTConfig >::ks_local_size ( ) const
inlineoverridevirtual

◆ ks_local_ur_index()

template<typename FloatType , class FFTConfig >
Utils::Vector3i P3MFFTHeffte< FloatType, FFTConfig >::ks_local_ur_index ( ) const
inlineoverridevirtual

◆ rs_local_size()

template<typename FloatType , class FFTConfig >
Utils::Vector3i P3MFFTHeffte< FloatType, FFTConfig >::rs_local_size ( ) const
inlineoverridevirtual

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