STORMM Source Documentation
Loading...
Searching...
No Matches
trajectory_enumerators.h
1// -*-c++-*-
2#ifndef STORMM_TRAJECTORY_ENUMERATORS_H
3#define STORMM_TRAJECTORY_ENUMERATORS_H
4
5#include <string>
6#include "copyright.h"
7
8namespace stormm {
9namespace trajectory {
10
12enum class CoordinateFileKind {
13 AMBER_CRD,
15 AMBER_INPCRD,
17 AMBER_ASCII_RST,
20 AMBER_NETCDF,
21 AMBER_NETCDF_RST,
22 SDF,
23 PDB,
24 UNKNOWN
25};
26
29enum class AncdfVariable {
30 NCFRAME,
31 NCSPATIAL,
32 NCATOM,
33 NCCELL_SPATIAL,
34 NCCELL_LENGTHS,
35 NCCELL_ANGULAR,
36 NCCELL_ANGLES,
37 NCCOORDS,
38 NCVELO,
39 NCTEMPERATURE,
40 NCTIME,
41 NCLABEL
42};
43
45enum class TrajectoryKind {
46 POSITIONS, // Positions of particles
47 VELOCITIES, // Velocities of particles
48 FORCES // Total forces on all particles (the two force arrays are summed in cases where
49 // the forces are partitioned)
50};
51
57enum class CoordinateCycle {
58 BLACK,
60 WHITE
61};
62
64enum class CoordinateLineFormat {
65 FIXED_COLUMN,
66 FREE_FORMAT
67};
68
72enum class CoordinateFileRole {
73 INITIATE,
74 TRAJECTORY,
75 CHECKPOINT
76};
77
79enum class TrajectoryFusion {
80 ON,
82 OFF,
83 AUTO
85};
86
88enum class ThermostatKind {
89 NONE,
91 ANDERSEN,
93 LANGEVIN,
95 BERENDSEN
97};
98
101enum class ThermostatPartition {
102 COMMON,
104 SYSTEMS,
106 ATOMS
108};
109
113enum class EnforceExactTemperature {
114 YES,
116 NO
117};
118
121enum class IntegrationStage {
122 VELOCITY_ADVANCE,
124 VELOCITY_CONSTRAINT,
126 POSITION_ADVANCE,
129 GEOMETRY_CONSTRAINT
131};
132
136std::string getCoordinateFileKindDescription(const CoordinateFileKind cfkind);
137
147std::string getEnumerationName(CoordinateFileKind cfkind);
148std::string getEnumerationName(AncdfVariable key);
149std::string getEnumerationName(TrajectoryKind input);
150std::string getEnumerationName(CoordinateCycle orientation);
151std::string getEnumerationName(CoordinateLineFormat input);
152std::string getEnumerationName(CoordinateFileRole cpkind);
153std::string getEnumerationName(TrajectoryFusion protocol);
154std::string getEnumerationName(ThermostatKind input);
155std::string getEnumerationName(ThermostatPartition input);
156std::string getEnumerationName(EnforceExactTemperature input);
157std::string getEnumerationName(IntegrationStage input);
159
163CoordinateFileKind translateCoordinateFileKind(const std::string &name_in);
164
168ThermostatKind translateThermostatKind(const std::string &input);
169
173CoordinateCycle getNextCyclePosition(CoordinateCycle orientation);
174
179
180} // namespace trajectory
181} // namespace stormm
182
183#endif