40#if defined(ESPRESSO_ELECTROSTATICS) and defined(ESPRESSO_GSL)
97 void init() { recalc_boxl_parameters(); }
100 sanity_checks_periodicity();
101 sanity_checks_cell_structure();
108 double far_switch_radius_sq;
119 static constexpr auto MAXIMAL_B_CUT = 30;
121 std::array<double, MAXIMAL_B_CUT> bessel_radii;
123 std::vector<std::vector<double>> modPsi;
126 void create_mod_psi_up_to(
int new_n);
127 void determine_bessel_radii();
128 void prepare_polygamma_series();
129 void recalc_boxl_parameters();
130 void sanity_checks_periodicity()
const;
131 void sanity_checks_cell_structure()
const;
Vector implementation and trait types for boost qvm interoperability.
double prefactor
Electrostatics prefactor.
void sanity_checks_charge_neutrality() const
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
Parameters for the MMM1D electrostatic interaction.
void on_node_grid_change() const
void sanity_checks() const
double far_switch_radius
Far switch radius.
Utils::Vector3d pair_force(double q1q2, Utils::Vector3d const &d, double dist) const
Compute the pair force.
void on_periodicity_change() const
double pair_energy(double q1q2, Utils::Vector3d const &d, double dist) const
Compute the pair energy.
void init()
Recalculate all derived parameters.
double maxPWerror
Maximal allowed pairwise error for the potential and force.
void on_cell_structure_change()
void on_boxl_change()
Recalculate all box-length-dependent parameters.