STORMM Source Documentation
Loading...
Searching...
No Matches
math_enumerators.h
1// -*-c++-*-
2#ifndef STORMM_MATH_ENUMERATORS_H
3#define STORMM_MATH_ENUMERATORS_H
4
5#include <string>
6#include "copyright.h"
7
8namespace stormm {
9namespace stmath {
10
13enum class FunctionLevel {
14 VALUE,
15 DX,
16 DY,
17 DZ,
18 DXX,
19 DXY,
20 DXZ,
21 DYY,
22 DYZ,
23 DZZ,
24 DXXX,
25 DXXY,
26 DXXZ,
27 DXYY,
28 DXZZ,
29 DXYZ,
30 DYYY,
31 DYYZ,
32 DYZZ,
33 DZZZ
34};
35
61enum class Interpolant {
62 SMOOTHNESS,
65 FUNCTION_VALUE
70};
72
74enum class LimitApproach {
75 BELOW,
76 ABOVE
77};
78
81enum class LogSplineForm {
82 ELEC_PME_DIRECT,
84 ELEC_PME_DIRECT_EXCL,
86 DELEC_PME_DIRECT,
91 DELEC_PME_DIRECT_EXCL,
93 CUSTOM
94};
95
97enum class TableIndexing {
98 ARG,
99 SQUARED_ARG,
100 ARG_OFFSET,
103 SQ_ARG_OFFSET
105};
106
109enum class BasisFunctions {
110 MIXED_FRACTIONS,
111 POLYNOMIAL
112};
113
117enum class BSplineUnity {
118 CENTER_FILL,
122 NONE
124};
125
129enum class FFTMode {
130 IN_PLACE,
133 OUT_OF_PLACE
136};
137
139enum class HilbertCurveMode {
140 STRETCH,
142 OVERSPAN,
145 EXACT
148};
149
152enum class SpherePlacement {
153 POLYHEDRON,
158 AREA_FIBONACCI,
162 DIST_FIBONACCI,
165 DESERNO
166};
167
173std::string getEnumerationName(FunctionLevel input);
174std::string getEnumerationName(Interpolant input);
175std::string getEnumerationName(LimitApproach input);
176std::string getEnumerationName(LogSplineForm input);
177std::string getEnumerationName(TableIndexing input);
178std::string getEnumerationName(BasisFunctions input);
179std::string getEnumerationName(BSplineUnity input);
180std::string getEnumerationName(FFTMode input);
181std::string getEnumerationName(HilbertCurveMode input);
182std::string getEnumerationName(SpherePlacement input);
184
187FFTMode translateFFTMode(const std::string &input);
188
191LogSplineForm translateLogSplineForm(const std::string &input);
192
195TableIndexing translateTableIndexing(const std::string &input);
196
197} // namespace stmath
198} // namespace stormm
199
200#endif