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

#include <solver.hpp>

+ Collaboration diagram for Coulomb::Solver:

Classes

struct  Implementation
 

Public Types

using ShortRangeForceKernel = std::function< Utils::Vector3d(double, Utils::Vector3d const &, double)>
 
using ShortRangeForceCorrectionsKernel = std::function< void(Particle &, Particle &, double)>
 
using ShortRangePressureKernel = std::function< Utils::Matrix< double, 3, 3 >(double, Utils::Vector3d const &, double)>
 
using ShortRangeEnergyKernel = std::function< double(Particle const &, Particle const &, double, Utils::Vector3d const &, double)>
 

Public Member Functions

Utils::Vector9d calc_pressure_long_range (ParticleRange const &particles) const
 
void sanity_checks () const
 
double cutoff () const
 
void on_observable_calc ()
 
void on_coulomb_change ()
 
void on_boxl_change ()
 
void on_node_grid_change ()
 
void on_periodicity_change ()
 
void on_cell_structure_change ()
 
void on_particle_change ()
 
void calc_long_range_force (ParticleRange const &particles) const
 
double calc_energy_long_range (ParticleRange const &particles) const
 
 Solver ()
 
std::optional< ShortRangeForceKernelpair_force_kernel () const
 
std::optional< ShortRangePressureKernelpair_pressure_kernel () const
 
std::optional< ShortRangeEnergyKernelpair_energy_kernel () const
 
std::optional< ShortRangeForceCorrectionsKernelpair_force_elc_kernel () const
 

Public Attributes

std::unique_ptr< Implementationimpl
 Pointer-to-implementation.
 
bool reinit_on_observable_calc
 Whether to reinitialize the solver on observable calculation.
 

Detailed Description

Definition at line 39 of file electrostatics/solver.hpp.

Member Typedef Documentation

◆ ShortRangeEnergyKernel

using Coulomb::Solver::ShortRangeEnergyKernel = std::function<double(Particle const &, Particle const &, double, Utils::Vector3d const &, double)>

Definition at line 74 of file electrostatics/solver.hpp.

◆ ShortRangeForceCorrectionsKernel

using Coulomb::Solver::ShortRangeForceCorrectionsKernel = std::function<void(Particle &, Particle &, double)>

Definition at line 70 of file electrostatics/solver.hpp.

◆ ShortRangeForceKernel

using Coulomb::Solver::ShortRangeForceKernel = std::function<Utils::Vector3d(double, Utils::Vector3d const &, double)>

Definition at line 68 of file electrostatics/solver.hpp.

◆ ShortRangePressureKernel

using Coulomb::Solver::ShortRangePressureKernel = std::function<Utils::Matrix<double, 3, 3>( double, Utils::Vector3d const &, double)>

Definition at line 72 of file electrostatics/solver.hpp.

Constructor & Destructor Documentation

◆ Solver()

Coulomb::Solver::Solver ( )

Definition at line 61 of file coulomb.cpp.

References impl, and reinit_on_observable_calc.

Member Function Documentation

◆ calc_energy_long_range()

double Coulomb::Solver::calc_energy_long_range ( ParticleRange const &  particles) const

Definition at line 262 of file coulomb.cpp.

References impl.

◆ calc_long_range_force()

void Coulomb::Solver::calc_long_range_force ( ParticleRange const &  particles) const

Definition at line 256 of file coulomb.cpp.

References impl.

Referenced by calc_long_range_forces().

◆ calc_pressure_long_range()

Utils::Vector9d Coulomb::Solver::calc_pressure_long_range ( ParticleRange const &  particles) const

Definition at line 138 of file coulomb.cpp.

References impl.

◆ cutoff()

double Coulomb::Solver::cutoff ( ) const

Definition at line 172 of file coulomb.cpp.

References impl.

◆ on_boxl_change()

void Coulomb::Solver::on_boxl_change ( )

Definition at line 81 of file coulomb.cpp.

References impl, and visit_try_catch().

◆ on_cell_structure_change()

void Coulomb::Solver::on_cell_structure_change ( )

Definition at line 100 of file coulomb.cpp.

References impl, and visit_try_catch().

◆ on_coulomb_change()

void Coulomb::Solver::on_coulomb_change ( )

Definition at line 74 of file coulomb.cpp.

References impl, reinit_on_observable_calc, and visit_try_catch().

◆ on_node_grid_change()

void Coulomb::Solver::on_node_grid_change ( )

Definition at line 87 of file coulomb.cpp.

References impl.

◆ on_observable_calc()

void Coulomb::Solver::on_observable_calc ( )

Definition at line 193 of file coulomb.cpp.

References impl, and reinit_on_observable_calc.

◆ on_particle_change()

void Coulomb::Solver::on_particle_change ( )
inline

Definition at line 59 of file electrostatics/solver.hpp.

References reinit_on_observable_calc.

◆ on_periodicity_change()

void Coulomb::Solver::on_periodicity_change ( )

Definition at line 93 of file coulomb.cpp.

References impl, and visit_try_catch().

◆ pair_energy_kernel()

std::optional< Solver::ShortRangeEnergyKernel > Coulomb::Solver::pair_energy_kernel ( ) const
inline

Definition at line 185 of file coulomb_inline.hpp.

References impl.

Referenced by PairCriteria::EnergyCriterion::decide().

◆ pair_force_elc_kernel()

std::optional< Solver::ShortRangeForceCorrectionsKernel > Coulomb::Solver::pair_force_elc_kernel ( ) const
inline

Definition at line 163 of file coulomb_inline.hpp.

References impl.

◆ pair_force_kernel()

std::optional< Solver::ShortRangeForceKernel > Coulomb::Solver::pair_force_kernel ( ) const
inline

Definition at line 152 of file coulomb_inline.hpp.

References impl.

◆ pair_pressure_kernel()

std::optional< Solver::ShortRangePressureKernel > Coulomb::Solver::pair_pressure_kernel ( ) const
inline

Definition at line 174 of file coulomb_inline.hpp.

References impl.

◆ sanity_checks()

void Coulomb::Solver::sanity_checks ( ) const

Definition at line 68 of file coulomb.cpp.

References impl.

Member Data Documentation

◆ impl

◆ reinit_on_observable_calc

bool Coulomb::Solver::reinit_on_observable_calc

Whether to reinitialize the solver on observable calculation.

Definition at line 45 of file electrostatics/solver.hpp.

Referenced by on_coulomb_change(), on_observable_calc(), on_particle_change(), and Solver().


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