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_elastic_plane_stress_2D_law.h
Go to the documentation of this file.
1 // KRATOS___
2 // // ) )
3 // // ___ ___
4 // // ____ //___) ) // ) )
5 // // / / // // / /
6 // ((____/ / ((____ ((___/ / MECHANICS
7 //
8 // License: geo_mechanics_application/license.txt
9 //
10 // Main authors: Vahid Galavi
11 //
12 
13 #pragma once
14 
15 // Project includes
16 #include "linear_elastic_law.h"
17 
18 namespace Kratos
19 {
22 
26 
30 
34 
38 
45 class KRATOS_API(GEO_MECHANICS_APPLICATION) GeoLinearElasticPlaneStress2DLaw
46  : public GeoLinearElasticLaw
47 {
48 public:
51 
53 
55  using SizeType = std::size_t;
56 
58  static constexpr SizeType Dimension = 2;
59 
61  static constexpr SizeType VoigtSize = 3;
62 
65 
68 
69  ConstitutiveLaw::Pointer Clone() const override;
70 
74 
78 
83  void GetLawFeatures(Features& rFeatures) override;
84 
89  {
90  return Dimension;
91  };
92 
96  SizeType GetStrainSize() const override
97  {
98  return VoigtSize;
99  }
100 
104 
108 
112 
116 
123  bool& GetValue(const Variable<bool>& rThisVariable, bool& rValue) override;
124  using BaseType::GetValue;
125 
127 
128 protected:
129 
132 
136 
140 
144 
150  void CalculateElasticMatrix(Matrix& C, ConstitutiveLaw::Parameters& rValues) override;
151 
158  void CalculatePK2Stress(const Vector& rStrainVector,
159  Vector& rStressVector,
161  ) override;
162 
168  void CalculateCauchyGreenStrain(ConstitutiveLaw::Parameters& rValues,
169  Vector& rStrainVector
170  ) override;
171 
173 
174 private:
175 
178 
182 
186 
191 
196 
200  friend class Serializer;
201 
202  void save(Serializer& rSerializer) const override
203  {
205  }
206 
207  void load(Serializer& rSerializer) override
208  {
209  KRATOS_SERIALIZE_LOAD_BASE_CLASS(rSerializer, BaseType)
210  }
211 }; // Class GeoLinearElasticPlaneStress2DLaw
212 
213 }
std::size_t SizeType
Definition: constitutive_law.h:82
Definition: linear_elastic_law.h:21
This class defines a small deformation linear elastic constitutive model for plane stress cases.
Definition: linear_elastic_plane_stress_2D_law.h:47
KRATOS_CLASS_POINTER_DEFINITION(GeoLinearElasticPlaneStress2DLaw)
Counted pointer of GeoLinearElasticPlaneStress2DLaw.
SizeType GetStrainSize() const override
Definition: linear_elastic_plane_stress_2D_law.h:96
SizeType WorkingSpaceDimension() override
Definition: linear_elastic_plane_stress_2D_law.h:88
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