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.
hencky_plastic_plane_strain_UP_2D_law.hpp
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Ilaria Iaconeta
11 //
12 
13 
14 #if !defined (KRATOS_HENCKY_PLASTIC_PLANE_STRAIN_UP_2D_LAW_H_INCLUDED)
15 #define KRATOS_HENCKY_PLASTIC_PLANE_STRAIN_UP_2D_LAW_H_INCLUDED
16 
17 // System includes
18 
19 // External includes
20 
21 // Project includes
23 
24 
25 namespace Kratos
26 {
35 class KRATOS_API(PARTICLE_MECHANICS_APPLICATION) HenckyElasticPlasticPlaneStrainUP2DLaw : public HenckyElasticPlasticUP3DLaw
36 {
37 public:
43  typedef std::size_t SizeType;
44 
45  typedef ParticleFlowRule::Pointer MPMFlowRulePointer;
46  typedef ParticleYieldCriterion::Pointer YieldCriterionPointer;
47  typedef ParticleHardeningLaw::Pointer HardeningLawPointer;
48  typedef Properties::Pointer PropertiesPointer;
49 
55 
64 
65 
67 
72 
73 
78  //HyperElasticPlasticPlaneStrain2DLaw& operator=(const HyperElasticPlasticPlaneStrain2DLaw& rOther);
79 
84  ConstitutiveLaw::Pointer Clone() const override;
85 
90 
103  {
104  return 2;
105  };
106 
110  SizeType GetStrainSize() const override
111  {
112  return 3;
113  };
114 
115 
116  void GetLawFeatures(Features& rFeatures) override;
126  //int Check(const Properties& rProperties, const GeometryType& rGeometry, const ProcessInfo& rCurrentProcessInfo);
127 
128 
129 
136  //virtual String Info() const;
140  //virtual void PrintInfo(std::ostream& rOStream) const;
144  //virtual void PrintData(std::ostream& rOStream) const;
145 
146 protected:
147 
159 
165  void CalculateGreenLagrangeStrain( const Matrix & rRightCauchyGreen,
166  Vector& rStrainVector ) override;
167 
168 
174  void CalculateAlmansiStrain( const Matrix & rLeftCauchyGreen,
175  Vector& rStrainVector ) override;
176 
177 
178  //virtual void ConvertConstitutiveMatrixToAppropiateDimension(Matrix& rConstitutiveMatrix);
179  Matrix SetConstitutiveMatrixToAppropiateDimension(Matrix& rConstitutiveMatrix,const Matrix& rElastoPlasticTangentMatrix) override;
180 
181  Vector SetStressMatrixToAppropiateVectorDimension(Vector& rStressVector, const Matrix& rStressMatrix) override;
182 
183  //virtual void CalculateHenckyMainStrain(const Matrix& rCauchyGreeMatrix,
184  //FlowRule::RadialReturnVariables& rReturnMappingVariables,
185  //Vector& rMainStrain);
186 private:
187 
190 
191 
195 
196 
200 
201 
205 
206 
211 
212 
216  friend class Serializer;
217 
218  void save(Serializer& rSerializer) const override
219  {
221  }
222 
223  void load(Serializer& rSerializer) override
224  {
226  }
227 
228 
229 
230 }; // Class HyperElasticPlasticPlaneStrain2DLaw
231 } // namespace Kratos.
232 #endif // KRATOS_HYPERELASTIC_PLASTIC_PLANE_STRAIN_2D_LAW_H_INCLUDED defined
233 
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: hencky_plastic_3D_law.hpp:74
ParticleFlowRule::Pointer MPMFlowRulePointer
Definition: hencky_plastic_3D_law.hpp:72
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: hencky_plastic_3D_law.hpp:73
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:36
Properties::Pointer PropertiesPointer
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:48
ConstitutiveLaw BaseType
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:42
ProcessInfo ProcessInfoType
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:41
KRATOS_CLASS_POINTER_DEFINITION(HenckyElasticPlasticPlaneStrainUP2DLaw)
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:46
SizeType WorkingSpaceDimension() override
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:102
SizeType GetStrainSize() const override
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:110
std::size_t SizeType
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:43
ParticleFlowRule::Pointer MPMFlowRulePointer
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:45
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: hencky_plastic_plane_strain_UP_2D_law.hpp:47
Definition: hencky_plastic_UP_3D_law.hpp:35
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