ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Parameters for the MMM1D electrostatic interaction. More...
#include <mmm1d.hpp>
Public Member Functions | |
CoulombMMM1D (double prefactor, double maxPWerror, double switch_rad, int tune_timings, bool tune_verbose) | |
Utils::Vector3d | pair_force (double q1q2, Utils::Vector3d const &d, double dist) const |
Compute the pair force. | |
double | pair_energy (double q1q2, Utils::Vector3d const &d, double dist) const |
Compute the pair energy. | |
void | tune () |
bool | is_tuned () const |
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 |
Public Member Functions inherited from Coulomb::Actor< CoulombMMM1D > | |
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 | |
double | maxPWerror |
Maximal allowed pairwise error for the potential and force. | |
double | far_switch_radius |
Far switch radius. | |
int | tune_timings |
bool | tune_verbose |
Public Attributes inherited from Coulomb::Actor< CoulombMMM1D > | |
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< CoulombMMM1D > | |
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 |
CoulombMMM1D::CoulombMMM1D | ( | double | prefactor, |
double | maxPWerror, | ||
double | switch_rad, | ||
int | tune_timings, | ||
bool | tune_verbose | ||
) |
Definition at line 133 of file mmm1d.cpp.
References far_switch_radius, maxPWerror, Coulomb::Actor< CoulombMMM1D >::prefactor, Coulomb::Actor< CoulombMMM1D >::set_prefactor(), Utils::sqr(), and tune_timings.
|
inline |
|
inline |
|
inline |
Definition at line 86 of file mmm1d.hpp.
References sanity_checks(), and tune().
|
inline |
double CoulombMMM1D::pair_energy | ( | double | q1q2, |
Utils::Vector3d const & | d, | ||
double | dist | ||
) | const |
Compute the pair energy.
[in] | q1q2 | Product of the charges on p1 and p2. |
[in] | d | Vector pointing from p1 to p2. |
[in] | dist | Distance between p1 and p2. |
Definition at line 273 of file mmm1d.cpp.
References System::Leaf< Class >::get_system(), K0(), maxPWerror, mod_psi_even(), and Coulomb::Actor< CoulombMMM1D >::prefactor.
Utils::Vector3d CoulombMMM1D::pair_force | ( | double | q1q2, |
Utils::Vector3d const & | d, | ||
double | dist | ||
) | const |
Compute the pair force.
[in] | q1q2 | Product of the charges on p1 and p2. |
[in] | d | Vector pointing from p1 to p2. |
[in] | dist | Distance between p1 and p2. |
Definition at line 182 of file mmm1d.cpp.
References System::Leaf< Class >::get_system(), K0(), K1(), LPK01(), maxPWerror, mod_psi_even(), mod_psi_odd(), and Coulomb::Actor< CoulombMMM1D >::prefactor.
|
inline |
Definition at line 98 of file mmm1d.hpp.
References Coulomb::Actor< CoulombMMM1D >::sanity_checks_charge_neutrality().
Referenced by on_activation().
void CoulombMMM1D::tune | ( | ) |
Definition at line 337 of file mmm1d.cpp.
References benchmark_integration_step(), System::Leaf< Class >::get_system(), is_tuned(), Utils::sqr(), tune_timings, and tune_verbose.
Referenced by on_activation().
double CoulombMMM1D::far_switch_radius |
Far switch radius.
Represents the xy-distance at which the calculation switches from the far to the near formula.
Definition at line 61 of file mmm1d.hpp.
Referenced by CoulombMMM1D().
double CoulombMMM1D::maxPWerror |
Maximal allowed pairwise error for the potential and force.
This error ignores prefactors, i.e. this is for a pure lattice 1/r-sum.
Definition at line 56 of file mmm1d.hpp.
Referenced by CoulombMMM1D(), pair_energy(), and pair_force().
int CoulombMMM1D::tune_timings |
Definition at line 62 of file mmm1d.hpp.
Referenced by CoulombMMM1D(), and tune().