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

Base class for the electrostatics P3M algorithm. More...

#include <p3m_heffte.hpp>

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

Public Types

using value_type = FloatType
 
using ComplexType = std::complex< value_type >
 
- Public Types inherited from P3MStateCommon< FloatType >
using value_type = FloatType
 

Public Member Functions

void init_labels ()
 
- Public Member Functions inherited from P3MStateCommon< FloatType >
 P3MStateCommon (P3MParameters &&parameters)
 
void calc_differential_operator ()
 Calculate the Fourier transformed differential operator.
 

Public Attributes

std::size_t sum_qpart = 0
 number of charged particles.
 
double sum_q2 = 0.
 Sum of square of charges.
 
double square_sum_q = 0.
 square of sum of charges.
 
p3m_interpolation_cache inter_weights
 
std::vector< FloatType > rs_charge_density
 charge density in real-space with halo
 
std::vector< ComplexTypeks_charge_density
 charge density in k-space without halo
 
std::array< std::vector< FloatType >, 3 > rs_E_fields
 electric fields in real-space with halo
 
std::array< std::vector< ComplexType >, 3 > ks_E_fields
 electric fields in k-space without halo
 
std::array< std::vector< FloatType >, 3 > rs_E_fields_no_halo
 electric fields in real-space without halo
 
p3m_send_mesh< FloatType > halo_comm
 
std::shared_ptr< P3MFFT< FloatType, FFTConfig > > fft
 
Kokkos::View< FloatType **, Kokkos::LayoutRight, Kokkos::HostSpace > rs_charge_density_kokkos
 
- Public Attributes inherited from P3MStateCommon< FloatType >
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, class FFTConfig>
struct CoulombP3MState< FloatType, FFTConfig >

Base class for the electrostatics P3M algorithm.

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

Definition at line 62 of file p3m_heffte.hpp.

Member Typedef Documentation

◆ ComplexType

template<typename FloatType , class FFTConfig >
using CoulombP3MState< FloatType, FFTConfig >::ComplexType = std::complex<value_type>

Definition at line 65 of file p3m_heffte.hpp.

◆ value_type

template<typename FloatType , class FFTConfig >
using CoulombP3MState< FloatType, FFTConfig >::value_type = FloatType

Definition at line 64 of file p3m_heffte.hpp.

Member Function Documentation

◆ init_labels()

Member Data Documentation

◆ fft

template<typename FloatType , class FFTConfig >
std::shared_ptr<P3MFFT<FloatType, FFTConfig> > CoulombP3MState< FloatType, FFTConfig >::fft

◆ halo_comm

template<typename FloatType , class FFTConfig >
p3m_send_mesh<FloatType> CoulombP3MState< FloatType, FFTConfig >::halo_comm

◆ inter_weights

◆ ks_charge_density

template<typename FloatType , class FFTConfig >
std::vector<ComplexType> CoulombP3MState< FloatType, FFTConfig >::ks_charge_density

charge density in k-space without halo

Definition at line 79 of file p3m_heffte.hpp.

◆ ks_E_fields

template<typename FloatType , class FFTConfig >
std::array<std::vector<ComplexType>, 3> CoulombP3MState< FloatType, FFTConfig >::ks_E_fields

electric fields in k-space without halo

Definition at line 83 of file p3m_heffte.hpp.

◆ rs_charge_density

template<typename FloatType , class FFTConfig >
std::vector<FloatType> CoulombP3MState< FloatType, FFTConfig >::rs_charge_density

◆ rs_charge_density_kokkos

template<typename FloatType , class FFTConfig >
Kokkos::View<FloatType **, Kokkos::LayoutRight, Kokkos::HostSpace> CoulombP3MState< FloatType, FFTConfig >::rs_charge_density_kokkos

◆ rs_E_fields

template<typename FloatType , class FFTConfig >
std::array<std::vector<FloatType>, 3> CoulombP3MState< FloatType, FFTConfig >::rs_E_fields

electric fields in real-space with halo

Definition at line 81 of file p3m_heffte.hpp.

◆ rs_E_fields_no_halo

template<typename FloatType , class FFTConfig >
std::array<std::vector<FloatType>, 3> CoulombP3MState< FloatType, FFTConfig >::rs_E_fields_no_halo

electric fields in real-space without halo

Definition at line 85 of file p3m_heffte.hpp.

◆ square_sum_q

template<typename FloatType , class FFTConfig >
double CoulombP3MState< FloatType, FFTConfig >::square_sum_q = 0.

square of sum of charges.

Definition at line 72 of file p3m_heffte.hpp.

Referenced by CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::count_charged_particles_elc().

◆ sum_q2

◆ sum_qpart


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