ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
P3MFFT< FloatType, Architecture, FFTConfig > Class Template Reference

FFT manager. More...

#include <P3MFFT.hpp>

Public Types

using OutputType = typename heffte::fft_output< FloatType >::type
 
using backend = std::conditional_t< Architecture==Arch::CPU, heffte::backend::fftw, heffte::backend::cufft >
 
template<class T = OutputType>
using buffer_container = heffte::fft3d< backend >::template buffer_container< T >
 

Public Member Functions

 ~P3MFFT ()
 
 P3MFFT (stream_type gpu_stream, 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
 
Utils::Vector3i ks_local_ur_index () const
 
Utils::Vector3i ks_local_size () const
 
Utils::Vector3i rs_local_size () const
 
void forward (auto &&in, auto &&out)
 
void backward (auto &&in, auto &&out)
 

Detailed Description

template<typename FloatType, Arch Architecture, class FFTConfig>
class P3MFFT< FloatType, Architecture, FFTConfig >

FFT manager.

Definition at line 46 of file P3MFFT.hpp.

Member Typedef Documentation

◆ backend

template<typename FloatType , Arch Architecture, class FFTConfig >
using P3MFFT< FloatType, Architecture, FFTConfig >::backend = std::conditional_t<Architecture == Arch::CPU, heffte::backend::fftw, heffte::backend::cufft>

Definition at line 49 of file P3MFFT.hpp.

◆ buffer_container

template<typename FloatType , Arch Architecture, class FFTConfig >
template<class T = OutputType>
using P3MFFT< FloatType, Architecture, FFTConfig >::buffer_container = heffte::fft3d<backend>::template buffer_container<T>

Definition at line 53 of file P3MFFT.hpp.

◆ OutputType

template<typename FloatType , Arch Architecture, class FFTConfig >
using P3MFFT< FloatType, Architecture, FFTConfig >::OutputType = typename heffte::fft_output<FloatType>::type

Definition at line 48 of file P3MFFT.hpp.

Constructor & Destructor Documentation

◆ ~P3MFFT()

template<typename FloatType , Arch Architecture, class FFTConfig >
P3MFFT< FloatType, Architecture, FFTConfig >::~P3MFFT ( )
inline

Definition at line 81 of file P3MFFT.hpp.

◆ P3MFFT()

template<typename FloatType , Arch Architecture, class FFTConfig >
P3MFFT< FloatType, Architecture, FFTConfig >::P3MFFT ( stream_type  gpu_stream,
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

Member Function Documentation

◆ backward()

template<typename FloatType , Arch Architecture, class FFTConfig >
void P3MFFT< FloatType, Architecture, FFTConfig >::backward ( auto &&  in,
auto &&  out 
)
inline

Definition at line 185 of file P3MFFT.hpp.

References stream.

◆ forward()

template<typename FloatType , Arch Architecture, class FFTConfig >
void P3MFFT< FloatType, Architecture, FFTConfig >::forward ( auto &&  in,
auto &&  out 
)
inline

Definition at line 182 of file P3MFFT.hpp.

References stream.

◆ ks_local_ld_index()

template<typename FloatType , Arch Architecture, class FFTConfig >
Utils::Vector3i P3MFFT< FloatType, Architecture, FFTConfig >::ks_local_ld_index ( ) const
inline

◆ ks_local_size()

template<typename FloatType , Arch Architecture, class FFTConfig >
Utils::Vector3i P3MFFT< FloatType, Architecture, FFTConfig >::ks_local_size ( ) const
inline

◆ ks_local_ur_index()

template<typename FloatType , Arch Architecture, class FFTConfig >
Utils::Vector3i P3MFFT< FloatType, Architecture, FFTConfig >::ks_local_ur_index ( ) const
inline

◆ rs_local_size()

template<typename FloatType , Arch Architecture, class FFTConfig >
Utils::Vector3i P3MFFT< FloatType, Architecture, FFTConfig >::rs_local_size ( ) const
inline

Definition at line 178 of file P3MFFT.hpp.

References Utils::Vector< T, N >::broadcast().


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