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_3d.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) HyperElasticSimoTaylorNeoHookean3D
60 {
61 public:
62 
65 
68 
71 
73  typedef std::size_t SizeType;
74 
76  typedef std::size_t IndexType;
77 
79  static constexpr SizeType Dimension = 3;
80 
82  static constexpr SizeType VoigtSize = 6;
83 
86 
89 
94 
99 
104 
108 
112 
116  ConstitutiveLaw::Pointer Clone() const override;
117 
122  {
123  return Dimension;
124  };
125 
129  SizeType GetStrainSize() const override
130  {
131  return VoigtSize;
132  };
133 
139  {
140  return StrainMeasure_GreenLagrange;
141  }
142 
148  {
149  return StressMeasure_PK2;
150  }
151 
157  void CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters & rValues) override;
158 
166  double& CalculateValue(
167  ConstitutiveLaw::Parameters& rParameterValues,
168  const Variable<double>& rThisVariable,
169  double& rValue) override;
170 
171 protected:
172 
175 
179 
183 
187 
188 
190 private:
193 
197 
201 
202 
207 
215  virtual void AuxiliaryCalculateConstitutiveMatrixPK2(
216  Matrix& rConstitutiveMatrix,
217  const Vector& rStrain,
218  const double Kappa,
219  const double Mu);
220 
228  virtual void AuxiliaryCalculatePK2Stress(
229  Vector& rStressVector,
230  const Vector& rStrain,
231  const double Kappa,
232  const double Mu);
233 
238 
242  friend class Serializer;
243 
244  void save(Serializer& rSerializer) const override
245  {
247  }
248 
249  void load(Serializer& rSerializer) override
250  {
252  }
253 
254 
255 }; // Class HyperElasticSimoTaylorNeoHookean3D
256 } // namespace Kratos.
Definition: constitutive_law.h:47
StrainMeasure
Definition: constitutive_law.h:52
StressMeasure
Definition: constitutive_law.h:69
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 a Neo-Hookean hyperelastic material with monotonic behavior for 3D problems.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:60
StressMeasure GetStressMeasure() override
Returns the stress measure of this constitutive law (by default 2st Piola-Kirchhoff stress in voigt n...
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:147
std::size_t IndexType
The definition of the index type.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:76
StrainMeasure GetStrainMeasure() override
Returns the expected strain measure of this constitutive law (by default Green-Lagrange)
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:138
ProcessInfo ProcessInfoType
The definition of the process info.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:67
KRATOS_CLASS_POINTER_DEFINITION(HyperElasticSimoTaylorNeoHookean3D)
Pointer definition of HyperElasticSimoTaylorNeoHookean3D.
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:121
std::size_t SizeType
The definition of the size type.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:73
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:129
HyperElasticIsotropicNeoHookean3D BaseType
The definition of the CL base class.
Definition: hyper_elastic_simo_taylor_neo_hookean_3d.h:70
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
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