STORMM Source Documentation
Loading...
Searching...
No Matches
atomgraph_enumerators.h
1// -*-c++-*-
2#ifndef STORMM_ATOMGRAPH_ENUMERATORS_H
3#define STORMM_ATOMGRAPH_ENUMERATORS_H
4
5#include "copyright.h"
6#include "Constants/behavior.h"
7#include "Parsing/citation.h"
8
9namespace stormm {
10namespace topology {
11
12using constants::CaseSensitivity;
13using constants::ExceptionResponse;
14using parse::Citation;
15
18enum class TopologyKind {
19 AMBER,
21 CHARMM,
23 GROMACS,
25 OPENMM,
27 UNKNOWN
28};
29
32enum class TopologyDescriptor {
33 ATOM_COUNT = 0, ATOM_TYPE_COUNT, BONDS_WITH_HYDROGEN, BONDS_WITHOUT_HYDROGEN,
34 ANGLES_WITH_HYDROGEN, ANGLES_WITHOUT_HYDROGEN, DIHEDRALS_WITH_HYDROGEN,
35 DIHEDRALS_WITHOUT_HYDROGEN, NHPARM_UNUSED, ADDLES_CREATED, TOTAL_EXCLUDED_ATOMS,
36 RESIDUE_COUNT, NBONA_UNUSED, NTHETA_UNUSED, NPHIA_UNUSED, BOND_TYPE_COUNT,
37 ANGLE_TYPE_COUNT, DIHEDRAL_TYPE_COUNT, NATYP_UNUSED, NPHB_UNUSED, PERTURBATION,
38 BOND_PERTURBATIONS, ANGLE_PERTURBATIONS, DIHEDRAL_PERTURBATIONS, BONDS_IN_PERTURBED_GROUP,
39 ANGLES_IN_PERTURBED_GROUP, DIHEDRALS_IN_PERTURBED_GROUP, BOX_TYPE_INDEX,
40 ATOM_COUNT_LARGEST_RESIDUE, CAP, EXTRA_POINT_COUNT, PIMD_SLICE_COUNT, N_VALUES
41};
42
47enum class SanderDescriptor {
48 NATOM = 0, NTYPES, NBONH, MBONA, NTHETH, MTHETA, NPHIH, MPHIA, NHPARM,
49 NPARM, NNB, NRES, NBONA, NTHETA, NPHIA, NUMBND, NUMANG, NPTRA, NATYP, NPHB, IFPERT,
50 NBPER, NGPER, NDPER, MBPER, MGPER, MDPER, IFBOX, NMXRS, IFCAP, NUMEXTRA, NCOPY, N_VALUES
51};
52
54enum class UnitCellType {
55 NONE = 0, ORTHORHOMBIC, TRICLINIC
56};
57
59enum class MoleculeKind {
60 BIOPOLYMER,
62 SMALL_ORGANIC,
64 LARGE_ORGANIC,
66 ORGANIC_POLYMER,
68 MINERAL,
70 POLYATOMIC_ION,
71 MONATOMIC_ION,
72 WATER,
73 OTHER
76};
77
79enum class MoleculeOrdering {
80 RETAIN_ORDER,
83 WATER_LAST,
86 REORDER_ALL
88};
89
91enum class MobilitySetting {
92 OFF, ON, TOGGLE
93};
94
96enum class PerturbationSetting {
97 OFF, ON
98};
99
101enum class SolventCapSetting {
102 OFF, ON
103};
104
106enum class PolarizationSetting {
107 OFF, ON
108};
109
111enum class TopologyRequirement {
112 OPTIONAL, ESSENTIAL
113};
114
116enum class MassForm {
117 ORDINARY, INVERSE
118};
119
125enum class ConstraintStatus : char {
126 FREE, CONSTRAINED
127};
128enum class HydrogenContent : char {
129 NO_HYDROGEN, HAS_HYDROGEN
130};
131enum class ForceFieldFamily : char {
132 BASIC, AMBER, CHARMM, OPENMM
133};
134enum class TorsionKind : char {
135 PROPER, PROPER_NO_14, IMPROPER, IMPROPER_NO_14
136};
138
141enum class ImplicitSolventModel {
142 NONE,
143 HCT_GB,
144 OBC_GB,
145 OBC_GB_II,
146 NECK_GB,
147 NECK_GB_II,
148};
149
153enum class AtomicRadiusSet {
154 NONE, BONDI, AMBER6, MBONDI, MBONDI2, MBONDI3, PARSE
155};
156
158enum class WaterModel {
159
160 // Default and fallback states
161 NONE,
162 UNKNOWN,
163 CHIMERA,
164 MULTIPLE,
165 MULTI_CHIMERA,
166
167 // Three-site, rigid water models
168 OPC3,
169 SPC,
171 SPC_E,
172 SPC_EB,
173 SPC_HW,
174 TIP3P,
175 TIP3P_EW,
177 TIP3P_CHARMM,
178
179 // Three-site flexible water models
180 SPC_FW,
181 TIP3P_FW,
182
183 // Four-site, rigid water models
184 OPC,
185 TIP4P,
186 TIP4P_EW,
187 TIP4P_2005,
188 TIP4P_ICE,
189 TIP4P_EPS,
190 TIP4P_D,
191
192 // Four-site, flexible water models
193 TIP4P_2005F,
194
195 // Five-site, rigid water models
196 TIP5P,
197 TIP5P_EW,
198 TIP5P_2018,
199};
200
202enum class VirtualSiteKind {
203 FLEX_2 = 0,
205 FIXED_2,
207 FLEX_3,
209 FIXED_3,
214 FAD_3,
218 OUT_3,
222 FIXED_4,
225 NONE
227};
228
235std::string getEnumerationName(TopologyKind input);
236std::string getEnumerationName(UnitCellType input);
237std::string getEnumerationName(MoleculeKind input);
238std::string getEnumerationName(MobilitySetting input);
239std::string getEnumerationName(PerturbationSetting input);
240std::string getEnumerationName(SolventCapSetting input);
241std::string getEnumerationName(PolarizationSetting input);
242std::string getEnumerationName(TopologyRequirement input);
243std::string getEnumerationName(MassForm input);
244std::string getEnumerationName(ConstraintStatus input);
245std::string getEnumerationName(HydrogenContent input);
246std::string getEnumerationName(ForceFieldFamily input);
247std::string getEnumerationName(TorsionKind input);
248std::string getEnumerationName(ImplicitSolventModel input);
249std::string getEnumerationName(AtomicRadiusSet input);
250std::string getEnumerationName(WaterModel input);
251std::string getEnumerationName(VirtualSiteKind input);
253
260ImplicitSolventModel
261translateImplicitSolventModel(int igb_val, ExceptionResponse policy = ExceptionResponse::DIE);
262
268AtomicRadiusSet translateAtomicRadiusSet(const std::string &pb_radii_in,
269 ExceptionResponse policy = ExceptionResponse::DIE);
270
274Citation getWaterModelCitation(WaterModel wm);
275
276} // namespace topology
277} // namespace stormm
278
279#endif
A means for numbering and tracking citations or other documented sources of information.
Definition citation.h:14