![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Adapt a magnetostatics solver to remove contributions from the z-direction. More...
#include <dlc.hpp>
Inheritance diagram for DipolarLayerCorrection:
Collaboration diagram for DipolarLayerCorrection:Public Types | |
| using | BaseSolver = std::variant< std::shared_ptr< DipolarP3M >, std::shared_ptr< DipolarDirectSum > > |
Public Attributes | |
| dlc_data | dlc |
| BaseSolver | base_solver |
| Magnetostatics solver that is adapted. | |
Variables from the adapted solver. | |
| double | prefactor |
| double | epsilon |
| double | epsilon_correction |
Public Attributes inherited from Dipoles::Actor< DipolarLayerCorrection > | |
| double | prefactor |
| Magnetostatics prefactor. | |
Additional Inherited Members | |
Protected Member Functions inherited from System::Leaf< Class > | |
| auto & | get_system () |
| auto & | get_system () const |
Protected Attributes inherited from System::Leaf< Class > | |
| std::weak_ptr< System > | m_system |
Adapt a magnetostatics solver to remove contributions from the z-direction.
For details see [9].
| using DipolarLayerCorrection::BaseSolver = std::variant< std::shared_ptr<DipolarP3M>, std::shared_ptr<DipolarDirectSum> > |
| DipolarLayerCorrection::DipolarLayerCorrection | ( | dlc_data && | parameters, |
| BaseSolver && | solver | ||
| ) |
Definition at line 529 of file dlc.cpp.
References adapt_solver().
| void DipolarLayerCorrection::adapt_solver | ( | ) |
Definition at line 490 of file dlc.cpp.
References base_solver, epsilon, epsilon_correction, P3M_EPSILON_METALLIC, and stream.
Referenced by DipolarLayerCorrection().
| void DipolarLayerCorrection::add_force_corrections | ( | ) | const |
Add the dipolar force and torque corrections.
Definition at line 304 of file dlc.cpp.
References Particle::calc_dip(), calc_slab_dipole(), Particle::dipm(), dipolar_force_corrections(), dlc, epsilon, epsilon_correction, dlc_data::far_cut, Particle::force(), System::Leaf< Class >::get_system(), P3M_EPSILON_METALLIC, prefactor, ParticleRange::size(), stream, Particle::torque(), and vector_product().
Referenced by add_long_range_forces().
| void DipolarLayerCorrection::add_long_range_forces | ( | ) | const |
Accumulate long-range dipolar forces with corrections.
Definition at line 535 of file dlc.cpp.
References add_force_corrections(), and base_solver.
| double DipolarLayerCorrection::energy_correction | ( | ) | const |
Calculate the dipolar energy correction.
Definition at line 357 of file dlc.cpp.
References calc_slab_dipole(), dipolar_energy_correction(), dlc, epsilon, epsilon_correction, dlc_data::far_cut, System::Leaf< Class >::get_system(), P3M_EPSILON_METALLIC, prefactor, Utils::sqr(), stream, and this_node.
Referenced by long_range_energy().
|
inline |
Definition at line 125 of file dlc.hpp.
References recalc_box_h(), and recalc_far_cut().
| double DipolarLayerCorrection::long_range_energy | ( | ) | const |
Calculate long-range dipolar energy with corrections.
Definition at line 541 of file dlc.cpp.
References base_solver, and energy_correction().
|
inline |
Definition at line 98 of file dlc.hpp.
References System::Leaf< Class >::m_system, recalc_box_h(), and recalc_far_cut().
|
inline |
Recalculate all box-length-dependent parameters.
Definition at line 110 of file dlc.hpp.
References recalc_box_h(), and recalc_far_cut().
|
inline |
|
inline |
|
inline |
| void DipolarLayerCorrection::recalc_box_h | ( | ) |
Definition at line 518 of file dlc.cpp.
References dlc_data::box_h, dlc, dlc_data::gap_size, System::Leaf< Class >::get_system(), and stream.
Referenced by init(), on_activation(), and on_boxl_change().
|
inline |
Definition at line 137 of file dlc.hpp.
References dlc, dlc_data::far_calculated, and dlc_data::far_cut.
Referenced by init(), on_activation(), and on_boxl_change().
|
inline |
Definition at line 154 of file dlc.hpp.
References epsilon, epsilon_correction, and prefactor.
| BaseSolver DipolarLayerCorrection::base_solver |
Magnetostatics solver that is adapted.
Definition at line 94 of file dlc.hpp.
Referenced by adapt_solver(), add_long_range_forces(), and long_range_energy().
| dlc_data DipolarLayerCorrection::dlc |
Definition at line 91 of file dlc.hpp.
Referenced by add_force_corrections(), energy_correction(), recalc_box_h(), and recalc_far_cut().
| double DipolarLayerCorrection::epsilon |
Definition at line 88 of file dlc.hpp.
Referenced by adapt_solver(), add_force_corrections(), energy_correction(), AdaptSolver::operator()(), AdaptSolver::operator()(), and release_solver().
| double DipolarLayerCorrection::epsilon_correction |
Definition at line 89 of file dlc.hpp.
Referenced by adapt_solver(), add_force_corrections(), energy_correction(), and release_solver().
| double DipolarLayerCorrection::prefactor |
Definition at line 87 of file dlc.hpp.
Referenced by add_force_corrections(), energy_correction(), AdaptSolver::operator()(), AdaptSolver::operator()(), and release_solver().