G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsThinShellFunctions.h
Go to the documentation of this file.
1
16#pragma once
17
21
23
24
25namespace gismo
26{
27
37{
38 enum type
39 {
40 displacement = -1,
41 von_mises = 0,
52 total = 11,
53 membrane_strain = 12,
54 flexural_strain = 13,
55 principal_membrane_strain = 14,
56 principal_flexural_strain = 15,
57 principal_stretch = 16,
68 };
69};
70
77template <class T>
79{
80public:
81
92 const gsFunctionSet<T> & deformed,
94 index_t patch,
96 : m_patches(&geometry),
97 m_defpatches(&deformed),
98 m_materialMatrices(mm),
99 m_patchID(patch),
100 m_stress_type(type)
101 {
102
103 }
104
106 {
107 // delete m_patches;
108 // delete m_defpatches;
109 }
110
111 virtual short_t domainDim() const
112 {
113 return 2;
114 }
115
116 virtual short_t targetDim() const
117 {
118 switch (m_stress_type)
119 {
120 default:
121 return 0;
122 break;
123 case stress_type::displacement :
124 return 3;
125 break;
126
128 return 3;
129 break;
130
132 return 3;
133 break;
134
136 return 3;
137 break;
138
140 return 3;
141 break;
142
144 return 3;
145 break;
146
148 return 3;
149 break;
150
152 return 3;
153 break;
154
156 return 3;
157 break;
158
159 // TO BE IMPLEMENTED
160 // -------------------------------------
161 case stress_type::von_mises :
162 return 2;
163 break;
164
166 return 1;
167 break;
168
170 return 1;
171 break;
172 // -------------------------------------
173
174 case stress_type::membrane_strain :
175 return 3;
176 break;
177 case stress_type::principal_membrane_strain :
178 return 3;
179 break;
180 case stress_type::principal_flexural_strain :
181 return 3;
182 break;
183
184 case stress_type::flexural_strain :
185 return 3;
186 break;
187 case stress_type::principal_stretch :
188 return 3;
189 break;
191 return 2;
192 break;
194 return 2;
195 break;
197 return 2;
198 break;
200 return 3;
201 break;
203 return 3;
204 break;
206 return 3;
207 break;
209 return 3;
210 break;
212 return 3;
213 break;
215 return 3;
217 return 1;
218 break;
219 /*
220 DEFAULT includes:
221 stress_type::membrane;
222 stress_type::flexural;
223 stress_type::membrane_strain;
224 stress_type::flexural_strain;
225 stress_type::principal_stretch;
226 stress_type::principal_stretch_dir1;
227 stress_type::principal_stretch_dir2;
228 stress_type::principal_stretch_dir3
229 */
230 }
231 }
232
240 virtual void eval_into(const gsMatrix<T> & u, gsMatrix<T> & result) const;
241
242protected:
243
244 typedef gsExprAssembler<>::geometryMap geometryMap;
245 typedef gsExprAssembler<>::variable variable;
246 typedef gsExprAssembler<>::space space;
247 typedef gsExprAssembler<>::solution solution;
248
249 const gsFunctionSet<T> * m_patches;
250 const gsFunctionSet<T> * m_defpatches;
251 const gsMaterialMatrixContainer<T> & m_materialMatrices;
252 index_t m_patchID;
253 stress_type::type m_stress_type;
254
255}; // class definition ends
256
257
258} // namespace ends
259
260
261#ifndef GISMO_BUILD_LIB
262#include GISMO_HPP_HEADER(gsThinShellFunctions.hpp)
263#endif
Definition gsExpressions.h:973
Definition gsExpressions.h:928
gsExprHelper< T >::geometryMap geometryMap
Geometry map type.
Definition gsExprAssembler.h:65
expr::gsFeSolution< T > solution
Solution type.
Definition gsExprAssembler.h:68
Interface for the set of functions defined on a domain (the total number of functions in the set equa...
Definition gsFunctionSet.h:219
A function from a n-dimensional domain to an m-dimensional image.
Definition gsFunction.h:60
This class serves as the evaluator of material matrices, based on gsMaterialMatrixBase.
Definition gsMaterialMatrixContainer.h:34
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Compute Cauchy stresses for a previously computed/defined displacement field. Can be pushed into gsPi...
Definition gsThinShellFunctions.h:79
gsShellStressFunction(const gsFunctionSet< T > &geometry, const gsFunctionSet< T > &deformed, const gsMaterialMatrixContainer< T > &mm, index_t patch, stress_type::type type)
Constructs a new instance.
Definition gsThinShellFunctions.h:91
virtual short_t domainDim() const
Dimension of the (source) domain.
Definition gsThinShellFunctions.h:111
virtual short_t targetDim() const
Dimension of the target space.
Definition gsThinShellFunctions.h:116
virtual void eval_into(const gsMatrix< T > &u, gsMatrix< T > &result) const
Each column of the input matrix (u) corresponds to one evaluation point. Each column of the output ma...
Definition gsThinShellFunctions.hpp:23
#define short_t
Definition gsConfig.h:35
#define index_t
Definition gsConfig.h:32
Generic expressions matrix assembly.
Provides an evaluator for material matrices for thin shells.
Provides an evaluator for material matrices for thin shells.
Utilities for gsThinShellAssembler. Mainly expressions.
The G+Smo namespace, containing all definitions for the library.
Specifies the type of stresses to compute.
Definition gsThinShellFunctions.h:37
type
Definition gsThinShellFunctions.h:39
@ principal_stress_dir1
principal stretch directions
Definition gsThinShellFunctions.h:64
@ membrane_force
compute membrane Cauchy stresses
Definition gsThinShellFunctions.h:45
@ von_mises_flexural
compute only von Mises stress - membrane stresses
Definition gsThinShellFunctions.h:43
@ membrane
compute only von Mises stress - flexural stresses
Definition gsThinShellFunctions.h:44
@ membrane_force_PK2
compute membrane PK2 stresses
Definition gsThinShellFunctions.h:47
@ flexural_moment_PK2
compute flexural Cauchy stresses integrated over the thickness
Definition gsThinShellFunctions.h:51
@ von_mises_membrane
compute only von Mises stress
Definition gsThinShellFunctions.h:42
@ membrane_PK2
compute membrane Cauchy stresses integrated over the thickness
Definition gsThinShellFunctions.h:46
@ principal_stress
principal stretches
Definition gsThinShellFunctions.h:58
@ tension_field
principal stress directions
Definition gsThinShellFunctions.h:67
@ principal_stress_membrane
principal stress membrane
Definition gsThinShellFunctions.h:59
@ principal_stress_dir3
principal stress directions
Definition gsThinShellFunctions.h:66
@ principal_stretch_dir2
principal stretch directions
Definition gsThinShellFunctions.h:62
@ principal_stress_flexural
principal stress membrane
Definition gsThinShellFunctions.h:60
@ principal_stretch_dir1
principal stress bending
Definition gsThinShellFunctions.h:61
@ flexural_moment
compute flexural PK2 stresses
Definition gsThinShellFunctions.h:50
@ flexural
compute membrane PK2 stresses integrated over the thickness
Definition gsThinShellFunctions.h:48
@ principal_stress_dir2
principal stress directions
Definition gsThinShellFunctions.h:65
@ principal_stretch_dir3
principal stretch directions
Definition gsThinShellFunctions.h:63
@ total
compute flexural PK2 stresses integrated over the thickness
Definition gsThinShellFunctions.h:52
@ flexural_PK2
compute flexural Cauchy stresses
Definition gsThinShellFunctions.h:49