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.
|
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>
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... | |
GenericConstitutiveLawIntegratorKinematicPlasticity & | operator= (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, VoigtSize > | BoundedArrayType |
The definition of the Voigt array type. More... | |
typedef BoundedMatrix< double, Dimension, Dimension > | BoundedMatrixType |
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... | |
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
TYieldSurfaceType | The yield surface considered The plasticity integrator requires the definition of the following properties:
|
typedef array_1d<double, VoigtSize> Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::BoundedArrayType |
The definition of the Voigt array type.
typedef BoundedMatrix<double, Dimension, Dimension> Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::BoundedMatrixType |
The definition of the bounded matrix type.
typedef std::size_t Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::IndexType |
Definition of index.
typedef YieldSurfaceType::PlasticPotentialType Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::PlasticPotentialType |
The type of plastic potential.
typedef TYieldSurfaceType Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::YieldSurfaceType |
The type of yield surface.
|
strong |
|
strong |
|
inline |
Initialization constructor.
|
inline |
Copy constructor.
|
inlinevirtual |
Destructor.
|
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.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rKinematicParameters | The parameters required for the models |
rPreviousStressVector | The previous stress vector |
rPlasticStrainIncrement | The plastic strain increment of this iteration |
rBackStressVector | The back-stress vector for the kinematic plasticity |
|
inlinestatic |
This method calculates the derivative of the plastic potential.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rDeviator | The deviatoric part of the stress vector |
J2 | The second invariant of the deviatoric part of the stress vector |
rDerivativePlasticPotential | The derivative of the yield surface |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method calculates the derivative of the yield surface.
rPredictiveStressVector | The predictive stress vector S = C : (E-Ep) |
rDeviator | The deviatoric part of the stress vector |
J2 | The second invariant of the deviatoric part of the stress vector |
rDerivativeYieldSurface | The derivative of the yield surface |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method returns the equivalent plastic strain.
rThreshold | The uniaxial stress threshold |
rValues | Parameters of the constitutive law |
rStressVector | The stress vector |
r0 | The tensile indicator |
rEquivalentPlasticStrain | The equivalent plastic strain |
rPlasticStrain | The plastic strain vector |
|
inlinestatic |
This method computes the uniaxial threshold that differentiates the elastic-plastic behaviour.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
EquivalentPlasticStrain | The equivalent plastic strain |
CharacteristicLength | Characteristic length of the finite element |
|
inlinestatic |
This method computes the uniaxial threshold using a perfect plasticity law.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
EquivalentPlasticStrain | The Plastic Strain internal variable |
CharacteristicLength | Characteristic length of the finite element |
|
inlinestatic |
This method computes the uniaxial threshold using a exponential softening.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method computes the uniaxial threshold using a hardening-softening law.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method computes the uniaxial threshold using a linear softening.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method computes the uniaxial threshold using a perfect plasticity law.
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
rEquivalentStressThreshold | The maximum uniaxial stress of the linear behaviour |
rSlope | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method computes hardening parameter needed for the algorithm.
rGFlux | The derivative of the plastic potential |
SlopeThreshold | The slope of the PlasticDiss-Threshold curve |
rHardeningParameter | The hardening parameter needed for the algorithm |
rSlope | The slope of the PlasticDiss-Threshold curve |
|
inlinestatic |
This method computes the tensile/compressive indicators.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rTensileIndicatorFactor | The tensile indicator |
rCompressionIndicatorFactor | The compressive indicator |
|
inlinestatic |
This method computes the plastic denominator needed to compute the plastic consistency factor.
rYieldSurfaceDerivative | The derivative of the yield surface |
rDerivativePlasticPotential | The derivative of the plastic potential |
rConstitutiveMatrix | The elastic constitutive matrix |
rHardeningParameter | The hardening parameter needed for the algorithm |
rPlasticDenominator | The plasticity numerical value to obtain the pastic consistency factor |
|
inlinestatic |
This method computes the plastic dissipation of the plasticity model.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
TensileIndicatorFactor | The tensile indicator |
CompressionIndicatorFactor | The compressive indicator |
PlasticStrainIncrement | The increment of plastic strain of this time step |
PlasticDissipation | The internal variable of energy dissipation due to plasticity |
rHCapa | The slope of the PlasticDiss-Threshold curve |
rValues | Parameters of the constitutive law |
CharacteristicLength | The equivalent length of the FE |
|
inlinestatic |
This method calculates all the plastic parameters required for the integration of the PredictiveStressVector.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rStrainVector | The equivalent strain vector of that integration point |
rUniaxialStress | The equivalent uniaxial stress |
rThreshold | The maximum uniaxial stress of the linear behaviour |
rPlasticDenominator | The plasticity numerical value to obtain the pastic consistency factor |
rYieldSurfaceDerivative | The derivative of the yield surface |
rDerivativePlasticPotential | The derivative of the plastic potential |
rPlasticDissipation | The internal variable of energy dissipation due to plasticity |
rPlasticStrainIncrement | The increment of plastic strain of this time step |
rConstitutiveMatrix | The elastic constitutive matrix |
rValues | Parameters of the constitutive law |
CharacteristicLength | The equivalent length of the FE |
|
inlinestatic |
This method calculates the analytical tangent tensor.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rDeviator | The deviatoric part of the stress vector |
J2 | The second invariant of the deviatoric part of the stress vector |
rFFluxVector | The derivative of the yield surface |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method defines in the CL integrator.
|
inlinestatic |
This method returns the initial uniaxial stress threshold.
rThreshold | The uniaxial stress threshold |
rValues | Parameters of the constitutive law |
|
inlinestatic |
This method integrates the predictive stress vector with the CL using differents evolution laws using the backward euler scheme.
rPredictiveStressVector | The predictive stress vector S = C:(E-Ep) |
rStrainVector | The equivalent strain vector of that integration point |
rUniaxialStress | The equivalent uniaxial stress |
rThreshold | The maximum uniaxial stress of the linear behaviour |
rPlasticDenominator | The plasticity numerical value to obtain the pastic consistency factor |
rYieldSurfaceDerivative | The derivative of the yield surface |
rDerivativePlasticPotential | The derivative of the plastic potential |
rPlasticDissipation | The internal variable of energy dissipation due to plasticity |
rPlasticStrainIncrement | The increment of plastic strain of this time step |
rConstitutiveMatrix | The elastic constitutive matrix |
rPlasticStrain | The elastic constitutive matrix |
rValues | Parameters of the constitutive law |
CharacteristicLength | The equivalent length of the FE |
rBackStressVector | The so-called BackStressVector used for the kinematic hardening |
rPreviousStressVector | The previous converged stress vector |
Kratos::GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType >::KRATOS_CLASS_POINTER_DEFINITION | ( | GenericConstitutiveLawIntegratorKinematicPlasticity< TYieldSurfaceType > | ) |
Counted pointer of GenericConstitutiveLawIntegratorKinematicPlasticity.
|
inline |
Assignment operator.
|
staticconstexpr |
The define the working dimension size, already defined in the yield surface.
|
staticconstexpr |
The machine precision tolerance.
|
staticconstexpr |
The define the Voigt size, already defined in the yield surface.