ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <elc.hpp>
Public Types | |
using | BaseSolver = std::variant< std::shared_ptr< CoulombP3M > > |
Public Member Functions | |
ElectrostaticLayerCorrection (elc_data &¶meters, 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 () |
void | init () |
Recalculate all derived parameters. | |
void | sanity_checks () const |
std::optional< std::string > | veto_r_cut (double r_cut) const |
Veto real-space cutoff values that are incompatible with ELC. | |
double | pair_energy_correction (Particle const &p1, Particle const &p2, double q1q2) const |
Calculate short-range pair energy correction. | |
void | add_pair_force_corrections (Particle &p1, Particle &p2, double q1q2) const |
Add short-range pair force corrections. | |
double | long_range_energy (ParticleRange const &particles) const |
void | add_long_range_forces (ParticleRange const &particles) const |
Public Member Functions inherited from Coulomb::Actor< ElectrostaticLayerCorrection > | |
void | set_prefactor (double new_prefactor) |
void | sanity_checks_charge_neutrality () const |
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 | |
elc_data | elc |
BoxGeometry * | m_box_geo |
BaseSolver | base_solver |
Electrostatics solver that is adapted. | |
Public Attributes inherited from Coulomb::Actor< ElectrostaticLayerCorrection > | |
double | prefactor |
Electrostatics prefactor. | |
double | charge_neutrality_tolerance |
Relative tolerance for the charge excess during neutrality checks. | |
Additional Inherited Members | |
Static Public Attributes inherited from Coulomb::Actor< ElectrostaticLayerCorrection > | |
static auto constexpr | charge_neutrality_tolerance_default |
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 |
using ElectrostaticLayerCorrection::BaseSolver = std::variant<std::shared_ptr<CoulombP3M> > |
ElectrostaticLayerCorrection::ElectrostaticLayerCorrection | ( | elc_data && | parameters, |
BaseSolver && | solver | ||
) |
void ElectrostaticLayerCorrection::add_long_range_forces | ( | ParticleRange const & | particles | ) | const |
Definition at line 1231 of file elc.cpp.
References base_solver, ParticlePropertyRange::charge_range(), elc_data::dielectric_contrast_on, elc_data::dielectric_layers_self_forces(), elc, System::Leaf< Class >::get_system(), and ParticlePropertyRange::pos_range().
|
inline |
Add short-range pair force corrections.
Definition at line 281 of file elc.hpp.
References base_solver, elc_data::dielectric_contrast_on, elc_data::dielectric_layers_contribution(), elc, Particle::force(), m_box_geo, Utils::Vector< T, N >::norm(), and Particle::pos().
|
inline |
double ElectrostaticLayerCorrection::long_range_energy | ( | ParticleRange const & | particles | ) | const |
Definition at line 1189 of file elc.cpp.
References base_solver, ParticlePropertyRange::charge_range(), elc_data::dielectric_contrast_on, elc_data::dielectric_layers_self_energy(), elc, System::Leaf< Class >::get_system(), and ParticlePropertyRange::pos_range().
|
inline |
Definition at line 179 of file elc.hpp.
References elc_data::dielectric_contrast_on, elc, System::Leaf< Class >::m_system, and Coulomb::Actor< ElectrostaticLayerCorrection >::sanity_checks_charge_neutrality().
|
inline |
|
inline |
Definition at line 214 of file elc.hpp.
References elc_data::dielectric_contrast_on, and elc.
|
inline |
|
inline |
|
inline |
Calculate short-range pair energy correction.
Definition at line 253 of file elc.hpp.
References base_solver, elc_data::dielectric_contrast_on, elc_data::dielectric_layers_contribution(), elc, m_box_geo, Utils::Vector< T, N >::norm(), and Particle::pos().
|
inline |
Definition at line 232 of file elc.hpp.
References Coulomb::Actor< ElectrostaticLayerCorrection >::sanity_checks_charge_neutrality().
|
inline |
Veto real-space cutoff values that are incompatible with ELC.
When ELC is used with dielectric contrasts, the short-range cutoff needs to be smaller than the gap size to allow placement of the image charges.
Definition at line 245 of file elc.hpp.
References elc_data::dielectric_contrast_on, elc, and elc_data::gap_size.
BaseSolver ElectrostaticLayerCorrection::base_solver |
Electrostatics solver that is adapted.
Definition at line 175 of file elc.hpp.
Referenced by add_long_range_forces(), add_pair_force_corrections(), long_range_energy(), and pair_energy_correction().
elc_data ElectrostaticLayerCorrection::elc |
Definition at line 171 of file elc.hpp.
Referenced by add_long_range_forces(), add_pair_force_corrections(), long_range_energy(), on_activation(), on_cell_structure_change(), pair_energy_correction(), and veto_r_cut().
BoxGeometry* ElectrostaticLayerCorrection::m_box_geo |
Definition at line 172 of file elc.hpp.
Referenced by add_pair_force_corrections(), and pair_energy_correction().