![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <dp3m_heffte.hpp>
Inheritance diagram for DipolarP3MHeffte< FloatType, Architecture, FFTConfig >:
Collaboration diagram for DipolarP3MHeffte< FloatType, Architecture, FFTConfig >:Public Types | |
| using | DipolarP3MStateClass = DipolarP3MState< FloatType, FFTConfig > |
Public Attributes | |
| DipolarP3MStateClass & | dp3m |
| Dipolar P3M parameters. | |
Public Attributes inherited from DipolarP3M | |
| P3MParameters const & | dp3m_params |
Public Attributes inherited from Dipoles::Actor< DipolarP3M > | |
| double | prefactor |
| Magnetostatics prefactor. | |
Protected Member Functions | |
| double | long_range_kernel (bool force_flag, bool energy_flag, ParticleRange const &particles) |
| Compute the k-space part of forces and energies. | |
| double | calc_average_self_energy_k_space () const override |
| void | calc_energy_correction () override |
| void | calc_influence_function_force () override |
| void | calc_influence_function_energy () override |
| double | calc_surface_term (bool force_flag, bool energy_flag, ParticleRange const &particles) override |
| void | init_cpu_kernels () |
| void | scaleby_box_l () override |
| void | npt_add_virial_contribution (double energy) const override |
Protected Member Functions inherited from DipolarP3M | |
| void | sanity_checks_boxl () const |
| Checks for correctness of the k-space cutoff. | |
| void | sanity_checks_node_grid () const |
| void | sanity_checks_periodicity () const |
| void | sanity_checks_cell_structure () const |
Protected Member Functions inherited from System::Leaf< Class > | |
| auto & | get_system () |
| auto & | get_system () const |
Additional Inherited Members | |
Protected Attributes inherited from System::Leaf< Class > | |
| std::weak_ptr< System > | m_system |
Definition at line 158 of file dp3m_heffte.hpp.
| using DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::DipolarP3MStateClass = DipolarP3MState<FloatType, FFTConfig> |
Definition at line 165 of file dp3m_heffte.hpp.
|
overridedefault |
|
inline |
Definition at line 180 of file dp3m_heffte.hpp.
References Utils::Vector< T, N >::broadcast(), DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::dp3m, DipolarP3MState< FloatType, FFTConfig >::init_labels(), P3MParameters::mesh, P3MStateCommon< FloatType >::params, Dipoles::Actor< DipolarP3M >::prefactor, Dipoles::Actor< DipolarP3M >::set_prefactor(), stream, TuningParameters::timings, and P3MParameters::tuning.
|
inlineoverridevirtual |
Implements DipolarP3M.
Definition at line 227 of file dp3m_heffte.hpp.
References CPU, DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::long_range_kernel(), and stream.
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 133 of file dp3m_heffte.impl.hpp.
References System::System::box_geo, comm_cart, and stream.
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 1421 of file dp3m_heffte.impl.hpp.
References P3MParameters::alpha_L, System::System::box_geo, DipolarP3MState< FloatType, FFTConfig >::energy_correction, P3MStateCommon< FloatType >::params, stream, and DipolarP3MState< FloatType, FFTConfig >::sum_mu2.
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 1019 of file dp3m_heffte.impl.hpp.
References System::System::box_geo, grid_influence_function_dipolar(), P3M_BRILLOUIN, and stream.
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 994 of file dp3m_heffte.impl.hpp.
References System::System::box_geo, grid_influence_function_dipolar(), P3M_BRILLOUIN, and stream.
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 925 of file dp3m_heffte.impl.hpp.
References System::System::box_geo, comm_cart, ParticleRange::size(), and stream.
|
overridevirtual |
Implements DipolarP3M.
Definition at line 101 of file dp3m_heffte.impl.hpp.
References System::System::cell_structure, comm_cart, and stream.
|
overridevirtual |
Implements DipolarP3M.
Definition at line 255 of file dp3m_heffte.impl.hpp.
|
inlineoverridevirtual |
Implements DipolarP3M.
Definition at line 202 of file dp3m_heffte.hpp.
References CPU, DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::init_cpu_kernels(), and stream.
|
protected |
Definition at line 146 of file dp3m_heffte.impl.hpp.
References Utils::Vector< T, N >::broadcast(), comm_cart, communicator, count_magnetic_particles(), Communicator::node_grid, p3m_max_cao, p3m_min_cao, and stream.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::init().
|
inlineoverridevirtualnoexcept |
Implements DipolarP3M.
Definition at line 214 of file dp3m_heffte.hpp.
|
inlineoverridevirtualnoexcept |
|
inlineoverridevirtualnoexcept |
Implements DipolarP3M.
Definition at line 210 of file dp3m_heffte.hpp.
|
inlineoverridevirtual |
Implements DipolarP3M.
Definition at line 223 of file dp3m_heffte.hpp.
References DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::long_range_kernel().
|
protected |
Compute the k-space part of forces and energies.
Definition at line 408 of file dp3m_heffte.impl.hpp.
References Utils::Vector< T, N >::broadcast(), comm_cart, extract_block(), for_each_3d(), Utils::integral_parameter(), p3m_max_cao, p3m_min_cao, pad_with_zeros_discard_imag(), Utils::product(), Utils::ROW_MAJOR, Utils::sqr(), stream, and this_node.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::add_long_range_forces(), and DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::long_range_energy().
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 1433 of file dp3m_heffte.impl.hpp.
References System::System::npt_add_virial_contribution().
|
inlineoverridevirtual |
Implements DipolarP3M.
Definition at line 218 of file dp3m_heffte.hpp.
References DipolarP3M::sanity_checks(), and DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::tune().
|
overrideprotectedvirtual |
Implements DipolarP3M.
Definition at line 1402 of file dp3m_heffte.impl.hpp.
References P3MParameters::alpha, P3MParameters::alpha_L, System::System::box_geo, comm_cart, DipolarP3MState< FloatType, FFTConfig >::energy_correction, DipolarP3MState< FloatType, FFTConfig >::halo_comm, DipolarP3MState< FloatType, FFTConfig >::heffte, P3MStateCommon< FloatType >::local_mesh, P3MStateCommon< FloatType >::params, P3MParameters::r_cut, P3MParameters::r_cut_iL, P3MParameters::recalc_a_ai_cao_cut(), P3MLocalMesh::recalc_ld_pos(), and DipolarP3MState< FloatType, FFTConfig >::world_size.
|
overridevirtual |
Implements DipolarP3M.
Definition at line 1166 of file dp3m_heffte.impl.hpp.
References P3MParameters::alpha, P3MParameters::alpha_L, count_magnetic_particles(), P3MStateCommon< FloatType >::params, P3MParameters::r_cut, P3MParameters::r_cut_iL, stream, DipolarP3MState< FloatType, FFTConfig >::sum_dip_part, and P3MParameters::tuning.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::on_activation().
| DipolarP3MStateClass& DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::dp3m |
Dipolar P3M parameters.
Definition at line 167 of file dp3m_heffte.hpp.
Referenced by DipolarP3MHeffte< FloatType, Architecture, FFTConfig >::DipolarP3MHeffte().