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_axisym_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, Bodhinanda Chandra
11 //
12 
13 
14 #if !defined (KRATOS_HENCKY_PLASTIC_AXISYM_2D_LAW_H_INCLUDED)
15 #define KRATOS_HENCKY_PLASTIC_AXISYM_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) HenckyElasticPlasticAxisym2DLaw : public HenckyElasticPlastic3DLaw
36 {
37 public:
43  typedef std::size_t SizeType;
44 
45  typedef ParticleFlowRule::Pointer FlowRulePointer;
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 4;
113  };
114 
115 
125  //int Check(const Properties& rProperties, const GeometryType& rGeometry, const ProcessInfo& rCurrentProcessInfo);
126 
127 
128 
135  //virtual String Info() const;
139  //virtual void PrintInfo(std::ostream& rOStream) const;
143  //virtual void PrintData(std::ostream& rOStream) const;
144 
145 protected:
146 
158 
164  virtual void CalculateGreenLagrangeStrain( const Matrix & rRightCauchyGreen,
165  Vector& rStrainVector ) override;
166 
167 
173  virtual void CalculateAlmansiStrain( const Matrix & rLeftCauchyGreen,
174  Vector& rStrainVector ) override;
175 
176 
177  //virtual void ConvertConstitutiveMatrixToAppropiateDimension(Matrix& rConstitutiveMatrix);
178  virtual Matrix SetConstitutiveMatrixToAppropiateDimension(Matrix& rConstitutiveMatrix,const Matrix& rElastoPlasticTangentMatrix) override;
179 
180  //virtual Vector SetStressMatrixToAppropiateVectorDimension(Vector& rStressVector, const Matrix& rStressMatrix);
181 
182  //virtual void CalculateHenckyMainStrain(const Matrix& rCauchyGreeMatrix,
183  //FlowRule::RadialReturnVariables& rReturnMappingVariables,
184  //Vector& rMainStrain);
185 private:
186 
189 
190 
194 
195 
199 
200 
204 
205 
210 
211 
215  friend class Serializer;
216 
217  virtual void save(Serializer& rSerializer) const override
218  {
220  }
221 
222  virtual void load(Serializer& rSerializer) override
223  {
225  }
226 
227 
228 
229 }; // Class HyperElasticPlasticPlaneStrain2DLaw
230 } // namespace Kratos.
231 #endif // KRATOS_HYPERELASTIC_PLASTIC_PLANE_STRAIN_2D_LAW_H_INCLUDED defined
232 
Definition: constitutive_law.h:47
std::size_t SizeType
Definition: constitutive_law.h:82
Definition: hencky_plastic_3D_law.hpp:36
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: hencky_plastic_3D_law.hpp:74
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: hencky_plastic_3D_law.hpp:73
Definition: hencky_plastic_axisym_2D_law.hpp:36
std::size_t SizeType
Definition: hencky_plastic_axisym_2D_law.hpp:43
ConstitutiveLaw BaseType
Definition: hencky_plastic_axisym_2D_law.hpp:42
SizeType WorkingSpaceDimension() override
Definition: hencky_plastic_axisym_2D_law.hpp:102
ProcessInfo ProcessInfoType
Definition: hencky_plastic_axisym_2D_law.hpp:41
SizeType GetStrainSize() const override
Definition: hencky_plastic_axisym_2D_law.hpp:110
ParticleFlowRule::Pointer FlowRulePointer
Definition: hencky_plastic_axisym_2D_law.hpp:45
KRATOS_CLASS_POINTER_DEFINITION(HenckyElasticPlasticAxisym2DLaw)
ParticleHardeningLaw::Pointer HardeningLawPointer
Definition: hencky_plastic_axisym_2D_law.hpp:47
Properties::Pointer PropertiesPointer
Definition: hencky_plastic_axisym_2D_law.hpp:48
ParticleYieldCriterion::Pointer YieldCriterionPointer
Definition: hencky_plastic_axisym_2D_law.hpp:46
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