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::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType > Class Template Reference

: This object integrates the predictive stress using the isotropic damage theory by means of linear/exponential softening. More...

#include <generic_cl_integrator_damage.h>

Collaboration diagram for Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >:

Static Public Member Functions

Operations
static void IntegrateStressVector (array_1d< double, VoigtSize > &rPredictiveStressVector, const double UniaxialStress, double &rDamage, double &rThreshold, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength)
 This method integrates the predictive stress vector with the CL using linear or exponential softening. More...
 
static void CalculateExponentialDamage (const double UniaxialStress, const double Threshold, const double DamageParameter, const double CharacteristicLength, ConstitutiveLaw::Parameters &rValues, double &rDamage)
 This computes the damage variable according to exponential softening. More...
 
static void CalculateHardeningDamage (const double UniaxialStress, const double Threshold, const double DamageParameter, const double CharacteristicLength, ConstitutiveLaw::Parameters &rValues, double &rDamage)
 This computes the damage variable according to parabolic hardening and exponential softening. More...
 
static void CalculateLinearDamage (const double UniaxialStress, const double Threshold, const double DamageParameter, const double CharacteristicLength, ConstitutiveLaw::Parameters &rValues, double &rDamage)
 This computes the damage variable according to linear softening. More...
 
static void CalculateCurveFittingDamage (const double UniaxialStress, const double Threshold, const double DamageParameter, const double CharacteristicLength, ConstitutiveLaw::Parameters &rValues, double &rDamage)
 This computes the damage variable according to a two region curve: More...
 
static void GetInitialUniaxialThreshold (ConstitutiveLaw::Parameters &rValues, double &rInitialThreshold)
 This method returns the initial uniaxial stress threshold. More...
 
static int Check (const Properties &rMaterialProperties)
 This method defines in the CL integrator. More...
 
static void CalculateYieldSurfaceDerivative (const array_1d< double, VoigtSize > &rStressVector, array_1d< double, VoigtSize > &rYieldDerivative, ConstitutiveLaw::Parameters &rValues)
 This method returns the derivative of the yield surface. More...
 

Type Definitions

typedef TYieldSurfaceType YieldSurfaceType
 The type of yield surface. More...
 
typedef YieldSurfaceType::PlasticPotentialType PlasticPotentialType
 The type of plastic potential. More...
 
static constexpr SizeType Dimension = YieldSurfaceType::Dimension
 The define the working dimension size, already defined in the yield surface. More...
 
static constexpr SizeType VoigtSize = YieldSurfaceType::VoigtSize
 The define the Voigt size, already defined in the yield surface. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (GenericConstitutiveLawIntegratorDamage)
 Counted pointer of GenericConstitutiveLawIntegratorDamage. More...
 
 GenericConstitutiveLawIntegratorDamage ()
 Initialization constructor. More...
 
 GenericConstitutiveLawIntegratorDamage (GenericConstitutiveLawIntegratorDamage const &rOther)
 Copy constructor. More...
 
GenericConstitutiveLawIntegratorDamageoperator= (GenericConstitutiveLawIntegratorDamage const &rOther)
 Assignment operator. More...
 
virtual ~GenericConstitutiveLawIntegratorDamage ()
 Destructor. More...
 

Detailed Description

template<class TYieldSurfaceType>
class Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >

: This object integrates the predictive stress using the isotropic damage theory by means of linear/exponential softening.

The definitions of these classes is completely static, the derivation is done in a static way The damage integrator requires the definition of the following properties:

Member Typedef Documentation

◆ PlasticPotentialType

template<class TYieldSurfaceType >
typedef YieldSurfaceType::PlasticPotentialType Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::PlasticPotentialType

The type of plastic potential.

◆ YieldSurfaceType

template<class TYieldSurfaceType >
typedef TYieldSurfaceType Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::YieldSurfaceType

The type of yield surface.

Constructor & Destructor Documentation

◆ GenericConstitutiveLawIntegratorDamage() [1/2]

template<class TYieldSurfaceType >
Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::GenericConstitutiveLawIntegratorDamage ( )
inline

Initialization constructor.

◆ GenericConstitutiveLawIntegratorDamage() [2/2]

template<class TYieldSurfaceType >
Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::GenericConstitutiveLawIntegratorDamage ( GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType > const &  rOther)
inline

Copy constructor.

◆ ~GenericConstitutiveLawIntegratorDamage()

