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.