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.
small_strain_j2_plasticity_plane_strain_2d.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: Marcelo Raschi
12 // Manuel Caicedo
13 // Alfredo Huespe
14 // Collaborator: Vicente Mataix Ferrandiz
15 
16 #pragma once
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
24 
25 namespace Kratos
26 {
29 
33 
37 
41 
45 
64 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) SmallStrainJ2PlasticityPlaneStrain2D
66 {
67 public:
68 
71 
74  typedef std::size_t SizeType;
75 
76  // Counted pointer
78 
82 
87 
92 
97 
102  ConstitutiveLaw::Pointer Clone() const override;
103 
107 
111 
116  void GetLawFeatures(Features& rFeatures) override;
117 
122  {
123  return 2;
124  };
125 
129  SizeType GetStrainSize() const override
130  {
131  return 4;
132  };
133 
140 
142  void PrintData(std::ostream& rOStream) const override {
143  rOStream << "Linear J2 Plasticity Plane Strain 2D constitutive law\n";
144  };
145 
146 protected:
147 
150 
154 
158 
162 
169  void CalculateStressResponse(
171  Vector& rPlasticStrain,
172  double& rAccumulatedPlasticStrain
173  ) override;
174 
183  void CalculateTangentMatrix(const double DeltaGamma, const double NormStressTrial,
184  const Vector &YieldFunctionNormalVector,
185  const Properties &rMaterialProperties,
186  const double AccumulatedPlasticStrain, Matrix &rElasticityTensor) override;
187 
193  void CalculateElasticMatrix(const Properties &rMaterialProperties, Matrix &rElasticityTensor) override;
194 
198 
202 
207 
208 private:
209 
212 
216 
219 
223 
228 
232 
233  friend class Serializer;
234 
235  void save(Serializer& rSerializer) const override;
236 
237  void load(Serializer& rSerializer) override;
238 
239 }; // Class SmallStrainJ2PlasticityPlaneStrain2D
240 } // namespace Kratos.
std::size_t SizeType
Definition: constitutive_law.h:82
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
Definition: small_strain_j2_plasticity_3d.h:65
Definition: small_strain_j2_plasticity_plane_strain_2d.h:66
SmallStrainJ2Plasticity3D BaseType
Definition: small_strain_j2_plasticity_plane_strain_2d.h:73
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: small_strain_j2_plasticity_plane_strain_2d.h:121
std::size_t SizeType
Definition: small_strain_j2_plasticity_plane_strain_2d.h:74
KRATOS_CLASS_POINTER_DEFINITION(SmallStrainJ2PlasticityPlaneStrain2D)
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: small_strain_j2_plasticity_plane_strain_2d.h:142
ProcessInfo ProcessInfoType
Definition: small_strain_j2_plasticity_plane_strain_2d.h:72
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: small_strain_j2_plasticity_plane_strain_2d.h:129
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
def load(f)
Definition: ode_solve.py:307
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189