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

This object integrates the predictive stress using the plasticity theory by means of linear/exponential softening or hardening + softening evolution laws. More...

#include <generic_cl_integrator_kinematic_plasticity.h>

Collaboration diagram for Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >:

Public Types

Enum's
enum class  HardeningCurveType {
  LinearSoftening = 0 , ExponentialSoftening = 1 , InitialHardeningExponentialSoftening = 2 , PerfectPlasticity = 3 ,
  CurveFittingHardening = 4
}
 
enum class  KinematicHardeningType { LinearKinematicHardening = 0 , ArmstrongFrederickKinematicHardening = 1 , AraujoVoyiadjisKinematicHardening = 2 }
 

Public Member Functions

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

Static Public Member Functions

Operations
static void IntegrateStressVector (BoundedArrayType &rPredictiveStressVector, Vector &rStrainVector, double &rUniaxialStress, double &rThreshold, double &rPlasticDenominator, BoundedArrayType &rYieldSurfaceDerivative, BoundedArrayType &rDerivativePlasticPotential, double &rPlasticDissipation, BoundedArrayType &rPlasticStrainIncrement, Matrix &rConstitutiveMatrix, Vector &rPlasticStrain, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength, Vector &rBackStressVector, const Vector &rPreviousStressVector)
 This method integrates the predictive stress vector with the CL using differents evolution laws using the backward euler scheme. More...
 
static void CalculateTangentMatrix (Matrix &rTangent, const Matrix &rElasticMatrix, const array_1d< double, VoigtSize > &rFFluxVector, const array_1d< double, VoigtSize > &rGFluxVector, const double Denominator)
 This method calculates the analytical tangent tensor. More...
 
static double CalculatePlasticParameters (BoundedArrayType &rPredictiveStressVector, Vector &rStrainVector, double &rUniaxialStress, double &rThreshold, double &rPlasticDenominator, BoundedArrayType &rYieldSurfaceDerivative, BoundedArrayType &rDerivativePlasticPotential, double &rPlasticDissipation, BoundedArrayType &rPlasticStrainIncrement, const Matrix &rConstitutiveMatrix, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength, const Vector &rPlasticStrain, const Vector &rBackStressVector)
 This method calculates all the plastic parameters required for the integration of the PredictiveStressVector. More...
 
static void CalculateDerivativeYieldSurface (const BoundedArrayType &rPredictiveStressVector, const BoundedArrayType &rDeviator, const double J2, BoundedArrayType &rDerivativeYieldSurface, ConstitutiveLaw::Parameters &rValues)
 This method calculates the derivative of the yield surface. More...
 
static void CalculateBackStress (BoundedArrayType &rPredictiveStressVector, ConstitutiveLaw::Parameters &rValues, const Vector &rPreviousStressVector, const Vector &rPlasticStrainIncrement, Vector &rBackStressVector)
 This method computes the back stress for the kinematic plasticity This method has 3 different ways of computing this back-stress: Linear hardening, Armstrong-Frederick and Araujo-Voyiadjis. More...
 
static void CalculateDerivativePlasticPotential (const BoundedArrayType &rPredictiveStressVector, const BoundedArrayType &rDeviator, const double J2, BoundedArrayType &rDerivativePlasticPotential, ConstitutiveLaw::Parameters &rValues)
 This method calculates the derivative of the plastic potential. More...
 
static void CalculateIndicatorsFactors (const BoundedArrayType &rPredictiveStressVector, double &rTensileIndicatorFactor, double &rCompressionIndicatorFactor)
 This method computes the tensile/compressive indicators. More...
 
static void CalculatePlasticDissipation (const BoundedArrayType &rPredictiveStressVector, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, const Vector &PlasticStrainInc, double &rPlasticDissipation, BoundedArrayType &rHCapa, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength)
 This method computes the plastic dissipation of the plasticity model. More...
 
