ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
#include <solver.hpp>
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< ShortRangeForceKernel > | pair_force_kernel () const |
std::optional< ShortRangePressureKernel > | pair_pressure_kernel () const |
std::optional< ShortRangeEnergyKernel > | pair_energy_kernel () const |
std::optional< ShortRangeForceCorrectionsKernel > | pair_force_elc_kernel () const |
Public Attributes | |
std::unique_ptr< Implementation > | impl |
Pointer-to-implementation. | |
bool | reinit_on_observable_calc |
Whether to reinitialize the solver on observable calculation. | |
Definition at line 39 of file electrostatics/solver.hpp.
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.
using Coulomb::Solver::ShortRangeForceCorrectionsKernel = std::function<void(Particle &, Particle &, double)> |
Definition at line 70 of file electrostatics/solver.hpp.
using Coulomb::Solver::ShortRangeForceKernel = std::function<Utils::Vector3d(double, Utils::Vector3d const &, double)> |
Definition at line 68 of file electrostatics/solver.hpp.
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.
Coulomb::Solver::Solver | ( | ) |
Definition at line 61 of file coulomb.cpp.
References impl, and reinit_on_observable_calc.
double Coulomb::Solver::calc_energy_long_range | ( | ParticleRange const & | particles | ) | const |
Definition at line 262 of file coulomb.cpp.
References impl.
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().
Utils::Vector9d Coulomb::Solver::calc_pressure_long_range | ( | ParticleRange const & | particles | ) | const |
Definition at line 138 of file coulomb.cpp.
References impl.
double Coulomb::Solver::cutoff | ( | ) | const |
Definition at line 172 of file coulomb.cpp.
References impl.
void Coulomb::Solver::on_boxl_change | ( | ) |
Definition at line 81 of file coulomb.cpp.
References impl, and visit_try_catch().
void Coulomb::Solver::on_cell_structure_change | ( | ) |
Definition at line 100 of file coulomb.cpp.
References impl, and visit_try_catch().
void Coulomb::Solver::on_coulomb_change | ( | ) |
Definition at line 74 of file coulomb.cpp.
References impl, reinit_on_observable_calc, and visit_try_catch().
void Coulomb::Solver::on_node_grid_change | ( | ) |
Definition at line 87 of file coulomb.cpp.
References impl.
void Coulomb::Solver::on_observable_calc | ( | ) |
Definition at line 193 of file coulomb.cpp.
References impl, and reinit_on_observable_calc.
|
inline |
Definition at line 59 of file electrostatics/solver.hpp.
References reinit_on_observable_calc.
void Coulomb::Solver::on_periodicity_change | ( | ) |
Definition at line 93 of file coulomb.cpp.
References impl, and visit_try_catch().
|
inline |
Definition at line 185 of file coulomb_inline.hpp.
References impl.
Referenced by PairCriteria::EnergyCriterion::decide().
|
inline |
Definition at line 163 of file coulomb_inline.hpp.
References impl.
|
inline |
Definition at line 152 of file coulomb_inline.hpp.
References impl.
|
inline |
Definition at line 174 of file coulomb_inline.hpp.
References impl.
void Coulomb::Solver::sanity_checks | ( | ) | const |
Definition at line 68 of file coulomb.cpp.
References impl.
std::unique_ptr<Implementation> Coulomb::Solver::impl |
Pointer-to-implementation.
Definition at line 43 of file electrostatics/solver.hpp.
Referenced by calc_energy_long_range(), calc_long_range_force(), calc_pressure_long_range(), cutoff(), CoulombP3MImpl< FloatType, Architecture >::init_gpu_kernels(), CoulombTuningAlgorithm< FloatType, Architecture >::layer_correction_veto_r_cut(), on_boxl_change(), on_cell_structure_change(), on_coulomb_change(), on_node_grid_change(), on_observable_calc(), on_periodicity_change(), pair_energy_kernel(), pair_force_elc_kernel(), pair_force_kernel(), pair_pressure_kernel(), sanity_checks(), and Solver().
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().