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_tresca_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 namespace Kratos
22 {
25 
29 
33 
37 
41 
48 template <class TPlasticPotentialType>
50 {
51 public:
54 
56  using PlasticPotentialType = TPlasticPotentialType;
57 
60 
62  static constexpr SizeType Dimension = PlasticPotentialType::Dimension;
63 
65  static constexpr SizeType VoigtSize = PlasticPotentialType::VoigtSize;
66 
69 
71  static constexpr double tolerance = std::numeric_limits<double>::epsilon();
72 
76 
79  {
80  }
81 
84  {
85  }
86 
89  {
90  return *this;
91  }
92 
95 
99 
103 
112  const array_1d<double, VoigtSize>& rStressVector,
113  const Vector& rStrainVector,
114  double& rEquivalentStress,
116  )
117  {
118  BaseType::CalculateEquivalentStress(rStressVector, rStrainVector, rEquivalentStress, rValues);
119  }
120 
128  double& rThreshold
129  )
130  {
132  }
133 
142  double& rAParameter,
143  const double CharacteristicLength
144  )
145  {
146  ThermalVonMisesType::CalculateDamageParameter(rValues, rAParameter, CharacteristicLength);
147  }
148 
158  const array_1d<double, VoigtSize>& rStressVector,
159  const array_1d<double, VoigtSize>& rDeviator,
160  const double J2,
161  array_1d<double, VoigtSize>& rDerivativePlasticPotential,
163  )
164  {
165  BaseType::CalculatePlasticPotentialDerivative(rStressVector, rDeviator, J2, rDerivativePlasticPotential, rValues);
166  }
167 
180  const array_1d<double, VoigtSize>& rStressVector,
181  const array_1d<double, VoigtSize>& rDeviator,
182  const double J2,
185  )
186  {
187  BaseType::CalculateYieldSurfaceDerivative(rStressVector, rDeviator, J2, rFFlux, rValues);
188  }
189 
194  static int Check(const Properties& rMaterialProperties)
195  {
196  return BaseType::Check(rMaterialProperties);
197  }
198 
203  {
205  }
206 
210  static double GetScaleFactorTension(const Properties& rMaterialProperties)
211  {
212  return BaseType::GetScaleFactorTension(rMaterialProperties);
213  }
214 
218 
222 
226 
230 
232 
233 protected:
236 
240 
244 
248 
252 
256 
260 
262 private:
265 
269 
273 
277 
281 
285 
289 
291 
292 }; // Class TrescaYieldSurface
293 
295 
298 
302 
304 
305 } // namespace Kratos.
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
Definition: thermal_tresca_yield_surface.h:50
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_tresca_yield_surface.h:111
ThermalTrescaYieldSurface & operator=(ThermalTrescaYieldSurface const &rOther)
Assignment operator.
Definition: thermal_tresca_yield_surface.h:88
static int Check(const Properties &rMaterialProperties)
This method defines the check to be performed in the yield surface.
Definition: thermal_tresca_yield_surface.h:194
static void GetInitialUniaxialThreshold(ConstitutiveLaw::Parameters &rValues, double &rThreshold)
This method returns the initial uniaxial stress threshold.
Definition: thermal_tresca_yield_surface.h:126
ThermalTrescaYieldSurface(ThermalTrescaYieldSurface const &rOther)
Copy constructor.
Definition: thermal_tresca_yield_surface.h:83
static constexpr SizeType Dimension
The Plastic potential already defines the working simension size.
Definition: thermal_tresca_yield_surface.h:62
static void CalculatePlasticPotentialDerivative(const array_1d< double, VoigtSize > &rStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rDerivativePlasticPotential, ConstitutiveLaw::Parameters &rValues)
This method calculates the derivative of the plastic potential DG/DS.
Definition: thermal_tresca_yield_surface.h:157
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_tresca_yield_surface.h:140
static constexpr double tolerance
The machine precision zero tolerance.
Definition: thermal_tresca_yield_surface.h:71
virtual ~ThermalTrescaYieldSurface()
Destructor.
Definition: thermal_tresca_yield_surface.h:94
KRATOS_CLASS_POINTER_DEFINITION(ThermalTrescaYieldSurface)
Counted pointer of TrescaYieldSurface.
static constexpr SizeType VoigtSize
The Plastic potential already defines the Voigt size.
Definition: thermal_tresca_yield_surface.h:65
TPlasticPotentialType PlasticPotentialType
The type of potential plasticity.
Definition: thermal_tresca_yield_surface.h:56
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_tresca_yield_surface.h:179
ThermalTrescaYieldSurface()
Initialization constructor.
Definition: thermal_tresca_yield_surface.h:78
static double GetScaleFactorTension(const Properties &rMaterialProperties)
This method returns the scaling factor of the yield surface surfacecompares with the tension tield st...
Definition: thermal_tresca_yield_surface.h:210
static bool IsWorkingWithTensionThreshold()
This method returns true if the yield surfacecompares with the tension tield stress.
Definition: thermal_tresca_yield_surface.h:202
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
This class defines a yield surface according to Tresca theory.
Definition: tresca_yield_surface.h:58
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: tresca_yield_surface.h:209
static bool IsWorkingWithTensionThreshold()
This method returns true if the yield surfacecompares with the tension tield stress.
Definition: tresca_yield_surface.h:269
static void CalculatePlasticPotentialDerivative(const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rDerivativePlasticPotential, ConstitutiveLaw::Parameters &rValues)
This method calculates the derivative of the plastic potential DG/DS.
Definition: tresca_yield_surface.h:187
static void CalculateEquivalentStress(const array_1d< double, VoigtSize > &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
This method the uniaxial equivalent stress.
Definition: tresca_yield_surface.h:116
static int Check(const Properties &rMaterialProperties)
This method defines the check to be performed in the yield surface.
Definition: tresca_yield_surface.h:244
static double GetScaleFactorTension(const Properties &rMaterialProperties)
This method returns the scaling factor of the yield surface surfacecompares with the tension tield st...
Definition: tresca_yield_surface.h:277
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