static void CalculateEquivalentStressThreshold (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues, const double EquivalentPlasticStrain, const double CharacteristicLength)
 This method computes the uniaxial threshold that differentiates the elastic-plastic behaviour. More...
 
static void CalculateEquivalentStressThresholdHardeningCurveLinearSoftening (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues)
 This method computes the uniaxial threshold using a linear softening. More...
 
static void CalculateEquivalentStressThresholdHardeningCurveExponentialSoftening (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength)
 This method computes the uniaxial threshold using a exponential softening. More...
 
static void CalculateEquivalentStressThresholdHardeningCurveInitialHardeningExponentialSoftening (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues)
 This method computes the uniaxial threshold using a hardening-softening law. More...
 
static void CalculateEquivalentStressThresholdHardeningCurvePerfectPlasticity (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues)
 This method computes the uniaxial threshold using a perfect plasticity law. More...
 
static void CalculateEquivalentStressThresholdCurveFittingHardening (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, ConstitutiveLaw::Parameters &rValues, const double EquivalentPlasticStrain, const double CharacteristicLength)
 This method computes the uniaxial threshold using a perfect plasticity law. More...
 
static void CalculateEquivalentPlasticStrain (const Vector &rStressVector, const double UniaxialStress, const Vector &rPlasticStrain, const double r0, ConstitutiveLaw::Parameters &rValues, double &rEquivalentPlasticStrain)
 This method returns the equivalent plastic strain. More...
 
