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.
linear_plane_strain.h
Go to the documentation of this file.
1 // KRATOS ___| | | |
2 // \___ \ __| __| | | __| __| | | __| _` | |
3 // | | | | | ( | | | | ( | |
4 // _____/ \__|_| \__,_|\___|\__|\__,_|_| \__,_|_| MECHANICS
5 //
6 // License: BSD License
7 // license: StructuralMechanicsApplication/license.txt
8 //
9 // Main authors: Riccardo Rossi
10 //
11 
12 #pragma once
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
19 #include "custom_constitutive/elastic_isotropic_3d.h"
20 
21 namespace Kratos
22 {
25 
29 
33 
37 
41 
50 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) LinearPlaneStrain
51  : public ElasticIsotropic3D
52 {
53 public:
56 
59 
62 
65 
67  typedef std::size_t SizeType;
68 
70  static constexpr SizeType Dimension = 2;
71 
73  static constexpr SizeType VoigtSize = 3;
74 
77 
80 
85 
89  ConstitutiveLaw::Pointer Clone() const override;
90 
94  LinearPlaneStrain (const LinearPlaneStrain& rOther);
95 
96 
100  ~LinearPlaneStrain() override;
101 
105 
109 
114  void GetLawFeatures(Features& rFeatures) override;
115 
121  {
122  return Dimension;
123  };
124 
129  SizeType GetStrainSize() const override
130  {
131  return VoigtSize;
132  }
133 
137 
141 
145 
149 
156  bool& GetValue(const Variable<bool>& rThisVariable, bool& rValue) override;
157  Matrix& GetValue(const Variable<Matrix>& rThisVariable, Matrix& rValue) override;
158  // ConstitutiveLaw::VoigtSizeMatrixType& GetValue(const Variable<VoigtSizeMatrixType>& rThisVariable, ConstitutiveLaw::VoigtSizeMatrixType& rValue) override;
159  // ConstitutiveLaw::DeformationGradientMatrixType& GetValue(const Variable<DeformationGradientMatrixType>& rThisVariable, ConstitutiveLaw::DeformationGradientMatrixType& rValue) override;
160  Vector& GetValue(const Variable<Vector>& rThisVariable, Vector& rValue) override;
161  // ConstitutiveLaw::StrainVectorType& GetValue(const Variable<StrainVectorType>& rThisVariable, ConstitutiveLaw::StrainVectorType& rValue) override;
162  // ConstitutiveLaw::StressVectorType& GetValue(const Variable<StressVectorType>& rThisVariable, ConstitutiveLaw::StressVectorType& rValue) override;
163  double& GetValue(const Variable<double>& rThisVariable, double& rValue) override;
164 
166 
167 protected:
168 
171 
175 
179 
183 
189  void CalculateElasticMatrix(
192  ) override;
193 
200  void CalculatePK2Stress(
201  const ConstitutiveLaw::StrainVectorType& rStrainVector,
202  ConstitutiveLaw::StressVectorType& rStressVector,
204  ) override;
205 
211  void CalculateCauchyGreenStrain(
213  ConstitutiveLaw::StrainVectorType& rStrainVector
214  ) override;
215 
217 
218 private:
219 
222 
226 
230 
235 
240 
244  friend class Serializer;
245 
246  void save(Serializer& rSerializer) const override
247  {
249  }
250 
251  void load(Serializer& rSerializer) override
252  {
254  }
255 
256 
257 }; // Class LinearPlaneStrain
258 } // namespace Kratos.
Definition: constitutive_law.h:47
Definition: elastic_isotropic_3d.h:53
This class defines a small deformation linear elastic constitutive model for 3D cases.
Definition: linear_plane_strain.h:52
ConstitutiveLaw CLBaseType
The base class ConstitutiveLaw type definition.
Definition: linear_plane_strain.h:61
ProcessInfo ProcessInfoType
The process info definition.
Definition: linear_plane_strain.h:58
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: linear_plane_strain.h:120
ElasticIsotropic3D BaseType
The base class ElasticIsotropic3D type definition.
Definition: linear_plane_strain.h:64
std::size_t SizeType
The size type definition.
Definition: linear_plane_strain.h:67
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: linear_plane_strain.h:129
KRATOS_CLASS_POINTER_DEFINITION(LinearPlaneStrain)
Counted pointer of LinearPlaneStrain.
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
Variable class contains all information needed to store and retrive data from a data container.
Definition: variable.h:63
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
int C
Definition: generate_hyper_elastic_simo_taylor_neo_hookean.py:27
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189