STORMM Source Documentation
Loading...
Searching...
No Matches
nonbonded_potential.h
1// -*-c++-*-
2#ifndef STORMM_NONBONDED_POTENTIAL_H
3#define STORMM_NONBONDED_POTENTIAL_H
4
5#include "copyright.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"
15#include "scorecard.h"
16#include "soft_core_potentials.h"
17#include "static_exclusionmask.h"
18
19namespace stormm {
20namespace energy {
21
22using data_types::isSignedIntegralScalarType;
23using stmath::roundUp;
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;
37
79template <typename Tcoord, typename Tforce, typename Tcalc>
80double2 evaluateNonbondedEnergy(const NonbondedKit<Tcalc> nbk, const StaticExclusionMaskReader ser,
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);
88
89double2 evaluateNonbondedEnergy(const NonbondedKit<double> nbk,
91 ScoreCard *ecard,
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);
96
97double2 evaluateNonbondedEnergy(const AtomGraph &ag, const StaticExclusionMask &se, PhaseSpace *ps,
98 ScoreCard *ecard,
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);
103
104double2 evaluateNonbondedEnergy(const AtomGraph *ag, const StaticExclusionMask &se, PhaseSpace *ps,
105 ScoreCard *ecard,
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);
110
111double2 evaluateNonbondedEnergy(const NonbondedKit<double> nbk,
113 ScoreCard *ecard, int system_index = 0,
114 double clash_distance = 0.0, double clash_ratio = 0.0);
115
116double2 evaluateNonbondedEnergy(const NonbondedKit<double> nbk,
118 const CoordinateFrameWriter &cfw, ScoreCard *ecard,
119 int system_index = 0, double clash_distance = 0.0,
120 double clash_ratio = 0.0);
121
122double2 evaluateNonbondedEnergy(const AtomGraph &ag, const StaticExclusionMask &se,
123 const CoordinateFrame &cf, ScoreCard *ecard, int system_index = 0,
124 double clash_distance = 0.0, double clash_ratio = 0.0);
125
126double2 evaluateNonbondedEnergy(const AtomGraph *ag, const StaticExclusionMask &se,
127 const CoordinateFrame &cf, ScoreCard *ecard, int system_index = 0,
128 double clash_distance = 0.0, double clash_ratio = 0.0);
129
130template <typename Tcoord, typename Tcalc>
131double2 evaluateNonbondedEnergy(const NonbondedKit<Tcalc> &nbk,
132 const StaticExclusionMaskReader &ser,
134 int system_index = 0, Tcalc clash_distance = 0.0,
135 Tcalc clash_ratio = 0.0);
137
172template <typename Tcoord, typename Tforce, typename Tcalc>
173double evaluateGeneralizedBornEnergy(const NonbondedKit<Tcalc> nbk,
176 const NeckGeneralizedBornKit<Tcalc> ngb_kit,
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);
183
184double evaluateGeneralizedBornEnergy(const NonbondedKit<double> nbk,
187 const NeckGeneralizedBornKit<double> ngb_kit,
188 PhaseSpaceWriter psw, ScoreCard *ecard,
189 EvaluateForce eval_force = EvaluateForce::NO,
190 int system_index = 0);
191
192double evaluateGeneralizedBornEnergy(const AtomGraph &ag, const StaticExclusionMask &se,
193 const NeckGeneralizedBornTable &ngb_tables, PhaseSpace *ps,
194 ScoreCard *ecard,
195 EvaluateForce eval_force = EvaluateForce::NO,
196 int system_index = 0);
197
198double evaluateGeneralizedBornEnergy(const AtomGraph *ag, const StaticExclusionMask &se,
199 const NeckGeneralizedBornTable &ngb_tables, PhaseSpace *ps,
200 ScoreCard *ecard,
201 EvaluateForce eval_force = EvaluateForce::NO,
202 int system_index = 0);
203
204double evaluateGeneralizedBornEnergy(const NonbondedKit<double> nbk,
207 const NeckGeneralizedBornKit<double> ngb_kit,
208 const CoordinateFrameReader cfr, ScoreCard *ecard,
209 int system_index = 0);
210
211double evaluateGeneralizedBornEnergy(const NonbondedKit<double> nbk,
214 const NeckGeneralizedBornKit<double> ngb_kit,
215 const CoordinateFrameWriter &cfw, ScoreCard *ecard,
216 int system_index = 0);
217
218double evaluateGeneralizedBornEnergy(const AtomGraph &ag, const StaticExclusionMask &se,
219 const NeckGeneralizedBornTable &ngb_tables,
220 const CoordinateFrame &cf, ScoreCard *ecard,
221 int system_index = 0);
222
223double evaluateGeneralizedBornEnergy(const AtomGraph *ag, const StaticExclusionMask &se,
224 const NeckGeneralizedBornTable &ngb_tables,
225 const CoordinateFrame &cf, ScoreCard *ecard,
226 int system_index = 0);
227
228template <typename Tcoord, typename Tcalc>
229double evaluateGeneralizedBornEnergy(const NonbondedKit<Tcalc> nbk,
232 const NeckGeneralizedBornKit<Tcalc> ngb_kit,
234 int system_index = 0, int force_scale_bits = 23);
236
237} // namespace energy
238} // namespace stormm
239
240#include "nonbonded_potential.tpp"
241
242#endif
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