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.
generic_finite_strain_isotropic_plasticity.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: Vicente Mataix Ferrandiz
12 // Alejandro Cornejo
13 //
14 //
15 
16 #pragma once
17 
18 // System includes
19 
20 // External includes
21 
22 // Project includes
24 
25 namespace Kratos
26 {
29 
33 
34  // The size type definition
35  typedef std::size_t SizeType;
36 
40 
44 
48 
58 template<class TConstLawIntegratorType>
59 class KRATOS_API(CONSTITUTIVE_LAWS_APPLICATION) GenericFiniteStrainIsotropicPlasticity
60  : public GenericSmallStrainIsotropicPlasticity<TConstLawIntegratorType>
61 {
62 public:
65 
67  static constexpr SizeType Dimension = TConstLawIntegratorType::Dimension;
68 
70  static constexpr SizeType VoigtSize = TConstLawIntegratorType::VoigtSize;
71 
74 
77 
80 
83 
85  typedef Node NodeType;
86 
89 
93 
98  {
99  }
100 
104  ConstitutiveLaw::Pointer Clone() const override
105  {
106  return Kratos::make_shared<GenericFiniteStrainIsotropicPlasticity<TConstLawIntegratorType>>(*this);
107  }
108 
113  : BaseType(rOther)
114  {
115  }
116 
121  {
122  }
123 
127 
131 
136  void CalculateMaterialResponsePK1(ConstitutiveLaw::Parameters &rValues) override;
137 
142  void CalculateMaterialResponsePK2(ConstitutiveLaw::Parameters &rValues) override;
143 
148  void CalculateMaterialResponseKirchhoff(ConstitutiveLaw::Parameters &rValues) override;
149 
154  void CalculateMaterialResponseCauchy(ConstitutiveLaw::Parameters &rValues) override;
155 
160  void FinalizeMaterialResponsePK1(ConstitutiveLaw::Parameters &rValues) override;
161 
166  void FinalizeMaterialResponsePK2(ConstitutiveLaw::Parameters &rValues) override;
167 
172  void FinalizeMaterialResponseKirchhoff(ConstitutiveLaw::Parameters &rValues) override;
177  void FinalizeMaterialResponseCauchy(ConstitutiveLaw::Parameters &rValues) override;
178 
183  {
184  return true;
185  }
186 
191  {
192  return false;
193  }
194 
202  double& CalculateValue(
203  ConstitutiveLaw::Parameters& rParameterValues,
204  const Variable<double>& rThisVariable,
205  double& rValue) override;
206 
214  Vector& CalculateValue(
215  ConstitutiveLaw::Parameters& rParameterValues,
216  const Variable<Vector>& rThisVariable,
217  Vector& rValue
218  ) override;
219 
227  Matrix& CalculateValue(
228  ConstitutiveLaw::Parameters& rParameterValues,
229  const Variable<Matrix>& rThisVariable,
230  Matrix& rValue
231  ) override;
232 
242  int Check(
243  const Properties& rMaterialProperties,
244  const GeometryType& rElementGeometry,
245  const ProcessInfo& rCurrentProcessInfo
246  ) const override;
247 
251 
255 
259 
263 
265 
266 protected:
269 
273 
277 
281 
285 
289 
293 
295  private:
298 
302 
306 
310 
316  void CalculateTangentTensor(
319  );
320 
324 
328 
332 
333 
335 
336 }; // Class GenericYieldSurface
337 
338 } // namespace Kratos
StressMeasure
Definition: constitutive_law.h:69
@ StressMeasure_Cauchy
Definition: constitutive_law.h:73
This class is the base class which define all the constitutive laws for plasticity in strain framewor...
Definition: generic_finite_strain_isotropic_plasticity.h:61
Node NodeType
The node definition.
Definition: generic_finite_strain_isotropic_plasticity.h:85
GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType > BaseType
Definition of the base class.
Definition: generic_finite_strain_isotropic_plasticity.h:73
BoundedMatrix< double, Dimension, Dimension > BoundedMatrixType
The definition of the bounded matrix type.
Definition: generic_finite_strain_isotropic_plasticity.h:79
~GenericFiniteStrainIsotropicPlasticity() override
Definition: generic_finite_strain_isotropic_plasticity.h:120
bool RequiresFinalizeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: generic_finite_strain_isotropic_plasticity.h:182
Geometry< NodeType > GeometryType
The geometry definition.
Definition: generic_finite_strain_isotropic_plasticity.h:88
GenericFiniteStrainIsotropicPlasticity()
Definition: generic_finite_strain_isotropic_plasticity.h:97
array_1d< double, VoigtSize > BoundedArrayType
The definition of the Voigt array type.
Definition: generic_finite_strain_isotropic_plasticity.h:76
ConstitutiveLaw::Pointer Clone() const override
Definition: generic_finite_strain_isotropic_plasticity.h:104
GenericFiniteStrainIsotropicPlasticity(const GenericFiniteStrainIsotropicPlasticity &rOther)
Definition: generic_finite_strain_isotropic_plasticity.h:112
bool RequiresInitializeMaterialResponse() override
If the CL requires to initialize the material response, called by the element in InitializeSolutionSt...
Definition: generic_finite_strain_isotropic_plasticity.h:190
KRATOS_CLASS_POINTER_DEFINITION(GenericFiniteStrainIsotropicPlasticity)
Counted pointer of GenericFiniteStrainIsotropicPlasticity.
This class is the base class which define all the constitutive laws for plasticity in small deformati...
Definition: generic_small_strain_isotropic_plasticity.h:60
Geometry base class.
Definition: geometry.h:71
Definition: amatrix_interface.h:41
This class defines the node.
Definition: node.h:65
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
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::size_t SizeType
The definition of the size type.
Definition: mortar_classes.h:43
Definition: constitutive_law.h:189