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_simo_taylor_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: Ruben Zorrilla
12 //
13 
14 #pragma once
15 
16 // System includes
17 
18 // External includes
19 
20 // Project includes
22 
23 // Application includes
25 
26 namespace Kratos
27 {
28 
31 
35 
39 
43 
47 
58 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) HyperElasticSimoTaylorNeoHookeanPlaneStrain2D
60 {
61 public:
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  {
120  return Dimension;
121  };
122 
126  SizeType GetStrainSize() const override
127  {
128  return VoigtSize;
129  };
130 
131 protected:
132 
135 
139 
143 
147 
153  void CalculateGreenLagrangianStrain(
155  Vector& rStrainVector) override;
156 
158 private:
161 
165 
169 
173 
181  void AuxiliaryCalculateConstitutiveMatrixPK2(
182  Matrix& rConstitutiveMatrix,
183  const Vector& rStrain,
184  const double Kappa,
185  const double Mu) override;
186 
194  void AuxiliaryCalculatePK2Stress(
195  Vector& rStressVector,
196  const Vector& rStrain,
197  const double Kappa,
198  const double Mu) override;
199 
201 
206 
210 
211  friend class Serializer;
212 
213  void save(Serializer& rSerializer) const override
214  {
216  }
217 
218  void load(Serializer& rSerializer) override
219  {
220  KRATOS_SERIALIZE_LOAD_BASE_CLASS( rSerializer, BaseType)
221  }
222 
223 
224 }; // Class HyperElasticSimoTaylorNeoHookeanPlaneStrain2D
225 } // namespace Kratos.
Definition: constitutive_law.h:47
This law defines a Neo-Hookean hyperelastic material with monotonic behavior for 3D problems.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:60
This law defines a Neo-Hookean hyperelastic material with monotonic behavior for plane strain problem...
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:60
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:118
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticSimoTaylorNeoHookeanPlaneStrain2D)
Pointer definition of HyperElasticSimoTaylorNeoHookeanPlaneStrain2D.
std::size_t IndexType
The definition of the index type.
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:73
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:126
std::size_t SizeType
The definition of the size type.
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:70
HyperElasticSimoTaylorNeoHookean3D BaseType
The definition of the base class.
Definition: hyper_elastic_simo_taylor_neo_hookean_plane_strain_2d.h:67
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
Mu
Definition: generate_hyper_elastic_simo_taylor_neo_hookean.py:12
Kappa
Definition: generate_hyper_elastic_simo_taylor_neo_hookean.py:11
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:189