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.
List of all members
Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType > Class Template Reference

This class defines a yield surface according to Von-Mises theory. More...

#include <thermal_von_mises_yield_surface.h>

Collaboration diagram for Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >:

Public Member Functions

Life Cycle
 ThermalVonMisesYieldSurface ()
 Initialization constructor. More...
 
 ThermalVonMisesYieldSurface (ThermalVonMisesYieldSurface const &rOther)
 Copy constructor. More...
 
ThermalVonMisesYieldSurfaceoperator= (ThermalVonMisesYieldSurface const &rOther)
 Assignment operator. More...
 
virtual ~ThermalVonMisesYieldSurface ()
 Destructor. More...
 

Static Public Member Functions

Operations
static void CalculateEquivalentStress (const BoundedVector &rStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method computes sqrt(3*J2) More...
 
static void GetInitialUniaxialThreshold (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold. More...
 
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. More...
 
static void CalculatePlasticPotentialDerivative (const BoundedVector &rStressVector, const BoundedVector &rDeviator, const double J2, BoundedVector &rDerivativePlasticPotential, ConstitutiveLaw::Parameters &rValues)
 This method calculates the derivative of the plastic potential DG/DS. More...
 
static void CalculateYieldSurfaceDerivative (const BoundedVector &rStressVector, const BoundedVector &rDeviator, const double J2, BoundedVector &rFFlux, ConstitutiveLaw::Parameters &rValues)
 This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper International journal for numerical methods in engineering vol 113-135 1972. As: DF/DS = c1*V1 + c2*V2 + c3*V3. More...
 
static int Check (const Properties &rMaterialProperties)
 This method defines the check to be performed in the yield surface. More...
 
static bool IsWorkingWithTensionThreshold ()
 This method returns true if the yield surfacecompares with the tension tield stress. More...
 
static double GetScaleFactorTension (const Properties &rMaterialProperties)
 This method returns the scaling factor of the yield surface surfacecompares with the tension tield stress. More...
 

Type Definitions

using PlasticPotentialType = TPlasticPotentialType
 The type of potential plasticity. More...
 
using BaseType = VonMisesYieldSurface< TPlasticPotentialType >
 
using AdvCLutils = AdvancedConstitutiveLawUtilities< VoigtSize >
 Advanced contitutive laws utilities for the corresponding Voigt size. More...
 
using BoundedVector = array_1d< double, VoigtSize >
 Bounded vector for stresses/strains. More...
 
static constexpr SizeType Dimension = PlasticPotentialType::Dimension
 The Plastic potential already defines the working simension size. More...
 
static constexpr SizeType VoigtSize = PlasticPotentialType::VoigtSize
 The Plastic potential already defines the Voigt size. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 The machine precision zero tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ThermalVonMisesYieldSurface)
 Counted pointer of ThermalVonMisesYieldSurface. More...
 

Detailed Description

template<class TPlasticPotentialType>
class Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >

This class defines a yield surface according to Von-Mises theory.

The von Mises yield criterion (also known as the maximum distortion energy criterion) suggests that yielding of a ductile material begins when the second deviatoric stress invariant J2 reaches a critical value. It is part of plasticity theory that applies best to ductile materials, such as some metals. Prior to yield, material response can be assumed to be of a nonlinear elastic, viscoelastic, or linear elastic behavior. Includes thermal effects

See also
https://en.wikipedia.org/wiki/Von_Mises_yield_criterion
Template Parameters
TPlasticPotentialTypeThe plastic potential considered
Author
Alejandro Cornejo

Member Typedef Documentation

◆ AdvCLutils

template<class TPlasticPotentialType >
using Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::AdvCLutils = AdvancedConstitutiveLawUtilities<VoigtSize>

Advanced contitutive laws utilities for the corresponding Voigt size.

◆ BaseType

template<class TPlasticPotentialType >
using Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::BaseType = VonMisesYieldSurface<TPlasticPotentialType>

◆ BoundedVector

template<class TPlasticPotentialType >
using Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::BoundedVector = array_1d<double, VoigtSize>

Bounded vector for stresses/strains.

◆ PlasticPotentialType

template<class TPlasticPotentialType >
using Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::PlasticPotentialType = TPlasticPotentialType

The type of potential plasticity.

Constructor & Destructor Documentation

◆ ThermalVonMisesYieldSurface() [1/2]

template<class TPlasticPotentialType >
Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::ThermalVonMisesYieldSurface ( )
inline

Initialization constructor.

◆ ThermalVonMisesYieldSurface() [2/2]

template<class TPlasticPotentialType >
Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::ThermalVonMisesYieldSurface ( ThermalVonMisesYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Copy constructor.

◆ ~ThermalVonMisesYieldSurface()

template<class TPlasticPotentialType >
virtual Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::~ThermalVonMisesYieldSurface ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculateDamageParameter()

template<class TPlasticPotentialType >
static void Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::CalculateDamageParameter ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateEquivalentStress()

template<class TPlasticPotentialType >
static void Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::CalculateEquivalentStress ( const BoundedVector rStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method computes sqrt(3*J2)

Parameters
rStressVectorThe stress vector
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculatePlasticPotentialDerivative()

template<class TPlasticPotentialType >
static void Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::CalculatePlasticPotentialDerivative ( const BoundedVector rStressVector,
const BoundedVector rDeviator,
const double  J2,
BoundedVector rDerivativePlasticPotential,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method calculates the derivative of the plastic potential DG/DS.

Parameters
StressVectorThe stress vector
DeviatorThe deviatoric part of the stress vector
J2The second invariant of the Deviator
rDerivativePlasticPotentialThe derivative of the plastic potential
rValuesParameters of the constitutive law

◆ CalculateYieldSurfaceDerivative()

template<class TPlasticPotentialType >
static void Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::CalculateYieldSurfaceDerivative ( const BoundedVector rStressVector,
const BoundedVector rDeviator,
const double  J2,
BoundedVector rFFlux,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This script calculates the derivatives of the Yield Surf according to NAYAK-ZIENKIEWICZ paper International journal for numerical methods in engineering vol 113-135 1972. As: DF/DS = c1*V1 + c2*V2 + c3*V3.

Parameters
rStressVectorThe stress vector
rDeviatorThe deviatoric part of the stress vector
J2The second invariant of the Deviator
rFFluxThe derivative of the yield surface
rValuesParameters of the constitutive law

◆ Check()

template<class TPlasticPotentialType >
static int Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::Check ( const Properties rMaterialProperties)
inlinestatic

This method defines the check to be performed in the yield surface.

Returns
0 if OK, 1 otherwise

◆ GetInitialUniaxialThreshold()

template<class TPlasticPotentialType >
static void Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::GetInitialUniaxialThreshold ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetScaleFactorTension()

template<class TPlasticPotentialType >
static double Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::GetScaleFactorTension ( const Properties rMaterialProperties)
inlinestatic

This method returns the scaling factor of the yield surface surfacecompares with the tension tield stress.

◆ IsWorkingWithTensionThreshold()

template<class TPlasticPotentialType >
static bool Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::IsWorkingWithTensionThreshold ( )
inlinestatic

This method returns true if the yield surfacecompares with the tension tield stress.

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TPlasticPotentialType >
Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::KRATOS_CLASS_POINTER_DEFINITION ( ThermalVonMisesYieldSurface< TPlasticPotentialType >  )

Counted pointer of ThermalVonMisesYieldSurface.

◆ operator=()

template<class TPlasticPotentialType >
ThermalVonMisesYieldSurface& Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::operator= ( ThermalVonMisesYieldSurface< TPlasticPotentialType > const &  rOther)
inline

Assignment operator.

Member Data Documentation

◆ Dimension

template<class TPlasticPotentialType >
constexpr SizeType Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::Dimension = PlasticPotentialType::Dimension
staticconstexpr

The Plastic potential already defines the working simension size.

◆ tolerance

template<class TPlasticPotentialType >
constexpr double Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::tolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

The machine precision zero tolerance.

◆ VoigtSize

template<class TPlasticPotentialType >
constexpr SizeType Kratos::ThermalVonMisesYieldSurface< TPlasticPotentialType >::VoigtSize = PlasticPotentialType::VoigtSize
staticconstexpr

The Plastic potential already defines the Voigt size.


The documentation for this class was generated from the following file: