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.
thermal_rankine_yield_surface.h
Go to the documentation of this file.
1 // KRATOS ___ _ _ _ _ _ __ _
2 // / __\___ _ __ ___| |_(_) |_ _ _| |_(_)_ _____ / / __ ___ _____ /_\ _ __ _ __
3 // / / / _ \| '_ \/ __| __| | __| | | | __| \ \ / / _ \/ / / _` \ \ /\ / / __| //_\\| '_ \| '_ |
4 // / /__| (_) | | | \__ \ |_| | |_| |_| | |_| |\ V / __/ /__| (_| |\ V V /\__ \/ _ \ |_) | |_) |
5 // \____/\___/|_| |_|___/\__|_|\__|\__,_|\__|_| \_/ \___\____/\__,_| \_/\_/ |___/\_/ \_/ .__/| .__/
6 //
7 // License: BSD License
8 // license: structural_mechanics_application/license.txt
9 //
10 // Main authors: Alejandro Cornejo
11 //
12 
13 #pragma once
14 
15 // System includes
16 
17 // Project includes
20 
21 
22 namespace Kratos
23 {
26 
30 
34 
38 
42 
55 template <class TPlasticPotentialType>
57 {
58 public:
61 
63  using PlasticPotentialType = TPlasticPotentialType;
64 
67 
69  static constexpr SizeType Dimension = PlasticPotentialType::Dimension;
70 
72  static constexpr SizeType VoigtSize = PlasticPotentialType::VoigtSize;
73 
76 
78  static constexpr double tolerance = std::numeric_limits<double>::epsilon();
79 
83 
86  {
87  }
88 
91  {
92  }
93 
96  {
97  return *this;
98  }
99 
102 
109 
117  const array_1d<double, VoigtSize>& rStressVector,
118  const Vector& rStrainVector,
119  double& rEquivalentStress,
121  )
122  {
123  BaseType::CalculateEquivalentStress(rStressVector, rStrainVector, rEquivalentStress, rValues);
124  }
125 
131  static void GetInitialUniaxialThreshold(ConstitutiveLaw::Parameters& rValues, double& rThreshold)
132  {
134  }
135 
144  double& rAParameter,
145  const double CharacteristicLength)
146  {
147  ThermalVonMisesType::CalculateDamageParameter(rValues, rAParameter, CharacteristicLength);
148  }
149 
159  const array_1d<double, VoigtSize>& rStressVector,
160  const array_1d<double, VoigtSize>& rDeviator,
161  const double J2,
162  array_1d<double, VoigtSize>& rPlasticPotential,
164  )
165  {
166  BaseType::CalculatePlasticPotentialDerivative(rStressVector, rDeviator, J2, rPlasticPotential, rValues);
167  }
168 
181  const array_1d<double, VoigtSize>& rStressVector,
182  const array_1d<double, VoigtSize>& rDeviator,
183  const double J2,
186  )
187  {
188  BaseType::CalculateYieldSurfaceDerivative(rStressVector, rDeviator, J2, rFFlux, rValues);
189  }
190 
195  static int Check(const Properties& rMaterialProperties)
196  {
197  return BaseType::Check(rMaterialProperties);
198  }
199 
204  {
206  }
207 
211  static double GetScaleFactorTension(const Properties& rMaterialProperties)
212  {
213  return BaseType::GetScaleFactorTension(rMaterialProperties);
214  }
215 
219 
223 
227 
231 
233 
234 protected:
237 
241 
245 
249 
253 
257 
261 
263 private:
266 
270 
274 
278 
282 
286 
290 
292 
293 }; // Class RankineYieldSurface
294 
296 
299 
303 
305 
306 } // namespace Kratos.
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
This class defines a yield surface according to Rankine theory.
Definition: rankine_yield_surface.h:61
static void CalculatePlasticPotentialDerivative(const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rPlasticPotential, ConstitutiveLaw::Parameters &rValues)
This method calculates the derivative of the plastic potential DG/DS.
Definition: rankine_yield_surface.h:179
static void CalculateYieldSurfaceDerivative(const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rFFlux, ConstitutiveLaw::Parameters &rValues)
This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper Interna...
Definition: rankine_yield_surface.h:201
static int Check(const Properties &rMaterialProperties)
This method defines the check to be performed in the yield surface.
Definition: rankine_yield_surface.h:216
static bool IsWorkingWithTensionThreshold()
This method returns true if the yield surfacecompares with the tension tield stress.
Definition: rankine_yield_surface.h:241
static void CalculateEquivalentStress(const array_1d< double, VoigtSize > &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
This method the uniaxial equivalent stress.
Definition: rankine_yield_surface.h:117
static double GetScaleFactorTension(const Properties &rMaterialProperties)
This method returns the scaling factor of the yield surface surfacecompares with the tension tield st...
Definition: rankine_yield_surface.h:249
Definition: thermal_rankine_yield_surface.h:57
static void CalculatePlasticPotentialDerivative(const array_1d< double, VoigtSize > &rStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rPlasticPotential, ConstitutiveLaw::Parameters &rValues)
This method calculates the derivative of the plastic potential DG/DS.
Definition: thermal_rankine_yield_surface.h:158
static void CalculateEquivalentStress(const array_1d< double, VoigtSize > &rStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
This method the uniaxial equivalent stress.
Definition: thermal_rankine_yield_surface.h:116
static int Check(const Properties &rMaterialProperties)
This method defines the check to be performed in the yield surface.
Definition: thermal_rankine_yield_surface.h:195
static constexpr SizeType Dimension
The Plastic potential already defines the working simension size.
Definition: thermal_rankine_yield_surface.h:69
static double GetScaleFactorTension(const Properties &rMaterialProperties)
This method returns the scaling factor of the yield surface surfacecompares with the tension tield st...
Definition: thermal_rankine_yield_surface.h:211
TPlasticPotentialType PlasticPotentialType
The type of potential plasticity.
Definition: thermal_rankine_yield_surface.h:63
static void GetInitialUniaxialThreshold(ConstitutiveLaw::Parameters &rValues, double &rThreshold)
This method returns the initial uniaxial stress threshold.
Definition: thermal_rankine_yield_surface.h:131
ThermalRankineYieldSurface & operator=(ThermalRankineYieldSurface const &rOther)
Assignment operator.
Definition: thermal_rankine_yield_surface.h:95
ThermalRankineYieldSurface(ThermalRankineYieldSurface const &rOther)
Copy constructor.
Definition: thermal_rankine_yield_surface.h:90
static constexpr SizeType VoigtSize
The Plastic potential already defines the Voigt size.
Definition: thermal_rankine_yield_surface.h:72
static bool IsWorkingWithTensionThreshold()
This method returns true if the yield surfacecompares with the tension tield stress.
Definition: thermal_rankine_yield_surface.h:203
ThermalRankineYieldSurface()
Initialization constructor.
Definition: thermal_rankine_yield_surface.h:85
static constexpr double tolerance
The zero tolerance definition.
Definition: thermal_rankine_yield_surface.h:78
static void CalculateDamageParameter(ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
This method returns the damage parameter needed in the exp/linear expressions of damage.
Definition: thermal_rankine_yield_surface.h:142
virtual ~ThermalRankineYieldSurface()
Destructor.
Definition: thermal_rankine_yield_surface.h:101
static void CalculateYieldSurfaceDerivative(const array_1d< double, VoigtSize > &rStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rFFlux, ConstitutiveLaw::Parameters &rValues)
This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper Interna...
Definition: thermal_rankine_yield_surface.h:180
KRATOS_CLASS_POINTER_DEFINITION(ThermalRankineYieldSurface)
Counted pointer of ThermalRankineYieldSurface.
This class defines a yield surface according to Von-Mises theory.
Definition: thermal_von_mises_yield_surface.h:51
static void CalculateDamageParameter(ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
This method returns the damage parameter needed in the exp/linear expressions of damage.
Definition: thermal_von_mises_yield_surface.h:153
static void GetInitialUniaxialThreshold(ConstitutiveLaw::Parameters &rValues, double &rThreshold)
This method returns the initial uniaxial stress threshold.
Definition: thermal_von_mises_yield_surface.h:131
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