![]() |
ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <elc.hpp>
Inheritance diagram for ElectrostaticLayerCorrection:
Collaboration diagram for ElectrostaticLayerCorrection: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. | |
| Utils::Vector3d | pair_force (double q1q2, Utils::Vector3d const &d, double dist) const |
| double | pair_energy_correction (std::size_t p1, std::size_t p2, auto &aosoa, double q1q2) const |
| Calculate short-range pair energy correction. | |
| double | pair_energy_correction (Utils::Vector3d const &pos1, Utils::Vector3d const &pos2, double q1q2) const |
| Calculate short-range pair energy correction. | |
| void | add_pair_force_corrections (Utils::Vector3d const &pos1, Utils::Vector3d const &pos2, Utils::Vector3d &p1f_asym, Utils::Vector3d &p2f_asym, double q1q2) const |
| Add short-range pair force corrections. | |
| double | long_range_energy () const |
| Calculate long-range electrostatic energy with corrections. | |
| void | add_long_range_forces () const |
| Accumulate long-range electrostatic forces with corrections. | |
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 | ( | ) | const |
Accumulate long-range electrostatic forces with corrections.
Definition at line 1252 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 339 of file elc.hpp.
References base_solver, elc_data::dielectric_contrast_on, elc_data::dielectric_layers_contribution(), elc, m_box_geo, and Utils::Vector< T, N >::norm().
|
inline |
| double ElectrostaticLayerCorrection::long_range_energy | ( | ) | const |
Calculate long-range electrostatic energy with corrections.
Definition at line 1209 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 203 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 238 of file elc.hpp.
References elc_data::dielectric_contrast_on, and elc.
|
inline |
|
inline |
|
inline |
Calculate short-range pair energy correction.
Definition at line 285 of file elc.hpp.
References base_solver, elc_data::dielectric_contrast_on, elc_data::dielectric_layers_contribution(), elc, m_box_geo, and Utils::Vector< T, N >::norm().
|
inline |
Calculate short-range pair energy correction.
Definition at line 312 of file elc.hpp.
References base_solver, elc_data::dielectric_contrast_on, elc_data::dielectric_layers_contribution(), elc, m_box_geo, and Utils::Vector< T, N >::norm().
|
inline |
Definition at line 276 of file elc.hpp.
References base_solver.
|
inline |
Definition at line 256 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 269 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 199 of file elc.hpp.
Referenced by add_long_range_forces(), add_pair_force_corrections(), long_range_energy(), pair_energy_correction(), pair_energy_correction(), and pair_force().
| elc_data ElectrostaticLayerCorrection::elc |
Definition at line 195 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(), pair_energy_correction(), and veto_r_cut().
| BoxGeometry* ElectrostaticLayerCorrection::m_box_geo |
Definition at line 196 of file elc.hpp.
Referenced by add_pair_force_corrections(), pair_energy_correction(), and pair_energy_correction().