2#ifndef STORMM_NONBONDED_POTENTIAL_H
3#define STORMM_NONBONDED_POTENTIAL_H
6#include "Constants/generalized_born.h"
7#include "DataTypes/common_types.h"
8#include "Math/rounding.h"
9#include "Topology/atomgraph.h"
10#include "Trajectory/coordinateframe.h"
11#include "Trajectory/coordinate_series.h"
12#include "Trajectory/phasespace.h"
13#include "energy_abstracts.h"
14#include "energy_enumerators.h"
16#include "soft_core_potentials.h"
17#include "static_exclusionmask.h"
22using data_types::isSignedIntegralScalarType;
24using topology::AtomGraph;
25using topology::ImplicitSolventKit;
26using topology::NonbondedKit;
27using topology::UnitCellType;
28using trajectory::CoordinateFrame;
29using trajectory::CoordinateFrameReader;
30using trajectory::CoordinateFrameWriter;
31using trajectory::CoordinateSeries;
32using trajectory::CoordinateSeriesReader;
33using trajectory::CoordinateSeriesWriter;
34using trajectory::PhaseSpace;
35using trajectory::PhaseSpaceWriter;
36using namespace generalized_born_defaults;
79template <
typename Tcoord,
typename Tforce,
typename Tcalc>
81 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
82 const double* umat,
const double* invu, UnitCellType unit_cell,
83 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
ScoreCard *ecard,
84 EvaluateForce eval_elec_force, EvaluateForce eval_vdw_force,
85 int system_index, Tcalc inv_gpos_factor = 1.0,
86 Tcalc force_factor = 1.0, Tcalc clash_distance = 0.0,
87 Tcalc clash_ratio = 0.0);
92 EvaluateForce eval_elec_force = EvaluateForce::NO,
93 EvaluateForce eval_vdw_force = EvaluateForce::NO,
94 int system_index = 0,
double clash_distance = 0.0,
95 double clash_ratio = 0.0);
99 EvaluateForce eval_elec_force = EvaluateForce::NO,
100 EvaluateForce eval_vdw_force = EvaluateForce::NO,
101 int system_index = 0,
double clash_distance = 0.0,
102 double clash_ratio = 0.0);
106 EvaluateForce eval_elec_force = EvaluateForce::NO,
107 EvaluateForce eval_vdw_force = EvaluateForce::NO,
108 int system_index = 0,
double clash_distance = 0.0,
109 double clash_ratio = 0.0);
114 double clash_distance = 0.0,
double clash_ratio = 0.0);
119 int system_index = 0,
double clash_distance = 0.0,
120 double clash_ratio = 0.0);
124 double clash_distance = 0.0,
double clash_ratio = 0.0);
128 double clash_distance = 0.0,
double clash_ratio = 0.0);
130template <
typename Tcoord,
typename Tcalc>
134 int system_index = 0, Tcalc clash_distance = 0.0,
135 Tcalc clash_ratio = 0.0);
172template <
typename Tcoord,
typename Tforce,
typename Tcalc>
177 const Tcoord* xcrd,
const Tcoord* ycrd,
const Tcoord* zcrd,
178 Tforce* xfrc, Tforce* yfrc, Tforce* zfrc,
179 Tforce *effective_gb_radii, Tforce *psi, Tforce *sumdeijda,
180 ScoreCard *ecard, EvaluateForce eval_force,
181 int system_index = 0, Tcalc inv_gpos_factor = 1.0,
182 Tcalc force_factor = 1.0);
189 EvaluateForce eval_force = EvaluateForce::NO,
190 int system_index = 0);
195 EvaluateForce eval_force = EvaluateForce::NO,
196 int system_index = 0);
201 EvaluateForce eval_force = EvaluateForce::NO,
202 int system_index = 0);
209 int system_index = 0);
216 int system_index = 0);
221 int system_index = 0);
226 int system_index = 0);
228template <
typename Tcoord,
typename Tcalc>
234 int system_index = 0,
int force_scale_bits = 23);
240#include "nonbonded_potential.tpp"
Track the energy components of a collection of systems in an HPC-capable array. This object uses the ...
Definition scorecard.h:101
A simple pair list for an all-to-all calculation with exclusion masks. The list stores masks for 16 x...
Definition static_exclusionmask.h:81
Object to hold a complex array of constants referenced by various GB calculations using the "neck" fo...
Definition generalized_born.h:151
A struct to hold information relating to an Amber topology. This struct's member functions are limite...
Definition atomgraph.h:50
Store the coordinates and box information for a frame, only. This abridged struct can serve when the ...
Definition coordinateframe.h:111
An object to complement a topology and hold positions, velocities, and forces of all particles in a s...
Definition phasespace.h:141
The abstract for a StaticExclusionMask object, read-only due to the const-ness of the data() member f...
Definition static_exclusionmask.h:45
Abstract for the NeckGeneralizedBornTable object, in single- or double-precision.
Definition generalized_born.h:130
Information needed for Generalized Born (and perhaps other) implicit solvent methods....
Definition atomgraph_abstracts.h:352
Information needed for non-bonded real-space calculations. Templating is used as above,...
Definition atomgraph_abstracts.h:287
Collect C-style pointers for the elements of a read-only CoordinateFrame object.
Definition coordinateframe.h:65
Collect C-style pointers for the elements of a writable CoordinateFrame object.
Definition coordinateframe.h:30
Collect C-style pointers and critical constants for a read-only CoordinateSeries object.
Definition coordinate_series.h:96
Collect constants and pointers to the components of a modifiable PhaseSpace object.
Definition phasespace.h:31