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_plastic_potential.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: Alejandro Cornejo & Lucia Barbu
12 //
13 
14 #pragma once
15 
16 // System includes
17 
18 // Project includes
19 #include "includes/define.h"
20 #include "includes/serializer.h"
21 #include "includes/properties.h"
22 #include "utilities/math_utils.h"
25 
26 namespace Kratos
27 {
30 
34 
35  // The size type definition
36  typedef std::size_t SizeType;
37 
41 
45 
49 
58 template <SizeType TVoigtSize = 6>
60 {
61  public:
64 
66  static constexpr SizeType Dimension = TVoigtSize == 6 ? 3 : 2;
67 
69  static constexpr SizeType VoigtSize = TVoigtSize;
70 
73 
77 
80  {
81  }
82 
85  {
86  }
87 
90  {
91  return *this;
92  }
93 
96 
100 
104 
117  const array_1d<double, VoigtSize>& rPredictiveStressVector,
118  const array_1d<double, VoigtSize>& rDeviator,
119  const double J2,
122  )
123  {
124  }
125 
130  static int Check(const Properties& rMaterialProperties)
131  {
132  return 0;
133  }
134 
138 
142 
146 
150 
152 
153 protected:
156 
160 
164 
168 
172 
176 
180 
182 
183 private:
186 
190 
194 
198 
202 
206 
210 
212 
213 }; // Class GenericYieldSurface
214 
216 
219 
223 
225 
226 } // namespace Kratos.
If the plastic potential is of the same type as the yield surface we talk about associated flow rules...
Definition: generic_plastic_potential.h:60
static constexpr SizeType VoigtSize
The define the Voigt size.
Definition: generic_plastic_potential.h:69
virtual ~GenericPlasticPotential()
Destructor.
Definition: generic_plastic_potential.h:95
static constexpr SizeType Dimension
We define the dimension.
Definition: generic_plastic_potential.h:66
GenericPlasticPotential & operator=(GenericPlasticPotential const &rOther)
Assignment operator.
Definition: generic_plastic_potential.h:89
static void CalculatePlasticPotentialDerivative(const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rGFlux, ConstitutiveLaw::Parameters &rValues)
This script calculates the derivatives of the plastic potential according to NAYAK-ZIENKIEWICZ paper ...
Definition: generic_plastic_potential.h:116
GenericPlasticPotential()
Initialization constructor.
Definition: generic_plastic_potential.h:79
static int Check(const Properties &rMaterialProperties)
This method defines the check to be performed in the plastic potential.
Definition: generic_plastic_potential.h:130
KRATOS_CLASS_POINTER_DEFINITION(GenericPlasticPotential)
Counted pointer of GenericPlasticPotential.
GenericPlasticPotential(GenericPlasticPotential const &rOther)
Copy constructor.
Definition: generic_plastic_potential.h:84
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
float J2
Definition: isotropic_damage_automatic_differentiation.py:133
Definition: constitutive_law.h:189