G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsThinShellFunctions.h
Go to the documentation of this file.
1 
16 #pragma once
17 
23 
25 
26 
27 namespace gismo
28 {
29 
39 {
40  enum type
41  {
42  displacement = -1,
43  von_mises = 0,
46  membrane = 3,
50  flexural = 7,
54  total = 11,
55  membrane_strain = 12,
56  flexural_strain = 13,
57  principal_membrane_strain = 14,
58  principal_flexural_strain = 15,
59  principal_stretch = 16,
70  };
71 };
72 
79 template <class T>
81 {
82 public:
83 
94  const gsFunctionSet<T> & deformed,
96  index_t patch,
97  stress_type::type type)
98  : m_patches(&geometry),
99  m_defpatches(&deformed),
100  m_materialMatrices(mm),
101  m_patchID(patch),
102  m_stress_type(type)
103  {
104 
105  }
106 
108  {
109  // delete m_patches;
110  // delete m_defpatches;
111  }
112 
113  virtual short_t domainDim() const
114  {
115  return 2;
116  }
117 
118  virtual short_t targetDim() const
119  {
120  switch (m_stress_type)
121  {
122  default:
123  return 0;
124  break;
125  case stress_type::displacement :
126  return 3;
127  break;
128 
129  case stress_type::membrane :
130  return 3;
131  break;
132 
133  case stress_type::flexural :
134  return 3;
135  break;
136 
138  return 3;
139  break;
140 
142  return 3;
143  break;
144 
146  return 3;
147  break;
148 
150  return 3;
151  break;
152 
154  return 3;
155  break;
156 
158  return 3;
159  break;
160 
161  // TO BE IMPLEMENTED
162  // -------------------------------------
163  case stress_type::von_mises :
164  return 2;
165  break;
166 
168  return 1;
169  break;
170 
172  return 1;
173  break;
174  // -------------------------------------
175 
176  case stress_type::membrane_strain :
177  return 3;
178  break;
179  case stress_type::principal_membrane_strain :
180  return 3;
181  break;
182  case stress_type::principal_flexural_strain :
183  return 3;
184  break;
185 
186  case stress_type::flexural_strain :
187  return 3;
188  break;
189  case stress_type::principal_stretch :
190  return 3;
191  break;
193  return 2;
194  break;
196  return 2;
197  break;
199  return 2;
200  break;
202  return 3;
203  break;
205  return 3;
206  break;
208  return 3;
209  break;
211  return 3;
212  break;
214  return 3;
215  break;
217  return 3;
219  return 1;
220  break;
221  /*
222  DEFAULT includes:
223  stress_type::membrane;
224  stress_type::flexural;
225  stress_type::membrane_strain;
226  stress_type::flexural_strain;
227  stress_type::principal_stretch;
228  stress_type::principal_stretch_dir1;
229  stress_type::principal_stretch_dir2;
230  stress_type::principal_stretch_dir3
231  */
232  }
233  }
234 
242  virtual void eval_into(const gsMatrix<T> & u, gsMatrix<T> & result) const;
243 
244 protected:
245 
246  typedef gsExprAssembler<>::geometryMap geometryMap;
247  typedef gsExprAssembler<>::variable variable;
248  typedef gsExprAssembler<>::space space;
249  typedef gsExprAssembler<>::solution solution;
250 
251  const gsFunctionSet<T> * m_patches;
252  const gsFunctionSet<T> * m_defpatches;
253  const gsMaterialMatrixContainer<T> & m_materialMatrices;
254  index_t m_patchID;
255  stress_type::type m_stress_type;
256 
257 }; // class definition ends
258 
259 
260 } // namespace ends
261 
262 
263 #ifndef GISMO_BUILD_LIB
264 #include GISMO_HPP_HEADER(gsThinShellFunctions.hpp)
265 #endif
Provides an evaluator for material matrices for thin shells.
principal stress membrane
Definition: gsThinShellFunctions.h:61
Provides linear material matrices.
principal stretches
Definition: gsThinShellFunctions.h:60
Compute Cauchy stresses for a previously computed/defined displacement field. Can be pushed into gsPi...
Definition: gsThinShellFunctions.h:80
compute membrane Cauchy stresses
Definition: gsThinShellFunctions.h:47
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:93
gsExprHelper< T >::geometryMap geometryMap
Geometry map type.
Definition: gsExprAssembler.h:58
virtual short_t domainDim() const
Dimension of the (source) domain.
Definition: gsThinShellFunctions.h:113
compute only von Mises stress - flexural stresses
Definition: gsThinShellFunctions.h:46
compute membrane Cauchy stresses integrated over the thickness
Definition: gsThinShellFunctions.h:48
#define short_t
Definition: gsConfig.h:35
compute only von Mises stress
Definition: gsThinShellFunctions.h:44
This class serves as the evaluator of material matrices, based on gsMaterialMatrixBase.
Definition: gsMaterialMatrixContainer.h:33
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
principal stress directions
Definition: gsThinShellFunctions.h:69
#define index_t
Definition: gsConfig.h:32
A function from a n-dimensional domain to an m-dimensional image.
Definition: gsFunction.h:59
compute membrane PK2 stresses integrated over the thickness
Definition: gsThinShellFunctions.h:50
principal stress directions
Definition: gsThinShellFunctions.h:67
Provides an evaluator for material matrices for thin shells.
Specifies the type of stresses to compute.
Definition: gsThinShellFunctions.h:38
compute membrane PK2 stresses
Definition: gsThinShellFunctions.h:49
compute flexural Cauchy stresses
Definition: gsThinShellFunctions.h:51
principal stress membrane
Definition: gsThinShellFunctions.h:62
Definition: gsDirichletValues.h:23
Interface for the set of functions defined on a domain (the total number of functions in the set equa...
Definition: gsFuncData.h:23
principal stress bending
Definition: gsThinShellFunctions.h:63
virtual short_t targetDim() const
Dimension of the target space.
Definition: gsThinShellFunctions.h:118
Provides hyperelastic material matrices.
type
Definition: gsThinShellFunctions.h:40
compute flexural PK2 stresses integrated over the thickness
Definition: gsThinShellFunctions.h:54
compute flexural Cauchy stresses integrated over the thickness
Definition: gsThinShellFunctions.h:53
principal stretch directions
Definition: gsThinShellFunctions.h:66
principal stretch directions
Definition: gsThinShellFunctions.h:64
compute flexural PK2 stresses
Definition: gsThinShellFunctions.h:52
principal stress directions
Definition: gsThinShellFunctions.h:68
expr::gsFeSolution< T > solution
Solution type.
Definition: gsExprAssembler.h:61
principal stretch directions
Definition: gsThinShellFunctions.h:65
Definition: gsExpressions.h:114
Generic expressions matrix assembly.
Utilities for gsThinShellAssembler. Mainly expressions.
compute only von Mises stress - membrane stresses
Definition: gsThinShellFunctions.h:45