ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
Loading...
Searching...
No Matches
DipolarLayerCorrection Struct Reference

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 Member Functions

 DipolarLayerCorrection (dlc_data &&parameters, BaseSolver &&solver)
 
void on_activation ()
 
void on_boxl_change ()
 Recalculate all box-length-dependent parameters.
 
void on_node_grid_change () const
 
void on_periodicity_change () const
 
void on_cell_structure_change () const
 
void init ()
 
void sanity_checks () const
 
void recalc_box_h ()
 
void recalc_far_cut ()
 
double energy_correction (ParticleRange const &particles) const
 Calculate the dipolar energy correction.
 
void add_force_corrections (ParticleRange const &particles) const
 Add the dipolar force and torque corrections.
 
void adapt_solver ()
 
void release_solver ()
 
- Public Member Functions inherited from Dipoles::Actor< DipolarLayerCorrection >
void set_prefactor (double new_prefactor)
 
- Public Member Functions inherited from System::Leaf< Class >
void bind_system (std::shared_ptr< System > const &system)
 
void detach_system (std::shared_ptr< System > const &system)
 

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< Systemm_system
 

Detailed Description

Adapt a magnetostatics solver to remove contributions from the z-direction.

For details see [8].

Definition at line 78 of file dlc.hpp.

Member Typedef Documentation

◆ BaseSolver

using DipolarLayerCorrection::BaseSolver = std::variant< std::shared_ptr<DipolarP3M>, std::shared_ptr<DipolarDirectSum> >

Definition at line 79 of file dlc.hpp.

Constructor & Destructor Documentation

◆ DipolarLayerCorrection()

DipolarLayerCorrection::DipolarLayerCorrection ( dlc_data &&  parameters,
BaseSolver &&  solver 
)

Definition at line 527 of file dlc.cpp.

References adapt_solver().

Member Function Documentation

◆ adapt_solver()

void DipolarLayerCorrection::adapt_solver ( )

Definition at line 488 of file dlc.cpp.

References base_solver, epsilon, epsilon_correction, and P3M_EPSILON_METALLIC.

Referenced by DipolarLayerCorrection().

◆ add_force_corrections()

void DipolarLayerCorrection::add_force_corrections ( ParticleRange const &  particles) const

◆ energy_correction()

double DipolarLayerCorrection::energy_correction ( ParticleRange const &  particles) const

◆ init()

void DipolarLayerCorrection::init ( )
inline

Definition at line 125 of file dlc.hpp.

References recalc_box_h(), and recalc_far_cut().

◆ on_activation()

void DipolarLayerCorrection::on_activation ( )
inline

Definition at line 98 of file dlc.hpp.

References System::Leaf< Class >::m_system, recalc_box_h(), and recalc_far_cut().

◆ on_boxl_change()

void DipolarLayerCorrection::on_boxl_change ( )
inline

Recalculate all box-length-dependent parameters.

Definition at line 110 of file dlc.hpp.

References recalc_box_h(), and recalc_far_cut().

◆ on_cell_structure_change()

void DipolarLayerCorrection::on_cell_structure_change ( ) const
inline

Definition at line 122 of file dlc.hpp.

◆ on_node_grid_change()

void DipolarLayerCorrection::on_node_grid_change ( ) const
inline

Definition at line 115 of file dlc.hpp.

◆ on_periodicity_change()

void DipolarLayerCorrection::on_periodicity_change ( ) const
inline

Definition at line 119 of file dlc.hpp.

◆ recalc_box_h()

void DipolarLayerCorrection::recalc_box_h ( )

◆ recalc_far_cut()

void DipolarLayerCorrection::recalc_far_cut ( )
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().

◆ release_solver()

void DipolarLayerCorrection::release_solver ( )
inline

Definition at line 150 of file dlc.hpp.

References epsilon, epsilon_correction, and prefactor.

◆ sanity_checks()

void DipolarLayerCorrection::sanity_checks ( ) const
inline

Definition at line 131 of file dlc.hpp.

Member Data Documentation

◆ base_solver

BaseSolver DipolarLayerCorrection::base_solver

Magnetostatics solver that is adapted.

Definition at line 94 of file dlc.hpp.

Referenced by adapt_solver().

◆ dlc

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().

◆ epsilon

double DipolarLayerCorrection::epsilon

◆ epsilon_correction

double DipolarLayerCorrection::epsilon_correction

Definition at line 89 of file dlc.hpp.

Referenced by adapt_solver(), add_force_corrections(), energy_correction(), and release_solver().

◆ prefactor

double DipolarLayerCorrection::prefactor

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