KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
linear_plane_strain.h
Go to the documentation of this file.
1 // KRATOS ___| | | |
2 // \___ \ __| __| | | __| __| | | __| _` | |
3 // | | | | | ( | | | | ( | |
4 // _____/ \__|_| \__,_|\___|\__|\__,_|_| \__,_|_| MECHANICS
5 //
6 // License: BSD License
7 // license: structural_mechanics_application/license.txt
8 //
9 // Main authors: Riccardo Rossi
10 //
11 
12 #if !defined (KRATOS_LINEAR_PLANE_STRAIN_LAW_H_INCLUDED)
13 #define KRATOS_LINEAR_PLANE_STRAIN_LAW_H_INCLUDED
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "custom_constitutive/elastic_isotropic_3d.h"
21 
22 namespace Kratos
23 {
26 
30 
34 
38 
42 
51 class KRATOS_API(FEM_TO_DEM_APPLICATION) LinearPlaneStrainFEMDEM
53 {
54 public:
57 
60 
63 
66 
68  typedef std::size_t SizeType;
69 
71  static constexpr SizeType Dimension = 2;
72 
74  static constexpr SizeType VoigtSize = 3;
75 
78 
81 
86 
90  ConstitutiveLaw::Pointer Clone() const override;
91 
96 
97 
101  ~LinearPlaneStrainFEMDEM() override;
102 
106 
110 
115  void GetLawFeatures(Features& rFeatures) override;
116 
122  {
123  return Dimension;
124  };
125 
130  SizeType GetStrainSize() const override
131  {
132  return VoigtSize;
133  }
134 
138 
142 
146 
150 
157  bool& GetValue(const Variable<bool>& rThisVariable, bool& rValue) override;
158  Matrix& GetValue(const Variable<Matrix>& rThisVariable, Matrix& rValue) override;
159  Vector& GetValue(const Variable<Vector>& rThisVariable, Vector& rValue) override;
160  double& GetValue(const Variable<double>& rThisVariable, double& rValue) override;
161 
163 
164 protected:
165 
168 
172 
176 
180 
186  void CalculateElasticMatrix(
187  Matrix& C,
189  ) override;
190 
197  void CalculatePK2Stress(
198  const Vector& rStrainVector,
199  Vector& rStressVector,
201  ) override;
202 
208  void CalculateCauchyGreenStrain(
210  Vector& rStrainVector
211  ) override;
212 
214 
215 private:
216 
219 
223 
227 
232 
237 
241  friend class Serializer;
242 
243  void save(Serializer& rSerializer) const override
244  {
246  }
247 
248  void load(Serializer& rSerializer) override
249  {
251  }
252 
253 
254 }; // Class LinearPlaneStrainFEMDEM
255 } // namespace Kratos.
256 #endif // KRATOS_LINEAR_PLANE_STRAIN_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
Definition: elastic_isotropic_3d.h:54
This class defines a small deformation linear elastic constitutive model for plane strain cases.
Definition: linear_plane_strain.h:53
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: linear_plane_strain.h:130
KRATOS_CLASS_POINTER_DEFINITION(LinearPlaneStrainFEMDEM)
Counted pointer of LinearPlaneStrainFEMDEM.
ConstitutiveLaw CLBaseType
The base class ConstitutiveLaw type definition.
Definition: linear_plane_strain.h:62
std::size_t SizeType
The size type definition.
Definition: linear_plane_strain.h:68
ProcessInfo ProcessInfoType
The process info definition.
Definition: linear_plane_strain.h:59
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: linear_plane_strain.h:121
ElasticIsotropic3DFEMDEM BaseType
The base class ElasticIsotropic3DFEMDEM type definition.
Definition: linear_plane_strain.h:65
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
int C
Definition: generate_hyper_elastic_simo_taylor_neo_hookean.py:27
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189