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

State of the p3m methods, the part which applies to both, electrostatic and dipolar p3m. More...

#include <data_struct.hpp>

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

Public Types

using value_type = FloatType
 

Public Member Functions

 P3MStateCommon (P3MParameters &&parameters)
 
void calc_differential_operator ()
 Calculate the Fourier transformed differential operator.
 

Public Attributes

P3MParameters params
 P3M base parameters.
 
P3MLocalMesh local_mesh
 Local mesh geometry information for this MPI rank.
 
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)
 

Detailed Description

template<typename FloatType>
struct P3MStateCommon< FloatType >

State of the p3m methods, the part which applies to both, electrostatic and dipolar p3m.

Definition at line 40 of file data_struct.hpp.

Member Typedef Documentation

◆ value_type

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

Definition at line 41 of file data_struct.hpp.

Constructor & Destructor Documentation

◆ P3MStateCommon()

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

Definition at line 43 of file data_struct.hpp.

Member Function Documentation

◆ calc_differential_operator()

template<typename FloatType >
void P3MStateCommon< 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 64 of file data_struct.hpp.

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

Member Data Documentation

◆ d_op

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

Spatial differential operator in k-space.

We use an i*k differentiation. TODO: RW: I think this is not the differential operator but the mapping between index in the GLOBAL mesh and the corresponding k-vector with a few pre-factors missing.

Definition at line 58 of file data_struct.hpp.

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

◆ g_energy

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

Energy optimised influence function (k-space)

Definition at line 71 of file data_struct.hpp.

◆ g_force

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

Force optimised influence function (k-space)

Definition at line 69 of file data_struct.hpp.

◆ local_mesh

◆ params

template<typename FloatType >
P3MParameters P3MStateCommon< FloatType >::params

P3M base parameters.

Definition at line 47 of file data_struct.hpp.

Referenced by CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::adapt_epsilon_elc(), P3MStateCommon< FloatType >::calc_differential_operator(), DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::calc_energy_correction(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::CoulombP3MHeffte(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::determine_mesh_limits(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::determine_mesh_limits(), DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::DipolarP3MHeffte(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::get_params(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::get_params(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::get_time(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::init_gpu_kernels(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::prepare_fft_mesh(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l(), DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::tune(), and DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::tune().


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