30#include "system/System.hpp"
43[[maybe_unused]]
static void consider(
double &max_cut_current,
unsigned &mask,
45 if (sub_cutoff > 0.) {
47 if (sub_cutoff > max_cut_current) {
48 max_cut_current = sub_cutoff;
53static std::pair<double, unsigned>
59#ifdef ESPRESSO_LENNARD_JONES
72#ifdef ESPRESSO_LENNARD_JONES_GENERIC
77#ifdef ESPRESSO_SMOOTH_STEP
82#ifdef ESPRESSO_HERTZIAN
87#ifdef ESPRESSO_GAUSSIAN
92#ifdef ESPRESSO_BMHTF_NACL
102#ifdef ESPRESSO_BUCKINGHAM
107#ifdef ESPRESSO_SOFT_SPHERE
121#ifdef ESPRESSO_LJCOS2
126#ifdef ESPRESSO_GAY_BERNE
131#ifdef ESPRESSO_TABULATED
138 max_cut_current = std::max(max_cut_current, system.coulomb.cutoff());
141 return {max_cut_current, mask};
146 auto combined_mask = 0u;
150 for (
auto &data : m_nonbonded_ia_params) {
153 data->active_pair_mask = mask;
154 combined_mask |= mask;
157 (data->thole.scaling_coeff != 0. and data->thole.q1q2 != 0.);
160 m_combined_active_pair_mask = combined_mask;
168 for (
auto &data : m_nonbonded_ia_params) {
169 max_cut_nonbonded = std::max(max_cut_nonbonded, data->max_cut);
171 return max_cut_nonbonded;
void recalc_maximal_cutoffs()
Recalculate cutoff of each interaction struct.
void on_non_bonded_ia_change() const
Notify system that non-bonded interactions changed.
double maximal_cutoff() const
Get maximal cutoff.
auto any_thole_configured() const
Whether any type pair has Thole damping configured.
constexpr double inactive_cutoff
Special cutoff value for an inactive interaction.
static void consider(double &max_cut_current, unsigned &mask, PairPotential p, double sub_cutoff)
static std::pair< double, unsigned > recalc_maximal_cutoff(IA_parameters const &data, System::System const &system)
Various procedures concerning interactions between particles.
PairPotential
Bit positions in IA_parameters::active_pair_mask.
DEVICE_QUALIFIER constexpr unsigned pair_potential_bit(PairPotential p)
Bitmask for a pair potential.
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
Parameters for non-bonded interactions.
Gaussian_Parameters gaussian
GayBerne_Parameters gay_berne
SoftSphere_Parameters soft_sphere
SmoothStep_Parameters smooth_step
Hertzian_Parameters hertzian
Buckingham_Parameters buckingham
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const
double max_cutoff() const