![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Base class for the magnetostatics P3M algorithm. More...
#include <dp3m_heffte.hpp>
Inheritance diagram for DipolarP3MState< FloatType, FFTConfig >:
Collaboration diagram for DipolarP3MState< FloatType, FFTConfig >:Public Types | |
| using | value_type = FloatType |
| using | ComplexType = std::complex< FloatType > |
Public Types inherited from P3MStateCommon< FloatType > | |
| using | value_type = FloatType |
Public Member Functions | |
| 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) |
| void | resize_heffte_buffers () |
| 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_dip_part = 0 | |
| number of dipolar particles. | ||
| double | sum_mu2 = 0. | |
| Sum of square of magnetic dipoles. | ||
| double | pos_shift = 0. | |
| position shift for calculation of first assignment mesh point. | ||
| double | energy_correction = 0. | |
| cached k-space self-energy correction | ||
| std::vector< ComplexType > | ks_scalar | |
| k-space scalar mesh for k-space calculations. | ||
| p3m_interpolation_cache | inter_weights | |
| P3MFFTMesh< FloatType > | mesh | |
| std::unique_ptr< FFTBackend< FloatType > > | fft | |
| FFT algorithm. | ||
| std::unique_ptr< FFTBuffers< FloatType > > | fft_buffers | |
| FFT buffers. | ||
| struct { | ||
| std::array< std::vector< FloatType >, 3u > rs_dipole_density | ||
| dipole density in real-space with halo More... | ||
| std::array< std::vector< ComplexType >, 3u > ks_dipole_density | ||
| dipole density in k-space without halo More... | ||
| std::array< std::vector< FloatType >, 3 > rs_B_fields | ||
| magnetic fields in real-space with halo More... | ||
| std::vector< ComplexType > ks_B_field_storage | ||
| magnetic fields in k-space without halo More... | ||
| std::array< std::vector< FloatType >, 3u > rs_B_fields_no_halo | ||
| magnetic fields in real-space without halo More... | ||
| std::vector< ComplexType > ks_scalar | ||
| k-space workspace without halo More... | ||
| std::vector< FloatType > g_force | ||
| Force optimised influence function (k-space) More... | ||
| std::vector< FloatType > g_energy | ||
| Energy optimised influence function (k-space) More... | ||
| p3m_send_mesh< FloatType > halo_comm | ||
| std::shared_ptr< P3MFFT< FloatType, FFTConfig > > fft | ||
| int world_size | ||
| } | heffte | |
| Kokkos::View< FloatType ***, Kokkos::LayoutRight, Kokkos::HostSpace > | rs_fields_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 magnetostatics P3M algorithm.
Contains a handle to the FFT backend, information about the local mesh, the differential operator, and various buffers.
Definition at line 66 of file dp3m_heffte.hpp.
| using DipolarP3MState< FloatType, FFTConfig >::ComplexType = std::complex<FloatType> |
Definition at line 68 of file dp3m_heffte.hpp.
| using DipolarP3MState< FloatType, FFTConfig >::value_type = FloatType |
Definition at line 67 of file dp3m_heffte.hpp.
|
inline |
Definition at line 144 of file dp3m_heffte.hpp.
References DipolarP3MState< FloatType, FFTConfig >::heffte, DipolarP3MState< FloatType, FFTConfig >::ks_scalar, DipolarP3MState< FloatType, FFTConfig >::rs_fields_kokkos, and stream.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::DipolarP3MHeffte().
|
inline |
Definition at line 105 of file dp3m_heffte.hpp.
References P3MStateCommon< FloatType >::local_mesh, and stream.
|
inline |
Definition at line 110 of file dp3m_heffte.hpp.
References DipolarP3MState< FloatType, FFTConfig >::fft_buffers, P3MStateCommon< FloatType >::local_mesh, and stream.
| void DipolarP3MState< FloatType, FFTConfig >::resize_heffte_buffers | ( | ) |
|
inline |
Definition at line 94 of file dp3m_heffte.hpp.
References DipolarP3MState< FloatType, FFTConfig >::fft_buffers, DipolarP3MState< FloatType, FFTConfig >::mesh, and stream.
| double DipolarP3MState< FloatType, FFTConfig >::energy_correction = 0. |
cached k-space self-energy correction
Definition at line 81 of file dp3m_heffte.hpp.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::calc_energy_correction(), and DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l().
| std::unique_ptr<FFTBackend<FloatType> > DipolarP3MState< FloatType, FFTConfig >::fft |
FFT algorithm.
Definition at line 90 of file dp3m_heffte.hpp.
| std::shared_ptr<P3MFFT<FloatType, FFTConfig> > DipolarP3MState< FloatType, FFTConfig >::fft |
Definition at line 134 of file dp3m_heffte.hpp.
| std::unique_ptr<FFTBuffers<FloatType> > DipolarP3MState< FloatType, FFTConfig >::fft_buffers |
FFT buffers.
Definition at line 92 of file dp3m_heffte.hpp.
Referenced by DipolarP3MState< FloatType, FFTConfig >::make_mesh_instance(), and DipolarP3MState< FloatType, FFTConfig >::update_mesh_views().
| std::vector<FloatType> DipolarP3MState< FloatType, FFTConfig >::g_energy |
Energy optimised influence function (k-space)
Definition at line 132 of file dp3m_heffte.hpp.
| std::vector<FloatType> DipolarP3MState< FloatType, FFTConfig >::g_force |
Force optimised influence function (k-space)
Definition at line 130 of file dp3m_heffte.hpp.
| p3m_send_mesh<FloatType> DipolarP3MState< FloatType, FFTConfig >::halo_comm |
Definition at line 133 of file dp3m_heffte.hpp.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l().
| struct { ... } DipolarP3MState< FloatType, FFTConfig >::heffte |
| p3m_interpolation_cache DipolarP3MState< FloatType, FFTConfig >::inter_weights |
Definition at line 85 of file dp3m_heffte.hpp.
Referenced by anonymous_namespace{dp3m_heffte.impl.hpp}::AssignDipole< cao >::operator()().
| std::vector<ComplexType> DipolarP3MState< FloatType, FFTConfig >::ks_B_field_storage |
magnetic fields in k-space without halo
Definition at line 124 of file dp3m_heffte.hpp.
| std::array<std::vector<ComplexType>, 3u> DipolarP3MState< FloatType, FFTConfig >::ks_dipole_density |
dipole density in k-space without halo
Definition at line 120 of file dp3m_heffte.hpp.
| std::vector<ComplexType> DipolarP3MState< FloatType, FFTConfig >::ks_scalar |
k-space scalar mesh for k-space calculations.
k-space workspace without halo
Definition at line 83 of file dp3m_heffte.hpp.
Referenced by DipolarP3MState< FloatType, FFTConfig >::init_labels().
| P3MFFTMesh<FloatType> DipolarP3MState< FloatType, FFTConfig >::mesh |
Definition at line 87 of file dp3m_heffte.hpp.
Referenced by DipolarP3MState< FloatType, FFTConfig >::update_mesh_views().
| double DipolarP3MState< FloatType, FFTConfig >::pos_shift = 0. |
position shift for calculation of first assignment mesh point.
Definition at line 78 of file dp3m_heffte.hpp.
| std::array<std::vector<FloatType>, 3> DipolarP3MState< FloatType, FFTConfig >::rs_B_fields |
magnetic fields in real-space with halo
Definition at line 122 of file dp3m_heffte.hpp.
| std::array<std::vector<FloatType>, 3u> DipolarP3MState< FloatType, FFTConfig >::rs_B_fields_no_halo |
magnetic fields in real-space without halo
Definition at line 126 of file dp3m_heffte.hpp.
| std::array<std::vector<FloatType>, 3u> DipolarP3MState< FloatType, FFTConfig >::rs_dipole_density |
dipole density in real-space with halo
Definition at line 118 of file dp3m_heffte.hpp.
| Kokkos::View<FloatType ***, Kokkos::LayoutRight, Kokkos::HostSpace> DipolarP3MState< FloatType, FFTConfig >::rs_fields_kokkos |
Definition at line 142 of file dp3m_heffte.hpp.
Referenced by DipolarP3MState< FloatType, FFTConfig >::init_labels().
| std::size_t DipolarP3MState< FloatType, FFTConfig >::sum_dip_part = 0 |
number of dipolar particles.
Definition at line 73 of file dp3m_heffte.hpp.
Referenced by DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::determine_mesh_limits(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger(), and DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::tune().
| double DipolarP3MState< FloatType, FFTConfig >::sum_mu2 = 0. |
Sum of square of magnetic dipoles.
Definition at line 75 of file dp3m_heffte.hpp.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::calc_energy_correction(), DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::calculate_accuracy(), and DipolarTuningAlgorithm< FloatType, Architecture, FFTConfig >::setup_logger().
| int DipolarP3MState< FloatType, FFTConfig >::world_size |
Definition at line 135 of file dp3m_heffte.hpp.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::scaleby_box_l().