STORMM Source Documentation
Loading...
Searching...
No Matches
energy_enumerators.h
1// -*-c++-*-
2#ifndef STORMM_ENERGY_ENUMERATORS_H
3#define STORMM_ENERGY_ENUMERATORS_H
4
5#include <string>
6#include "copyright.h"
7
8namespace stormm {
9namespace energy {
10
14enum class EvaluateEnergy {
15 NO, YES
16};
17
19enum class EvaluateForce {
20 NO, YES
21};
22
24enum class EvaluateVirial {
25 NO, YES
26};
27
30enum class DihedralStyle {
31 COSINE, HARMONIC
32};
33
36enum class StateVariable {
37 BOND = 0,
38 ANGLE,
39 PROPER_DIHEDRAL,
40 IMPROPER_DIHEDRAL,
41 UREY_BRADLEY,
42 CHARMM_IMPROPER,
43 CMAP,
44 VDW,
46 VDW_ONE_FOUR,
48 ELECTROSTATIC,
49 ELEC_ONE_FOUR,
50 GENERALIZED_BORN,
51 RESTRAINT,
52 SURFACE_AREA,
54 KINETIC,
55 PRESSURE,
56 VIRIAL_11,
57 VIRIAL_12,
58 VIRIAL_22,
59 VIRIAL_13,
60 VIRIAL_23,
61 VIRIAL_33,
62 VOLUME,
63 TEMPERATURE_ALL,
64 TEMPERATURE_PROTEIN,
68 TEMPERATURE_LIGAND,
69 TEMPERATURE_SOLVENT,
70 DU_DLAMBDA,
73 POTENTIAL_ENERGY,
74 TOTAL_ENERGY,
75 ALL_STATES
78};
79
82enum class NonbondedPotential {
83 ELECTROSTATIC,
84 VAN_DER_WAALS,
85 CLASH
87};
88
92enum class NonbondedTask {
93 PME_PARTICLE_PARTICLE,
95 PARTICLE_TO_MESH,
97 CONVOLUTION,
99 MESH_TO_PARTICLE,
101 GB_PARTICLE_PARTICLE,
103 GB_RADII,
104 GB_RADII_DERIVATIVES
105};
106
109enum class NonbondedTheme {
110 ELECTROSTATIC,
111 VAN_DER_WAALS,
112 ALL
114};
115
119enum class DecomposablePotential {
120 ELECTROSTATIC,
121 DISPERSION,
125 ELEC_PME_DIRECT
127};
128
131enum class VdwCombiningRule {
132 LORENTZ_BERTHELOT,
134 GEOMETRIC,
135 NBFIX
137};
138
141enum class VdwSumMethod {
142 CUTOFF,
144 SMOOTH,
147 PME
149};
150
153enum class ClashResponse {
154 NONE,
155 FORGIVE
158};
159
161enum class EnergySample {
162 TIME_SERIES,
163 FINAL,
164 TIME_AVERAGE
165};
166
169enum class SplineScaffold {
170 LINEAR,
172 SIGMOIDAL,
177 QUADRATIC_HILL,
179 QUADRATIC_VALLEY
182};
183
188enum class CellGridAction {
189 INIT_FORCES,
190 XFER_FORCES
192};
193
196enum class QMapMethod {
197 ACC_SHARED,
199 GENERAL_PURPOSE,
200 AUTOMATIC
202};
203
206enum class PMIStrategy {
207 RECOMMENDED,
211 TIGHT,
213 VERY_TIGHT,
215 RECOMMENDED_PM_HEAVY,
217 RECOMMENDED_PP_HEAVY,
219 TIGHT_PM_HEAVY,
221 TIGHT_PP_HEAVY,
223 NO_AUTOMATION
224};
225
227enum class NeighborListKind {
228 MONO,
230 DUAL
233};
234
237enum class TinyBoxPresence {
238 YES,
239 NO
240};
241
243enum class ValenceKernelSize {
244 XL = 0,
246 LG,
247 MD,
248 SM
249};
250
252enum class SasaReference {
253 LENNARD_JONES_SIGMA,
254 BORN_RADII
255};
256
261std::string getEnumerationName(EvaluateForce input);
262std::string getEnumerationName(EvaluateEnergy input);
263std::string getEnumerationName(EvaluateVirial input);
264std::string getEnumerationName(DihedralStyle input);
265std::string getEnumerationName(StateVariable input);
266std::string getEnumerationName(NonbondedPotential input);
267std::string getEnumerationName(NonbondedTask input);
268std::string getEnumerationName(NonbondedTheme input);
269std::string getEnumerationName(DecomposablePotential input);
270std::string getEnumerationName(VdwCombiningRule input);
271std::string getEnumerationName(VdwSumMethod input);
272std::string getEnumerationName(ClashResponse input);
273std::string getEnumerationName(EnergySample input);
274std::string getEnumerationName(SplineScaffold input);
275std::string getEnumerationName(CellGridAction input);
276std::string getEnumerationName(QMapMethod input);
277std::string getEnumerationName(PMIStrategy input);
278std::string getEnumerationName(NeighborListKind input);
279std::string getEnumerationName(TinyBoxPresence input);
280std::string getEnumerationName(ValenceKernelSize input);
281std::string getEnumerationName(SasaReference input);
283
287NonbondedPotential translateNonbondedPotential(const std::string &input);
288
292NonbondedTheme translateNonbondedTheme(const std::string &input);
293
297EnergySample translateEnergySample(const std::string &input);
298
303PMIStrategy translatePMIStrategy(const std::string &input);
304
309VdwSumMethod translateVdwSumMethod(const std::string &input);
310
311} // namespace energy
312} // namespace stormm
313
314#endif