![]() |
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.