ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
p3m_data_struct< FloatType > Struct Template Reference

Base class for the electrostatics and magnetostatics P3M algorithms. More...

#include <data_struct.hpp>

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

Public Types

using value_type = FloatType
 

Public Member Functions

 p3m_data_struct (P3MParameters &&parameters)
 
void calc_differential_operator ()
 Calculate the Fourier transformed differential operator.
 
void init ()
 
void update_mesh_views ()
 
template<typename T , class... Args>
void make_fft_instance (Args... args)
 
template<typename T , class... Args>
void make_mesh_instance (Args... args)
 

Public Attributes

P3MParameters params
 P3M base parameters.
 
P3MLocalMesh local_mesh
 Local mesh properties.
 
P3MFFTMesh< FloatType > mesh
 Local mesh FFT buffers.
 
std::array< std::vector< int >, 3 > d_op
 Spatial differential operator in k-space.
 
std::vector< FloatType > g_force
 Force optimised influence function (k-space)
 
std::vector< FloatType > g_energy
 Energy optimised influence function (k-space)
 
std::unique_ptr< FFTBackend< FloatType > > fft
 FFT algorithm.
 
std::unique_ptr< FFTBuffers< FloatType > > fft_buffers
 FFT buffers.
 

Detailed Description

template<typename FloatType>
struct p3m_data_struct< FloatType >

Base class for the electrostatics and magnetostatics P3M algorithms.

Contains a handle to the FFT backend, information about the local mesh, the differential operator, and various buffers.

Definition at line 45 of file data_struct.hpp.

Member Typedef Documentation

◆ value_type

template<typename FloatType >
using p3m_data_struct< FloatType >::value_type = FloatType

Definition at line 46 of file data_struct.hpp.

Constructor & Destructor Documentation

◆ p3m_data_struct()

template<typename FloatType >
p3m_data_struct< FloatType >::p3m_data_struct ( P3MParameters &&  parameters)
inlineexplicit

Definition at line 48 of file data_struct.hpp.

Member Function Documentation

◆ calc_differential_operator()

template<typename FloatType >
void p3m_data_struct< FloatType >::calc_differential_operator ( )
inline

Calculate the Fourier transformed differential operator.

Remark: This is done on the level of n-vectors and not k-vectors, i.e. the prefactor \( 2i\pi/L \) is missing!

Definition at line 68 of file data_struct.hpp.

References calc_p3m_mesh_shift(), p3m_data_struct< FloatType >::d_op, P3MParameters::mesh, and p3m_data_struct< FloatType >::params.

◆ init()

template<typename FloatType >
void p3m_data_struct< FloatType >::init ( )

◆ make_fft_instance()

template<typename FloatType >
template<typename T , class... Args>
void p3m_data_struct< FloatType >::make_fft_instance ( Args...  args)
inline

Definition at line 94 of file data_struct.hpp.

References p3m_data_struct< FloatType >::local_mesh.

◆ make_mesh_instance()

template<typename FloatType >
template<typename T , class... Args>
void p3m_data_struct< FloatType >::make_mesh_instance ( Args...  args)
inline

◆ update_mesh_views()

template<typename FloatType >
void p3m_data_struct< FloatType >::update_mesh_views ( )
inline

Member Data Documentation

◆ d_op

template<typename FloatType >
std::array<std::vector<int>, 3> p3m_data_struct< FloatType >::d_op

Spatial differential operator in k-space.

We use an i*k differentiation.

Definition at line 62 of file data_struct.hpp.

Referenced by p3m_data_struct< FloatType >::calc_differential_operator().

◆ fft

template<typename FloatType >
std::unique_ptr<FFTBackend<FloatType> > p3m_data_struct< FloatType >::fft

FFT algorithm.

Definition at line 77 of file data_struct.hpp.

Referenced by CoulombTuningAlgorithm< FloatType, Architecture >::fft_decomposition_veto().

◆ fft_buffers

template<typename FloatType >
std::unique_ptr<FFTBuffers<FloatType> > p3m_data_struct< FloatType >::fft_buffers

◆ g_energy

template<typename FloatType >
std::vector<FloatType> p3m_data_struct< FloatType >::g_energy

Energy optimised influence function (k-space)

Definition at line 75 of file data_struct.hpp.

◆ g_force

template<typename FloatType >
std::vector<FloatType> p3m_data_struct< FloatType >::g_force

Force optimised influence function (k-space)

Definition at line 73 of file data_struct.hpp.

◆ local_mesh

◆ mesh

template<typename FloatType >
P3MFFTMesh<FloatType> p3m_data_struct< FloatType >::mesh

◆ params


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