![]() |
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_plasticity.h>
Public Types | |
Enum's | |
| enum class | HardeningCurveType { LinearSoftening = 0 , ExponentialSoftening = 1 , InitialHardeningExponentialSoftening = 2 , PerfectPlasticity = 3 , CurveFittingHardening = 4 , LinearExponentialSoftening = 5 , CurveDefinedByPoints = 6 } |
Public Member Functions | |
Life Cycle | |
| GenericConstitutiveLawIntegratorPlasticity () | |
| Initialization constructor. More... | |
| GenericConstitutiveLawIntegratorPlasticity (GenericConstitutiveLawIntegratorPlasticity const &rOther) | |
| Copy constructor. More... | |
| GenericConstitutiveLawIntegratorPlasticity & | operator= (GenericConstitutiveLawIntegratorPlasticity const &rOther) |
| Assignment operator. More... | |
| virtual | ~GenericConstitutiveLawIntegratorPlasticity () |
| Destructor. More... | |
Static Public Member Functions | |
Operations | |
| static void | IntegrateStressVector (array_1d< double, VoigtSize > &rPredictiveStressVector, Vector &rStrainVector, double &rUniaxialStress, double &rThreshold, double &rPlasticDenominator, array_1d< double, VoigtSize > &rFflux, array_1d< double, VoigtSize > &rGflux, double &rPlasticDissipation, array_1d< double, VoigtSize > &rPlasticStrainIncrement, Matrix &rConstitutiveMatrix, Vector &rPlasticStrain, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength) |
| This method integrates the predictive stress vector with the CL using differents evolution laws using the backward euler scheme. More... | |
| static double | CalculatePlasticParameters (array_1d< double, VoigtSize > &rPredictiveStressVector, Vector &rStrainVector, double &rUniaxialStress, double &rThreshold, double &rPlasticDenominator, array_1d< double, VoigtSize > &rFflux, array_1d< double, VoigtSize > &rGflux, double &rPlasticDissipation, array_1d< double, VoigtSize > &rPlasticStrainIncrement, const Matrix &rConstitutiveMatrix, ConstitutiveLaw::Parameters &rValues, const double CharacteristicLength, const Vector &rPlasticStrain) |
| This method calculates all the plastic parameters required for the integration of the PredictiveStressVector. 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 void | CalculateFFluxVector (const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rFFluxVector, ConstitutiveLaw::Parameters &rValues) |
| This method calculates the derivative of the yield surface. More... | |
| static void | CalculateGFluxVector (const array_1d< double, VoigtSize > &rPredictiveStressVector, const array_1d< double, VoigtSize > &rDeviator, const double J2, array_1d< double, VoigtSize > &rGFluxVector, ConstitutiveLaw::Parameters &rValues) |
| This method calculates the derivative of the plastic potential. More... | |
| static void | CalculateIndicatorsFactors (const array_1d< double, VoigtSize > &rPredictiveStressVector, double &rTensileIndicatorFactor, double &rCompressionIndicatorFactor) |
| This method computes the tensile/compressive indicators. More... | |
| static void | CalculatePlasticDissipation (const array_1d< double, VoigtSize > &rPredictiveStressVector, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, const Vector &PlasticStrainInc, double &rPlasticDissipation, array_1d< double, VoigtSize > &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 | CalculateEquivalentStressThresholdHardeningCurveLinearExponentialSoftening (const double PlasticDissipation, const double TensileIndicatorFactor, const double CompressionIndicatorFactor, double &rEquivalentStressThreshold, double &rSlope, const double CharacteristicLength, ConstitutiveLaw::Parameters &rValues) |
| This method computes the uniaxial threshold using a linear-exponential softening, which changes from one to the other through the platic_dissipation_limit. More... | |
| static void | CalculateEquivalentStressThresholdHardeningCurveDefinedByPoints (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 two region curve: 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 array_1d< double, VoigtSize > &rGFlux, const double SlopeThreshold, const array_1d< double, VoigtSize > &rHCapa, double &rHardeningParameter) |
| This method computes hardening parameter needed for the algorithm. More... | |
| static void | CalculatePlasticDenominator (const array_1d< double, VoigtSize > &rFFlux, const array_1d< double, VoigtSize > &rGFlux, const Matrix &rConstitutiveMatrix, double &rHardeningParameter, double &rPlasticDenominator) |
| 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 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 (GenericConstitutiveLawIntegratorPlasticity) | |
| Counted pointer of GenericConstitutiveLawIntegratorPlasticity. 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 std::size_t Kratos::GenericConstitutiveLawIntegratorPlasticity< TYieldSurfaceType >::IndexType |
Definition of index.
| typedef YieldSurfaceType::PlasticPotentialType Kratos::GenericConstitutiveLawIntegratorPlasticity< TYieldSurfaceType >::PlasticPotentialType |
The type of plastic potential.
| typedef TYieldSurfaceType Kratos::GenericConstitutiveLawIntegratorPlasticity< TYieldSurfaceType >::YieldSurfaceType |
The type of yield surface.
|
strong |
|
inline |
Initialization constructor.
|
inline |
Copy constructor.
|
inlinevirtual |
Destructor.
|
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 two region curve:
| 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 |
| 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 |
| CharacteristicLength | Characteristic length of the finite element |
|
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-exponential softening, which changes from one to the other through the platic_dissipation_limit.
| 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 |
| CharacteristicLength | Characteristic length of the finite element |
| 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 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 |
| rFFluxVector | The derivative of the yield surface |
| rValues | Parameters of the constitutive law |
|
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 |
| rGFluxVector | The derivative of the yield surface |
| 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.
| rFflux | The derivative of the yield surface |
| rGflux | 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 |
| rFflux | The derivative of the yield surface |
| rGflux | 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 |
| rFflux | The derivative of the yield surface |
| rGflux | 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 |
| Kratos::GenericConstitutiveLawIntegratorPlasticity< TYieldSurfaceType >::KRATOS_CLASS_POINTER_DEFINITION | ( | GenericConstitutiveLawIntegratorPlasticity< TYieldSurfaceType > | ) |
Counted pointer of GenericConstitutiveLawIntegratorPlasticity.
|
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.