ESPResSo
Extensible Simulation Package for Research on Soft Matter Systems
|
Structure to hold P3M parameters and some dependent variables. More...
#include <common.hpp>
Public Member Functions | |
P3MParameters (bool tuning, double epsilon, double r_cut, Utils::Vector3i const &mesh, Utils::Vector3d const &mesh_off, int cao, double alpha, double accuracy) | |
void | recalc_a_ai_cao_cut (Utils::Vector3d const &box_l) |
Recalculate quantities derived from the mesh and box length: a, ai and cao_cut. | |
auto | calc_grid_pos (Utils::Vector3d const &pos) const |
Convert spatial position to grid position. | |
Public Attributes | |
bool | tuning |
tuning or production? | |
double | alpha_L |
Ewald splitting parameter (0. | |
double | r_cut_iL |
cutoff radius for real space electrostatics (>0), rescaled to r_cut_iL = r_cut * box_l_i . | |
Utils::Vector3i | mesh |
number of mesh points per coordinate direction (>0), in real space. | |
Utils::Vector3d | mesh_off |
offset of the first mesh point (lower left corner) from the coordinate origin ([0,1[). | |
int | cao |
charge assignment order ([0,7]). | |
double | accuracy |
accuracy of the actual parameter set. | |
double | epsilon |
epsilon of the "surrounding dielectric". | |
Utils::Vector3d | cao_cut |
cutoff for charge assignment. | |
Utils::Vector3d | a |
mesh constant. | |
Utils::Vector3d | ai |
inverse mesh constant. | |
double | alpha |
unscaled alpha_L for use with fast inline functions only | |
double | r_cut |
unscaled r_cut_iL for use with fast inline functions only | |
int | cao3 |
number of points unto which a single charge is interpolated, i.e. | |
Structure to hold P3M parameters and some dependent variables.
Definition at line 60 of file p3m/common.hpp.
|
inline |
Definition at line 97 of file p3m/common.hpp.
References accuracy, alpha, Utils::Vector< T, N >::broadcast(), cao, epsilon, mesh, mesh_off, P3M_MESHOFF, r_cut, and tuning.
|
inline |
Convert spatial position to grid position.
To get the grid index, round the result to the nearest integer.
Definition at line 170 of file p3m/common.hpp.
References ai, Utils::hadamard_product(), and mesh_off.
|
inline |
Recalculate quantities derived from the mesh and box length: a, ai and cao_cut.
Definition at line 160 of file p3m/common.hpp.
References a, ai, Utils::Vector< T, N >::broadcast(), cao, cao_cut, Utils::hadamard_division(), and mesh.
Referenced by CoulombP3MImpl< FloatType, Architecture >::scaleby_box_l(), and DipolarP3MImpl< FloatType, Architecture >::scaleby_box_l().
Utils::Vector3d P3MParameters::a |
double P3MParameters::accuracy |
accuracy of the actual parameter set.
Definition at line 77 of file p3m/common.hpp.
Referenced by CoulombTuningAlgorithm< FloatType, Architecture >::calculate_accuracy(), DipolarTuningAlgorithm< FloatType, Architecture >::calculate_accuracy(), TuningAlgorithm::get_mc_time(), P3MParameters(), DipolarP3M::pair_energy(), DipolarP3M::pair_force(), CoulombTuningAlgorithm< FloatType, Architecture >::setup_logger(), DipolarTuningAlgorithm< FloatType, Architecture >::setup_logger(), and TuningAlgorithm::tune().
Utils::Vector3d P3MParameters::ai |
inverse mesh constant.
Definition at line 86 of file p3m/common.hpp.
Referenced by calc_grid_pos(), and recalc_a_ai_cao_cut().
double P3MParameters::alpha |
unscaled alpha_L for use with fast inline functions only
Definition at line 89 of file p3m/common.hpp.
Referenced by CoulombP3MImpl< FloatType, Architecture >::init_gpu_kernels(), P3MParameters(), CoulombP3M::pair_energy(), DipolarP3M::pair_energy(), CoulombP3M::pair_force(), DipolarP3M::pair_force(), CoulombP3MImpl< FloatType, Architecture >::scaleby_box_l(), DipolarP3MImpl< FloatType, Architecture >::scaleby_box_l(), CoulombP3MImpl< FloatType, Architecture >::tune(), and DipolarP3MImpl< FloatType, Architecture >::tune().
double P3MParameters::alpha_L |
Ewald splitting parameter (0.
Definition at line 65 of file p3m/common.hpp.
Referenced by DipolarP3MImpl< FloatType, Architecture >::calc_energy_correction(), CoulombP3MImpl< FloatType, Architecture >::scaleby_box_l(), DipolarP3MImpl< FloatType, Architecture >::scaleby_box_l(), CoulombP3MImpl< FloatType, Architecture >::tune(), and DipolarP3MImpl< FloatType, Architecture >::tune().
int P3MParameters::cao |
charge assignment order ([0,7]).
Definition at line 75 of file p3m/common.hpp.
Referenced by TuningAlgorithm::determine_cao_limits(), CoulombP3MImpl< FloatType, Architecture >::init_gpu_kernels(), P3MParameters(), and recalc_a_ai_cao_cut().
int P3MParameters::cao3 |
number of points unto which a single charge is interpolated, i.e.
cao cubed
Definition at line 95 of file p3m/common.hpp.
Utils::Vector3d P3MParameters::cao_cut |
cutoff for charge assignment.
Definition at line 82 of file p3m/common.hpp.
Referenced by recalc_a_ai_cao_cut(), CoulombP3M::sanity_checks_boxl(), and DipolarP3M::sanity_checks_boxl().
double P3MParameters::epsilon |
epsilon of the "surrounding dielectric".
Definition at line 80 of file p3m/common.hpp.
Referenced by P3MParameters(), and CoulombP3M::sanity_checks_boxl().
Utils::Vector3i P3MParameters::mesh |
number of mesh points per coordinate direction (>0), in real space.
Definition at line 70 of file p3m/common.hpp.
Referenced by p3m_data_struct< FloatType >::calc_differential_operator(), CoulombTuningAlgorithm< FloatType, Architecture >::determine_mesh_limits(), DipolarTuningAlgorithm< FloatType, Architecture >::determine_mesh_limits(), CoulombTuningAlgorithm< FloatType, Architecture >::get_time(), CoulombP3MImpl< FloatType, Architecture >::init_gpu_kernels(), P3MParameters(), recalc_a_ai_cao_cut(), and CoulombP3M::sanity_checks_boxl().
Utils::Vector3d P3MParameters::mesh_off |
offset of the first mesh point (lower left corner) from the coordinate origin ([0,1[).
Definition at line 73 of file p3m/common.hpp.
Referenced by calc_grid_pos(), and P3MParameters().
double P3MParameters::r_cut |
unscaled r_cut_iL for use with fast inline functions only
Definition at line 92 of file p3m/common.hpp.
Referenced by P3MParameters(), CoulombP3M::pair_energy(), DipolarP3M::pair_energy(), CoulombP3M::pair_force(), DipolarP3M::pair_force(), CoulombP3MImpl< FloatType, Architecture >::scaleby_box_l(), DipolarP3MImpl< FloatType, Architecture >::scaleby_box_l(), CoulombP3MImpl< FloatType, Architecture >::tune(), and DipolarP3MImpl< FloatType, Architecture >::tune().
double P3MParameters::r_cut_iL |
cutoff radius for real space electrostatics (>0), rescaled to r_cut_iL
= r_cut
* box_l_i
.
Definition at line 68 of file p3m/common.hpp.
Referenced by TuningAlgorithm::determine_r_cut_limits(), CoulombP3MImpl< FloatType, Architecture >::scaleby_box_l(), DipolarP3MImpl< FloatType, Architecture >::scaleby_box_l(), CoulombP3MImpl< FloatType, Architecture >::tune(), and DipolarP3MImpl< FloatType, Architecture >::tune().
bool P3MParameters::tuning |
tuning or production?
Definition at line 62 of file p3m/common.hpp.
Referenced by P3MParameters(), TuningAlgorithm::tune(), CoulombP3MImpl< FloatType, Architecture >::tune(), and DipolarP3MImpl< FloatType, Architecture >::tune().