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.
hyperelastic_plane_strain_UP_2D_law.hpp
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Bodhinanda Chandra
11 //
12 // References: This class is adapted from applications/SolidMechanicsApplication/custom_constitutive/hyperelastic_U_P_plane_strain_2D_law.cpp
13 
14 
15 #if !defined (KRATOS_HYPERELASTIC_PLANE_STRAIN_UP_2D_LAW_H_INCLUDED)
16 #define KRATOS_HYPERELASTIC_PLANE_STRAIN_UP_2D_LAW_H_INCLUDED
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
24 
25 
26 namespace Kratos
27 {
38 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) HyperElasticPlaneStrainUP2DLaw : public HyperElasticUP3DLaw
39 {
40 public:
46  typedef std::size_t SizeType;
52 
61 
66  ConstitutiveLaw::Pointer Clone() const override;
67 
72 
73 
78  //HyperElasticPlaneStrainUP2DLaw& operator=(const HyperElasticPlaneStrainUP2DLaw& rOther);
79 
80 
85 
98  {
99  return 2;
100  };
101 
105  SizeType GetStrainSize() const override
106  {
107  return 3;
108  };
109 
114  void GetLawFeatures(Features& rFeatures) override;
115 
122  //String Info() const override;
126  //void PrintInfo(std::ostream& rOStream) const override;
130  //void PrintData(std::ostream& rOStream) const override;
131 
132 protected:
133 
145 
146 
152  void CalculateGreenLagrangeStrain( const Matrix & rRightCauchyGreen,
153  Vector& rStrainVector ) override;
154 
155 
161  void CalculateAlmansiStrain( const Matrix & rLeftCauchyGreen,
162  Vector& rStrainVector ) override;
163 
164 
165 
166 
174  void CalculateIsochoricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
175  const Matrix & rIsoStressMatrix,
176  Matrix& rConstitutiveMatrix) override;
177 
178 
179 
186  void CalculateVolumetricConstitutiveMatrix (const MaterialResponseVariables& rElasticVariables,
187  Matrix& rConstitutiveMatrix) override;
188 
189 
190 private:
191 
197 
198 
202 
203 
207 
212 
213 
217  friend class Serializer;
218 
219  void save(Serializer& rSerializer) const override
220  {
222  }
223 
224  void load(Serializer& rSerializer) override
225  {
227  }
228 
229 
230 
231 }; // Class HyperElasticPlaneStrainUP2DLaw
232 } // namespace Kratos.
233 #endif // KRATOS_HYPERELASTIC_PLANE_STRAIN_UP_2D_LAW_H_INCLUDED defined
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:39
ProcessInfo ProcessInfoType
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:44
ConstitutiveLaw BaseType
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:45
SizeType GetStrainSize() const override
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:105
SizeType WorkingSpaceDimension() override
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:97
std::size_t SizeType
Definition: hyperelastic_plane_strain_UP_2D_law.hpp:46
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticPlaneStrainUP2DLaw)
Definition: hyperelastic_UP_3D_law.hpp:39
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