OGS
VariableType.h
Go to the documentation of this file.
1 
13 #pragma once
14 
15 #include <Eigen/Dense>
16 #include <array>
17 #include <string>
18 #include <variant>
19 
20 namespace MaterialPropertyLib
21 {
24 using Pair = std::array<double, 2>;
25 
28 using Vector = std::array<double, 3>;
29 
32 using SymmTensor = std::array<double, 6>;
33 
35 using Tensor2d = std::array<double, 4>;
36 
39 using Tensor = std::array<double, 9>;
40 
44 enum class Variable : int
45 {
48  density,
57  molar_mass,
60  porosity,
62  stress,
70 };
71 
72 static const std::array<std::string,
73  static_cast<int>(Variable::number_of_variables)>
74  variable_enum_to_string{{"capillary_pressure",
75  "concentration",
76  "density",
77  "displacement",
78  "effective_pore_pressure",
79  "enthalpy_of_evaporation",
80  "equivalent_plastic_strain",
81  "grain_compressibility",
82  "liquid_phase_pressure",
83  "liquid_saturation",
84  "mechanical_strain",
85  "molar_mass",
86  "molar_fraction",
87  "phase_pressure",
88  "porosity",
89  "solid_grain_pressure",
90  "stress",
91  "temperature",
92  "total_strain",
93  "total_stress",
94  "transport_porosity",
95  "vapour_pressure",
96  "volumetric_strain"}};
97 
101  std::variant<std::monostate, double, Vector, Eigen::Matrix<double, 4, 1>,
102  Eigen::Matrix<double, 6, 1>>;
103 
108  std::array<VariableType, static_cast<int>(Variable::number_of_variables)>;
109 
112 Variable convertStringToVariable(std::string const& string);
113 } // namespace MaterialPropertyLib
std::array< double, 3 > Vector
Definition: VariableType.h:28
std::variant< std::monostate, double, Vector, Eigen::Matrix< double, 4, 1 >, Eigen::Matrix< double, 6, 1 > > VariableType
Definition: VariableType.h:102
static const std::array< std::string, static_cast< int >Variable::number_of_variables)> variable_enum_to_string
Definition: VariableType.h:74
std::array< double, 6 > SymmTensor
Definition: VariableType.h:32
std::array< double, 9 > Tensor
Definition: VariableType.h:39
std::array< VariableType, static_cast< int >(Variable::number_of_variables)> VariableArray
Definition: VariableType.h:108
std::array< double, 2 > Pair
Definition: VariableType.h:24
Variable convertStringToVariable(std::string const &string)
std::array< double, 4 > Tensor2d
Very simple 2d tensor data type for holding tensor components.
Definition: VariableType.h:35