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.
hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h
Go to the documentation of this file.
1 // KRATOS ___ _ _ _ _ _ __ _
2 // / __\___ _ __ ___| |_(_) |_ _ _| |_(_)_ _____ / / __ ___ _____ /_\ _ __ _ __
3 // / / / _ \| '_ \/ __| __| | __| | | | __| \ \ / / _ \/ / / _` \ \ /\ / / __| //_\\| '_ \| '_ |
4 // / /__| (_) | | | \__ \ |_| | |_| |_| | |_| |\ V / __/ /__| (_| |\ V V /\__ \/ _ \ |_) | |_) |
5 // \____/\___/|_| |_|___/\__|_|\__|\__,_|\__|_| \_/ \___\____/\__,_| \_/\_/ |___/\_/ \_/ .__/| .__/
6 // |_| |_|
7 //
8 // License: BSD License
9 // license: structural_mechanics_application/license.txt
10 //
11 // Main authors: Malik Ali Dawi
12 // Ruben Zorrilla
13 //
14 
15 #pragma once
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
23 
24 namespace Kratos
25 {
28 
32 
36 
40 
44 
53 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) HyperElasticIsotropicKirchhoffPlaneStress2D
55 {
56 public:
57 
60 
63 
66 
69 
71  typedef std::size_t SizeType;
72 
74  typedef std::size_t IndexType;
75 
77  static constexpr SizeType Dimension = 2;
78 
80  static constexpr SizeType VoigtSize = 3;
81 
84 
87 
92 
97 
102 
106 
110 
114  ConstitutiveLaw::Pointer Clone() const override;
115 
120  void GetLawFeatures(Features& rFeatures) override;
121 
126  {
127  return Dimension;
128  };
129 
133  SizeType GetStrainSize() const override
134  {
135  return VoigtSize;
136  };
137 
138 protected:
139 
142 
146 
150 
154 
161  void CalculateConstitutiveMatrixPK2(
162  Matrix& rConstitutiveMatrix,
163  const double YoungModulus,
164  const double PoissonCoefficient
165  ) override;
166 
167  void CalculatePK2Stress(
168  const Vector& rStrainVector,
169  Vector& rStressVector,
170  double YoungModulus,
171  double PoissonCoefficient
172  ) override;
173 
179  void CalculateGreenLagrangianStrain(
181  Vector& rStrainVector
182  ) override;
183 
189  void CalculateAlmansiStrain(
191  Vector& rStrainVector
192  ) override;
193 
195 
196 private:
197 
200 
204 
208 
213 
218 
222  friend class Serializer;
223 
224  void save(Serializer& rSerializer) const override
225  {
227  }
228 
229  void load(Serializer& rSerializer) override
230  {
231  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType)
232  }
233 
234 
235 }; // Class HyperElasticIsotropicKirchhoffPlaneStress2D
236 } // namespace Kratos.
Definition: constitutive_law.h:47
This law defines an hyperelastic material according to the Saint-Venant–Kirchhoff formulation for 3D ...
Definition: hyper_elastic_isotropic_kirchhoff_3d.h:55
This law defines an hyperelastic material according to the Saint-Venant–Kirchhoff formulation for 2D-...
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:55
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:133
ConstitutiveLaw CLBaseType
The definition of the CL base class.
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:65
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticIsotropicKirchhoffPlaneStress2D)
Pointer definition of HyperElasticIsotropicKirchhoffPlaneStress2D.
ProcessInfo ProcessInfoType
The definition of the process info.
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:62
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:125
std::size_t IndexType
The definition of the index type.
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:74
HyperElasticIsotropicKirchhoff3D BaseType
The definition of the base class.
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:68
std::size_t SizeType
The definition of the size type.
Definition: hyper_elastic_isotropic_kirchhoff_plane_stress_2d.h:71
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
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189