static void GetInitialUniaxialThreshold (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold. More...
 
static void CalculateHardeningParameter (const BoundedArrayType &rGFlux, const double SlopeThreshold, const BoundedArrayType &rHCapa, double &rHardeningParameter)
 This method computes hardening parameter needed for the algorithm. More...
 
static void CalculatePlasticDenominator (const BoundedArrayType &rFFlux, const BoundedArrayType &rGFlux, const Matrix &rConstitutiveMatrix, double &rHardeningParameter, double &rPlasticDenominator, const Vector &rBackStressVector, ConstitutiveLaw::Parameters &rValues)
 This method computes the plastic denominator needed to compute the plastic consistency factor. More...
 
static int Check (const Properties &rMaterialProperties)
 This method defines in the CL integrator. More...
 

Type Definitions

typedef std::size_t IndexType
 Definition of index. More...
 
typedef TYieldSurfaceType YieldSurfaceType
 The type of yield surface. More...
 
typedef array_1d< double, VoigtSizeBoundedArrayType
 The definition of the Voigt array type. More...
 
typedef BoundedMatrix< double, Dimension, DimensionBoundedMatrixType
 The definition of the bounded matrix type. More...
 
typedef YieldSurfaceType::PlasticPotentialType PlasticPotentialType
 The type of plastic potential. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 The machine precision tolerance. 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 (GenericConstitutiveLawIntegratorKinematicPlasticity)
 Counted pointer of GenericConstitutiveLawIntegratorKinematicPlasticity. More...
 

Detailed Description

template<class TYieldSurfaceType>
class Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >

This object integrates the predictive stress using the plasticity theory by means of linear/exponential softening or hardening + softening evolution laws.

The definitions of these classes is completely static, the derivation is done in a static way

Template Parameters
TYieldSurfaceTypeThe yield surface considered The plasticity integrator requires the definition of the following properties:
  • SOFTENING_TYPE: The softening behaviour considered (linear, exponential,etc...)
  • HARDENING_CURVE: The type of considered hardening curve (linear, exponential, pure plastic, etc...)
  • MAXIMUM_STRESS: The maximum stress that defines the exponential hardening
  • MAXIMUM_STRESS_POSITION: The maximum stress position that defines the exponential hardening
  • FRACTURE_ENERGY: A fracture energy-based function is used to describe strength degradation in post-peak regime
  • YOUNG_MODULUS: It defines the relationship between stress (force per unit area) and strain (proportional deformation) in a material in the linear elasticity regime of a uniaxial deformation.
  • YIELD_STRESS: Yield stress is the amount of stress that an object needs to experience for it to be permanently deformed. Does not require to be defined simmetrically, one YIELD_STRESS_COMPRESSION and other YIELD_STRESS_TENSION can be defined for not symmetric cases
Author
Alejandro Cornejo & Lucia Barbu

Member Typedef Documentation

◆ BoundedArrayType

template<class TYieldSurfaceType >
typedef array_1d<double, VoigtSize> Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::BoundedArrayType

The definition of the Voigt array type.

◆ BoundedMatrixType

The definition of the bounded matrix type.

◆ IndexType

template<class TYieldSurfaceType >
typedef std::size_t Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::IndexType

Definition of index.

◆ PlasticPotentialType

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

The type of plastic potential.

◆ YieldSurfaceType

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

The type of yield surface.

Member Enumeration Documentation

◆ HardeningCurveType

Enumerator
LinearSoftening 
ExponentialSoftening 
InitialHardeningExponentialSoftening 
PerfectPlasticity 
CurveFittingHardening 

◆ KinematicHardeningType

Enumerator
LinearKinematicHardening 
ArmstrongFrederickKinematicHardening 
AraujoVoyiadjisKinematicHardening 

Constructor & Destructor Documentation

◆ GenericConstitutiveLawIntegratorKinematicPlasticity() [1/2]

Initialization constructor.

◆ GenericConstitutiveLawIntegratorKinematicPlasticity() [2/2]

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

Copy constructor.

◆ ~GenericConstitutiveLawIntegratorKinematicPlasticity()

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

Destructor.

Member Function Documentation

◆ CalculateBackStress()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateBackStress ( BoundedArrayType rPredictiveStressVector,
ConstitutiveLaw::Parameters rValues,
const Vector rPreviousStressVector,
const Vector rPlasticStrainIncrement,
Vector rBackStressVector 
)
inlinestatic

This method computes the back stress for the kinematic plasticity This method has 3 different ways of computing this back-stress: Linear hardening, Armstrong-Frederick and Araujo-Voyiadjis.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rKinematicParametersThe parameters required for the models
rPreviousStressVectorThe previous stress vector
rPlasticStrainIncrementThe plastic strain increment of this iteration
rBackStressVectorThe back-stress vector for the kinematic plasticity

◆ CalculateDerivativePlasticPotential()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateDerivativePlasticPotential ( const BoundedArrayType rPredictiveStressVector,
const BoundedArrayType rDeviator,
const double  J2,
BoundedArrayType rDerivativePlasticPotential,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method calculates the derivative of the plastic potential.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rDeviatorThe deviatoric part of the stress vector
J2The second invariant of the deviatoric part of the stress vector
rDerivativePlasticPotentialThe derivative of the yield surface
rValuesParameters of the constitutive law

◆ CalculateDerivativeYieldSurface()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateDerivativeYieldSurface ( const BoundedArrayType rPredictiveStressVector,
const BoundedArrayType rDeviator,
const double  J2,
BoundedArrayType rDerivativeYieldSurface,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method calculates the derivative of the yield surface.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C : (E-Ep)
rDeviatorThe deviatoric part of the stress vector
J2The second invariant of the deviatoric part of the stress vector
rDerivativeYieldSurfaceThe derivative of the yield surface
rValuesParameters of the constitutive law

◆ CalculateEquivalentPlasticStrain()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentPlasticStrain ( const Vector rStressVector,
const double  UniaxialStress,
const Vector rPlasticStrain,
const double  r0,
ConstitutiveLaw::Parameters rValues,
double rEquivalentPlasticStrain 
)
inlinestatic

This method returns the equivalent plastic strain.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law
rStressVectorThe stress vector
r0The tensile indicator
rEquivalentPlasticStrainThe equivalent plastic strain
rPlasticStrainThe plastic strain vector

◆ CalculateEquivalentStressThreshold()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThreshold ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues,
const double  EquivalentPlasticStrain,
const double  CharacteristicLength 
)
inlinestatic

This method computes the uniaxial threshold that differentiates the elastic-plastic behaviour.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law
EquivalentPlasticStrainThe equivalent plastic strain
CharacteristicLengthCharacteristic length of the finite element

◆ CalculateEquivalentStressThresholdCurveFittingHardening()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThresholdCurveFittingHardening ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues,
const double  EquivalentPlasticStrain,
const double  CharacteristicLength 
)
inlinestatic

This method computes the uniaxial threshold using a perfect plasticity law.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law
EquivalentPlasticStrainThe Plastic Strain internal variable
CharacteristicLengthCharacteristic length of the finite element

◆ CalculateEquivalentStressThresholdHardeningCurveExponentialSoftening()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThresholdHardeningCurveExponentialSoftening ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues,
const double  CharacteristicLength 
)
inlinestatic