template<class TYieldSurfaceType >
virtual Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::~GenericConstitutiveLawIntegratorDamage ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CalculateCurveFittingDamage()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::CalculateCurveFittingDamage ( const double  UniaxialStress,
const double  Threshold,
const double  DamageParameter,
const double  CharacteristicLength,
ConstitutiveLaw::Parameters rValues,
double rDamage 
)
inlinestatic

This computes the damage variable according to a two region curve:

  • integrated_stress - strain curve defined by points followed by
  • exponential softening curve.
    Parameters
    UniaxialStressThe equivalent uniaxial stress
    ThresholdThe maximum uniaxial stress achieved previously
    rDamageThe internal variable of the damage model
    rValuesParameters of the constitutive law
    CharacteristicLengthThe equivalent length of the FE

◆ CalculateExponentialDamage()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::CalculateExponentialDamage ( const double  UniaxialStress,
const double  Threshold,
const double  DamageParameter,
const double  CharacteristicLength,
ConstitutiveLaw::Parameters rValues,
double rDamage 
)
inlinestatic

This computes the damage variable according to exponential softening.

Parameters
UniaxialStressThe equivalent uniaxial stress
ThresholdThe maximum uniaxial stress achieved previously
rDamageThe internal variable of the damage model
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateHardeningDamage()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::CalculateHardeningDamage ( const double  UniaxialStress,
const double  Threshold,
const double  DamageParameter,
const double  CharacteristicLength,
ConstitutiveLaw::Parameters rValues,
double rDamage 
)
inlinestatic

This computes the damage variable according to parabolic hardening and exponential softening.

Parameters
UniaxialStressThe equivalent uniaxial stress
ThresholdThe maximum uniaxial stress achieved previously
rDamageThe internal variable of the damage model
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateLinearDamage()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::CalculateLinearDamage ( const double  UniaxialStress,
const double  Threshold,
const double  DamageParameter,
const double  CharacteristicLength,
ConstitutiveLaw::Parameters rValues,
double rDamage 
)
inlinestatic

This computes the damage variable according to linear softening.

Parameters
UniaxialStressThe equivalent uniaxial stress
ThresholdThe maximum uniaxial stress achieved previously
rDamageThe internal variable of the damage model
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateYieldSurfaceDerivative()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::CalculateYieldSurfaceDerivative ( const array_1d< double, VoigtSize > &  rStressVector,
array_1d< double, VoigtSize > &  rYieldDerivative,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method returns the derivative of the yield surface.

Parameters
rStressVectorThe stress vector
rYieldDerivativeThe derivative of the yield surface

◆ Check()

template<class TYieldSurfaceType >
static int Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::Check ( const Properties rMaterialProperties)
inlinestatic

This method defines in the CL integrator.

Returns
0 if OK, 1 otherwise

◆ GetInitialUniaxialThreshold()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::GetInitialUniaxialThreshold ( ConstitutiveLaw::Parameters rValues,
double rInitialThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ IntegrateStressVector()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::IntegrateStressVector ( array_1d< double, VoigtSize > &  rPredictiveStressVector,
const double  UniaxialStress,
double rDamage,
double rThreshold,
ConstitutiveLaw::Parameters rValues,
const double  CharacteristicLength 
)
inlinestatic

This method integrates the predictive stress vector with the CL using linear or exponential softening.

Parameters
PredictiveStressVectorThe predictive stress vector
UniaxialStressThe equivalent uniaxial stress
DamageThe internal variable of the damage model
ThresholdThe maximum uniaxial stress achieved previously
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TYieldSurfaceType >
Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::KRATOS_CLASS_POINTER_DEFINITION ( GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >  )

◆ operator=()

template<class TYieldSurfaceType >
GenericConstitutiveLawIntegratorDamage& Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::operator= ( GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType > const &  rOther)
inline

Assignment operator.

Member Data Documentation

◆ Dimension

template<class TYieldSurfaceType >
constexpr SizeType Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::Dimension = YieldSurfaceType::Dimension
staticconstexpr

The define the working dimension size, already defined in the yield surface.

◆ VoigtSize

template<class TYieldSurfaceType >
constexpr SizeType Kratos::GenericConstitutiveLawIntegratorDamage< TYieldSurfaceType >::VoigtSize = YieldSurfaceType::VoigtSize
staticconstexpr

The define the Voigt size, already defined in the yield surface.


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