G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsMaterialMatrixUtils.h
Go to the documentation of this file.
1 
16 #pragma once
17 
19 #include <gsIO/gsOptionList.h>
20 
21 namespace gismo
22 {
23 
24 
35 enum class MatIntegration : short_t
36 {
37  NotIntegrated = 0,
38  Integrated = 1,
39  Constant = 2,
40  Linear = 3,
41 };
42 
43 
50 enum class Material : short_t
51 {
52  SvK = 0,
53  NH = 1,
54  NH_ext = 2,
55  MR = 3,
56  OG = 4
57 };
58 
59 
70 enum class Implementation : short_t
71 {
72  Composite = 0,
73  Analytical = 1,
74  Generalized = 2,
75  Spectral = 3
76 };
77 
78 
98 enum class MaterialOutput : short_t
99 {
100  Generic = 0,
101  Density = 1,
102  VectorN = 2,
103  VectorM = 3,
104  CauchyVectorN = 4,
105  CauchyVectorM = 5,
106  MatrixA = 6,
107  MatrixB = 7,
108  MatrixC = 8,
109  MatrixD = 9,
110  PStress = 10,
111  PStressDir= 11,
112  PStressN = 12,
113  PStressM = 13,
114  PCauchyStressN = 14,
115  PCauchyStressM = 15,
116  PStrainN = 16,
117  PStrainM = 17,
118  Stretch = 18, // ONLY ON MID-PLANE
119  StretchDir = 19, // ONLY ON MID-PLANE
120  TensionField = 20, // Tension field indicator (1: slack, 0: wrinkled, -1: taut)
121  Theta = 21, // Tension field indicator (1: slack, 0: wrinkled, -1: taut)
122  Gamma = 22, // Tension field indicator (1: slack, 0: wrinkled, -1: taut)
123  Strain = 23,
124  StrainN = 24,
125  StrainM = 25,
126  Stress = 26,
127  StressN = 27,
128  StressM = 28,
129  CauchyStress = 29,
130  CauchyStressN = 30,
131  CauchyStressM = 31,
132  Spec2CovTransform = 101, // Transformation matrix from spectral to covariant basis
133  Spec2ConTransform = 102, // Transformation matrix from spectral to contravariant basis
134  Cov2CartTransform = 103, // Transformation matrix from covariant basis to cartesian basis
135  Con2CartTransform = 104, // Transformation matrix from contravariant basis to cartesian basis
136  StretchTransform = 105, // Transformation matrix from principal stretch axes to contravariant axes, such that E_con = E_p * T
137  PStressTransform = 106, // Transformation matrix from principal stress axes to covariant axes, such that S_cov = S_p * T
138  Thickness = 1000,
139  Parameters = 1001,
140  Deformation = 1002,
141  // FINISH VON MISES WITH THE CAUCHY STRESS!!!
142 };
143 
144 
154 template<enum Material material, enum Implementation implementation>
155 struct encodeMat_id {
156  static const constexpr short_t id = 10*(short_t)implementation + (short_t)material;
157 };
158 
167 template<short_t id>
168 struct decodeMat_id {
169  static const constexpr enum Material material = (enum Material)(id%10);
170  static const constexpr enum Implementation implementation = (enum Implementation)((id/10)%10);
171 };
172 
173 } // namespace
174 
MaterialOutput
This class describes the output type.
Definition: gsMaterialMatrixUtils.h:98
Decodes the material model and implementation.
Definition: gsMaterialMatrixUtils.h:168
#define short_t
Definition: gsConfig.h:35
Implementation
This class describes the way material models are implemented.
Definition: gsMaterialMatrixUtils.h:70
Provides a list of labeled parameters/options that can be set and accessed easily.
Encodes the material model and implementation.
Definition: gsMaterialMatrixUtils.h:155
Provides a base class for material matrices.
Material
This class describes a material model.
Definition: gsMaterialMatrixUtils.h:50
MatIntegration
This class describes if an object is integrated through-thickness or not.
Definition: gsMaterialMatrixUtils.h:35