![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
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 &¶meters) | |
| 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< ComplexType > | ks_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) | |
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.
| using CoulombP3MState< FloatType, FFTConfig >::ComplexType = std::complex<value_type> |
Definition at line 65 of file p3m_heffte.hpp.
| using CoulombP3MState< FloatType, FFTConfig >::value_type = FloatType |
Definition at line 64 of file p3m_heffte.hpp.
|
inline |
Definition at line 92 of file p3m_heffte.hpp.
References CoulombP3MState< FloatType, FFTConfig >::rs_charge_density, CoulombP3MState< FloatType, FFTConfig >::rs_charge_density_kokkos, and stream.
Referenced by CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::CoulombP3MHeffte().
| std::shared_ptr<P3MFFT<FloatType, FFTConfig> > CoulombP3MState< FloatType, FFTConfig >::fft |
Definition at line 87 of file p3m_heffte.hpp.
Referenced by CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::fft_decomposition_veto().
| p3m_send_mesh<FloatType> CoulombP3MState< FloatType, FFTConfig >::halo_comm |
Definition at line 86 of file p3m_heffte.hpp.
Referenced by CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l().
| p3m_interpolation_cache CoulombP3MState< FloatType, FFTConfig >::inter_weights |
Definition at line 74 of file p3m_heffte.hpp.
Referenced by anonymous_namespace{p3m_heffte.impl.hpp}::AssignCharge< cao >::operator()(), and CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::prepare_fft_mesh().
| 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.
| 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.
| std::vector<FloatType> CoulombP3MState< FloatType, FFTConfig >::rs_charge_density |
charge density in real-space with halo
Definition at line 77 of file p3m_heffte.hpp.
Referenced by CoulombP3MState< FloatType, FFTConfig >::init_labels(), and CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::prepare_fft_mesh().
| Kokkos::View<FloatType **, Kokkos::LayoutRight, Kokkos::HostSpace> CoulombP3MState< FloatType, FFTConfig >::rs_charge_density_kokkos |
Definition at line 90 of file p3m_heffte.hpp.
Referenced by CoulombP3MState< FloatType, FFTConfig >::init_labels(), and CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::prepare_fft_mesh().
| 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.
| 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.
| 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().
| double CoulombP3MState< FloatType, FFTConfig >::sum_q2 = 0. |
Sum of square of charges.
Definition at line 70 of file p3m_heffte.hpp.
Referenced by CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::count_charged_particles_elc(), and CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger().
| std::size_t CoulombP3MState< FloatType, FFTConfig >::sum_qpart = 0 |
number of charged particles.
Definition at line 68 of file p3m_heffte.hpp.
Referenced by CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::count_charged_particles_elc(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::determine_mesh_limits(), CoulombTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger(), and CoulombP3MHeffte< FloatType, Architecture, FFTConfig >::tune().