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_neo_hookean_plane_strain_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: Vicente Mataix Ferrandiz
12 //
13 
14 #pragma once
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
23 
24 namespace Kratos
25 {
28 
32 
36 
40 
44 
52 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) HyperElasticIsotropicNeoHookeanPlaneStrain2D
54 {
55 public:
56 
59 
62 
65 
68 
70  typedef std::size_t SizeType;
71 
73  typedef std::size_t IndexType;
74 
76  static constexpr SizeType Dimension = 2;
77 
79  static constexpr SizeType VoigtSize = 3;
80 
83 
86 
91 
96 
101 
105 
109 
113  ConstitutiveLaw::Pointer Clone() const override;
114 
119  void GetLawFeatures(Features& rFeatures) override;
120 
125  {
126  return Dimension;
127  };
128 
132  SizeType GetStrainSize() const override
133  {
134  return VoigtSize;
135  };
136 
137 protected:
138 
141 
145 
149 
153 
162  void CalculateConstitutiveMatrixPK2(
163  Matrix& rConstitutiveMatrix,
164  const Matrix& InverseCTensor,
165  const double DeterminantF,
166  const double LameLambda,
167  const double LameMu
168  ) override;
169 
177  void CalculateConstitutiveMatrixKirchhoff(
178  Matrix& rConstitutiveMatrix,
179  const double DeterminantF,
180  const double LameLambda,
181  const double LameMu
182  ) override;
183 
189  void CalculateGreenLagrangianStrain(
191  Vector& rStrainVector
192  ) override;
193 
199  void CalculateAlmansiStrain(
201  Vector& rStrainVector
202  ) override;
203 
205 
206 private:
207 
210 
214 
218 
223 
228 
232  friend class Serializer;
233 
234  void save(Serializer& rSerializer) const override
235  {
237  }
238 
239  void load(Serializer& rSerializer) override
240  {
241  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType)
242  }
243 
244 
245 }; // Class HyperElasticIsotropicNeoHookeanPlaneStrain2D
246 } // namespace Kratos.
Definition: constitutive_law.h:47
This law defines an hyperelastic material according to the NeoHookean formulation for 3D cases.
Definition: hyper_elastic_isotropic_neo_hookean_3d.h:53
This law defines an hyperelastic material according to the NeoHookean formulation for 2D-plane strain...
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:54
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:124
ProcessInfo ProcessInfoType
The definition of the process info.
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:61
HyperElasticIsotropicNeoHookean3D BaseType
The definition of the base class.
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:67
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:132
std::size_t SizeType
The definition of the size type.
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:70
ConstitutiveLaw CLBaseType
The definition of the CL base class.
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:64
std::size_t IndexType
The definition of the index type.
Definition: hyper_elastic_isotropic_neo_hookean_plane_strain_2d.h:73
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticIsotropicNeoHookeanPlaneStrain2D)
Pointer definition of HyperElasticIsotropicNeoHookeanPlaneStrain2D.
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