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

API for the FFT mesh buffers. More...

#include <data_struct.hpp>

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

Public Member Functions

 FFTBuffers (P3MLocalMesh const &local_mesh)
 
virtual ~FFTBuffers ()=default
 
virtual void init_meshes (int ca_mesh_size)=0
 Initialize the meshes.
 
virtual void init_halo ()=0
 Initialize the halo buffers.
 
virtual void perform_scalar_halo_gather ()=0
 Update scalar mesh halo with data from neighbors (accumulation).
 
virtual void perform_vector_halo_gather ()=0
 Update vector mesh halo with data from neighbors (accumulation).
 
virtual void perform_scalar_halo_spread ()=0
 Update scalar mesh halo of all neighbors.
 
virtual void perform_vector_halo_spread ()=0
 Update vector mesh halo of all neighbors.
 
virtual FloatType * get_scalar_mesh ()=0
 Get pointer to scalar mesh begin.
 
virtual std::array< FloatType *, 3u > get_vector_mesh ()=0
 Get pointer to vector mesh begin.
 
virtual void update_mesh_views (P3MFFTMesh< FloatType > &out)=0
 Update the scalar and vector mesh views in P3MFFTMesh to point to the new underlying data structures.
 

Public Attributes

bool check_complex_residuals = false
 

Protected Attributes

P3MLocalMesh const & local_mesh
 

Detailed Description

template<typename FloatType>
class FFTBuffers< FloatType >

API for the FFT mesh buffers.

Definition at line 133 of file data_struct.hpp.

Constructor & Destructor Documentation

◆ FFTBuffers()

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

Definition at line 139 of file data_struct.hpp.

◆ ~FFTBuffers()

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

Member Function Documentation

◆ get_scalar_mesh()

template<typename FloatType >
virtual FloatType * FFTBuffers< FloatType >::get_scalar_mesh ( )
pure virtual

Get pointer to scalar mesh begin.

Should only be used by FFTBackend.

Implemented in FFTBuffersLegacy< FloatType >.

◆ get_vector_mesh()

template<typename FloatType >
virtual std::array< FloatType *, 3u > FFTBuffers< FloatType >::get_vector_mesh ( )
pure virtual

Get pointer to vector mesh begin.

Should only be used by FFTBackend.

Implemented in FFTBuffersLegacy< FloatType >.

◆ init_halo()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::init_halo ( )
pure virtual

Initialize the halo buffers.

Implemented in FFTBuffersLegacy< FloatType >.

◆ init_meshes()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::init_meshes ( int  ca_mesh_size)
pure virtual

Initialize the meshes.

Implemented in FFTBuffersLegacy< FloatType >.

◆ perform_scalar_halo_gather()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::perform_scalar_halo_gather ( )
pure virtual

Update scalar mesh halo with data from neighbors (accumulation).

Implemented in FFTBuffersLegacy< FloatType >.

◆ perform_scalar_halo_spread()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::perform_scalar_halo_spread ( )
pure virtual

Update scalar mesh halo of all neighbors.

Implemented in FFTBuffersLegacy< FloatType >.

◆ perform_vector_halo_gather()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::perform_vector_halo_gather ( )
pure virtual

Update vector mesh halo with data from neighbors (accumulation).

Implemented in FFTBuffersLegacy< FloatType >.

◆ perform_vector_halo_spread()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::perform_vector_halo_spread ( )
pure virtual

Update vector mesh halo of all neighbors.

Implemented in FFTBuffersLegacy< FloatType >.

◆ update_mesh_views()

template<typename FloatType >
virtual void FFTBuffers< FloatType >::update_mesh_views ( P3MFFTMesh< FloatType > &  out)
pure virtual

Update the scalar and vector mesh views in P3MFFTMesh to point to the new underlying data structures.

Implemented in FFTBuffersLegacy< FloatType >.

Member Data Documentation

◆ check_complex_residuals

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

Definition at line 138 of file data_struct.hpp.

◆ local_mesh

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

Definition at line 135 of file data_struct.hpp.


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