This method computes the uniaxial threshold using a exponential softening.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressThresholdHardeningCurveInitialHardeningExponentialSoftening()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThresholdHardeningCurveInitialHardeningExponentialSoftening ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method computes the uniaxial threshold using a hardening-softening law.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressThresholdHardeningCurveLinearSoftening()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThresholdHardeningCurveLinearSoftening ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method computes the uniaxial threshold using a linear softening.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressThresholdHardeningCurvePerfectPlasticity()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateEquivalentStressThresholdHardeningCurvePerfectPlasticity ( const double  PlasticDissipation,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
double rEquivalentStressThreshold,
double rSlope,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method computes the uniaxial threshold using a perfect plasticity law.

Parameters
PlasticDissipationThe internal variable of energy dissipation due to plasticity
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
rEquivalentStressThresholdThe maximum uniaxial stress of the linear behaviour
rSlopeThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law

◆ CalculateHardeningParameter()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateHardeningParameter ( const BoundedArrayType rGFlux,
const double  SlopeThreshold,
const BoundedArrayType rHCapa,
double rHardeningParameter 
)
inlinestatic

This method computes hardening parameter needed for the algorithm.

Parameters
rGFluxThe derivative of the plastic potential
SlopeThresholdThe slope of the PlasticDiss-Threshold curve
rHardeningParameterThe hardening parameter needed for the algorithm
rSlopeThe slope of the PlasticDiss-Threshold curve

◆ CalculateIndicatorsFactors()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateIndicatorsFactors ( const BoundedArrayType rPredictiveStressVector,
double rTensileIndicatorFactor,
double rCompressionIndicatorFactor 
)
inlinestatic

This method computes the tensile/compressive indicators.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rTensileIndicatorFactorThe tensile indicator
rCompressionIndicatorFactorThe compressive indicator

◆ CalculatePlasticDenominator()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculatePlasticDenominator ( const BoundedArrayType rFFlux,
const BoundedArrayType rGFlux,
const Matrix rConstitutiveMatrix,
double rHardeningParameter,
double rPlasticDenominator,
const Vector rBackStressVector,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method computes the plastic denominator needed to compute the plastic consistency factor.

Parameters
rYieldSurfaceDerivativeThe derivative of the yield surface
rDerivativePlasticPotentialThe derivative of the plastic potential
rConstitutiveMatrixThe elastic constitutive matrix
rHardeningParameterThe hardening parameter needed for the algorithm
rPlasticDenominatorThe plasticity numerical value to obtain the pastic consistency factor

◆ CalculatePlasticDissipation()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculatePlasticDissipation ( const BoundedArrayType rPredictiveStressVector,
const double  TensileIndicatorFactor,
const double  CompressionIndicatorFactor,
const Vector PlasticStrainInc,
double rPlasticDissipation,
BoundedArrayType rHCapa,
ConstitutiveLaw::Parameters rValues,
const double  CharacteristicLength 
)
inlinestatic

This method computes the plastic dissipation of the plasticity model.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
TensileIndicatorFactorThe tensile indicator
CompressionIndicatorFactorThe compressive indicator
PlasticStrainIncrementThe increment of plastic strain of this time step
PlasticDissipationThe internal variable of energy dissipation due to plasticity
rHCapaThe slope of the PlasticDiss-Threshold curve
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculatePlasticParameters()

template<class TYieldSurfaceType >
static double Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculatePlasticParameters ( BoundedArrayType rPredictiveStressVector,
Vector rStrainVector,
double rUniaxialStress,
double rThreshold,
double rPlasticDenominator,
BoundedArrayType rYieldSurfaceDerivative,
BoundedArrayType rDerivativePlasticPotential,
double rPlasticDissipation,
BoundedArrayType rPlasticStrainIncrement,
const Matrix rConstitutiveMatrix,
ConstitutiveLaw::Parameters rValues,
const double  CharacteristicLength,
const Vector rPlasticStrain,
const Vector rBackStressVector 
)
inlinestatic

This method calculates all the plastic parameters required for the integration of the PredictiveStressVector.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe equivalent strain vector of that integration point
rUniaxialStressThe equivalent uniaxial stress
rThresholdThe maximum uniaxial stress of the linear behaviour
rPlasticDenominatorThe plasticity numerical value to obtain the pastic consistency factor
rYieldSurfaceDerivativeThe derivative of the yield surface
rDerivativePlasticPotentialThe derivative of the plastic potential
rPlasticDissipationThe internal variable of energy dissipation due to plasticity
rPlasticStrainIncrementThe increment of plastic strain of this time step
rConstitutiveMatrixThe elastic constitutive matrix
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateTangentMatrix()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::CalculateTangentMatrix ( Matrix rTangent,
const Matrix rElasticMatrix,
const array_1d< double, VoigtSize > &  rFFluxVector,
const array_1d< double, VoigtSize > &  rGFluxVector,
const double  Denominator 
)
inlinestatic

This method calculates the analytical tangent tensor.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rDeviatorThe deviatoric part of the stress vector
J2The second invariant of the deviatoric part of the stress vector
rFFluxVectorThe derivative of the yield surface
rValuesParameters of the constitutive law

◆ Check()

template<class TYieldSurfaceType >
static int Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< 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::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::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

◆ IntegrateStressVector()

template<class TYieldSurfaceType >
static void Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::IntegrateStressVector ( BoundedArrayType rPredictiveStressVector,
Vector rStrainVector,
double rUniaxialStress,
double rThreshold,
double rPlasticDenominator,
BoundedArrayType rYieldSurfaceDerivative,
BoundedArrayType rDerivativePlasticPotential,
double rPlasticDissipation,
BoundedArrayType rPlasticStrainIncrement,
Matrix rConstitutiveMatrix,
Vector rPlasticStrain,
ConstitutiveLaw::Parameters rValues,
const double  CharacteristicLength,
Vector rBackStressVector,
const Vector rPreviousStressVector 
)
inlinestatic

This method integrates the predictive stress vector with the CL using differents evolution laws using the backward euler scheme.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe equivalent strain vector of that integration point
rUniaxialStressThe equivalent uniaxial stress
rThresholdThe maximum uniaxial stress of the linear behaviour
rPlasticDenominatorThe plasticity numerical value to obtain the pastic consistency factor
rYieldSurfaceDerivativeThe derivative of the yield surface
rDerivativePlasticPotentialThe derivative of the plastic potential
rPlasticDissipationThe internal variable of energy dissipation due to plasticity
rPlasticStrainIncrementThe increment of plastic strain of this time step
rConstitutiveMatrixThe elastic constitutive matrix
rPlasticStrainThe elastic constitutive matrix
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE
rBackStressVectorThe so-called BackStressVector used for the kinematic hardening
rPreviousStressVectorThe previous converged stress vector

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

◆ operator=()

Assignment operator.

Member Data Documentation

◆ Dimension

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

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

◆ tolerance

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

The machine precision tolerance.

◆ VoigtSize

template<class TYieldSurfaceType >
constexpr SizeType Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< 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: