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.
Classes | List of all members
Kratos::AssociativePlasticDamageModel< TYieldSurfaceType > Class Template Reference

This law defines a parallel rule of mixture (classic law of mixture) More...

#include <associative_plastic_damage_model.h>

Inheritance diagram for Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >:
Collaboration diagram for Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >:

Classes

struct  PlasticDamageParameters
 

Public Member Functions

Lyfe Cycle
 AssociativePlasticDamageModel ()
 Default constructor. More...
 
 ~AssociativePlasticDamageModel () override
 Destructor. More...
 

Type Definitions

The define the working dimension size, already defined in the integrator The definition of the size type

typedef std::size_t SizeType
 
typedef ProcessInfo ProcessInfoType
 The definition of the process info. More...
 
typedef std::conditional< VoigtSize==6, ElasticIsotropic3D, LinearPlaneStrain >::type BaseType
 The definition of the CL base class. More...
 
typedef Node NodeType
 The node definition. More...
 
typedef Geometry< NodeTypeGeometryType
 The geometry definition. More...
 
typedef array_1d< double, VoigtSizeBoundedVectorType
 The definition of the Voigt array type. More...
 
typedef BoundedMatrix< double, VoigtSize, VoigtSizeBoundedMatrixType
 The definition of the bounded matrix type. More...
 
typedef std::function< double(const double, const double, ConstitutiveLaw::Parameters &, PlasticDamageParameters &)> ResidualFunctionType
 The definition of the lambdas to compute implicitly the threshold. More...
 
static constexpr SizeType Dimension = TYieldSurfaceType::Dimension
 
static constexpr SizeType VoigtSize = TYieldSurfaceType::VoigtSize
 The define the Voigt size, already defined in the integrator. More...
 
static constexpr double machine_tolerance = std::numeric_limits<double>::epsilon()
 Definition of the machine precision tolerance. More...
 
static constexpr double tolerance = 1.0e-8
 
 KRATOS_CLASS_POINTER_DEFINITION (AssociativePlasticDamageModel)
 Pointer definition of AssociativePlasticDamageModel. More...
 

Serialization

class Serializer
 

Operations

ConstitutiveLaw::Pointer Clone () const override
 Clone operation. More...
 
 AssociativePlasticDamageModel (const AssociativePlasticDamageModel &rOther)
 
bool RequiresInitializeMaterialResponse () override
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
bool RequiresFinalizeMaterialResponse () override
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
bool Has (const Variable< double > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (double) More...
 
bool Has (const Variable< Vector > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (Vector) More...
 
doubleGetValue (const Variable< double > &rThisVariable, double &rValue) override
 Returns the value of a specified variable (double) More...
 
VectorGetValue (const Variable< Vector > &rThisVariable, Vector &rValue) override
 Returns the value of a specified variable (Vector) More...
 
void SetValue (const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override
 Sets the value of a specified variable (double) More...
 
void SetValue (const Variable< Vector > &rThisVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) override
 Sets the value of a specified variable (Vector) More...
 
doubleCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) override
 Calculates the value of a specified variable (double) More...
 
void InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override
 This is to be called at the very beginning of the calculation. More...
 
void CalculateMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of Cauchy stresses and constitutive tensor. More...
 
void InitializeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of 1st Piola-Kirchhoff stresses. More...
 
void InitializeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of 2nd Piola-Kirchhoff stresses. More...
 
void InitializeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of Kirchhoff stresses. More...
 
void InitializeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of Cauchy stresses. More...
 
void FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of 1st Piola-Kirchhoff stresses. More...
 
void FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of 2nd Piola-Kirchhoff stresses. More...
 
void FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of Kirchhoff stresses. More...
 
void FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of Cauchy stresses. More...
 
int Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override
 This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors. More...
 
void CalculateTangentTensor (ConstitutiveLaw::ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the tangent tensor. More...
 
void CalculateElasticComplianceMatrix (BoundedMatrixType &rConstitutiveMatrix, const Properties &rMaterialProperties)
 This method computes the compliance elasatic matrix (https://en.wikiversity.org/wiki/Introduction_to_Elasticity/Constitutive_relations) More...
 
void AddIfPositive (double &rToBeAdded, const double Increment)
 This method add somehting if the increment is positive. More...
 
double MacaullyBrackets (const double Number)
 This method evaluates the Macaulay brackets. More...
 
void CalculatePlasticDissipationIncrement (const Properties &rMaterialProperties, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the normalized plastic dissipation. More...
 
void CalculateDamageDissipationIncrement (const Properties &rMaterialProperties, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the normalized plastic dissipation. More...
 
void CalculateThresholdAndSlope (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the threshold and the dThreshold/dKappa according to energy dissipation. More...
 
void CalculateFlowVector (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the plastic flow (dF/dS) More...
 
void CalculatePlasticStrainIncrement (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the Plastic Strain increment. More...
 
void CalculateComplianceMatrixIncrement (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the Compliance matrix increment. More...
 
void CalculatePlasticConsistencyIncrement (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the plastic consistency increment. More...
 
void IntegrateStressPlasticDamageMechanics (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method integrates the stress. More...
 
void CalculateConstitutiveMatrix (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPlasticDamageParameters)
 This method computes the constitutive matrix. More...
 
void UpdateInternalVariables (PlasticDamageParameters &rPlasticDamageParameters)
 This method updates all the internal variables. More...
 
void CheckMinimumFractureEnergy (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPDParameters)
 This method updates all the internal variables. More...
 
void InitializePlasticDamageParameters (const BoundedVectorType &rStrainVector, const Properties &rMaterialProperties, const double CharateristicLength, PlasticDamageParameters &rPlasticDamageParameters)
 This method initializes all the values in the PlasticDamageParameters. More...
 
void CalculateAnalyticalTangentTensor (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rParam)
 This method computes the continuum analytical tangent tensor. More...
 
void AddNonLinearDissipation (PlasticDamageParameters &rPDParameters)
 This method increases the damage and plastic dissipation with the increment. More...
 
double CalculatePlasticDenominator (ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rParam)
 This method computes the denominator of the expression for computing the plastic multiplier. More...
 
double CalculateThresholdImplicitExpression (ResidualFunctionType &rF, ResidualFunctionType &rdF_dk, ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPDParameters, const double MaxThreshold=std::numeric_limits< double >::max())
 This method solves a non-linear equation that related the dissipation with the threshold. More...
 
double CalculateSlopeFiniteDifferences (ResidualFunctionType &rF, ResidualFunctionType &rdF_dk, ConstitutiveLaw::Parameters &rValues, PlasticDamageParameters &rPDParameters, const double MaxThreshold=std::numeric_limits< double >::max())
 This method computes the slope or d(threshold)/d(dissipation) by finite differences. More...
 
ResidualFunctionType ExponentialSofteningImplicitFunction ()
 Implicit function that relates the plastic-damage energy dissipation with the uniaxial stress threshold. More...
 
ResidualFunctionType ExponentialSofteningImplicitFunctionDerivative ()
 Implicit function derivative to be used in the minimization of the implicit function. More...
 
ResidualFunctionType ExponentialHardeningImplicitFunction ()
 Implicit function that relates the plastic-damage energy dissipation with the uniaxial stress threshold. More...
 
ResidualFunctionType ExponentialHardeningImplicitFunctionDerivative ()
 Implicit function derivative to be used in the minimization of the implicit function. More...
 
static double CalculateVolumetricFractureEnergy (const Properties &rMaterialProperties, PlasticDamageParameters &rPDParameters)
 This method computes an averaged volumetric fracture energy depending if it is in tension or compression. More...
 

Detailed Description

template<class TYieldSurfaceType>
class Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >

This law defines a parallel rule of mixture (classic law of mixture)

This constitutive law unifies the High cycle, Ultra Low cycle and Low cicle fatigue processes by means of a plastic damage model. Source: A thermodynamically consistent plastic-damage framework for localized failure in quasi-brittle solids: Material model and strain localization analysis (Wu and Cervera https://doi.org/10.1016/j.ijsolstr.2016.03.005)

Author
Alejandro Cornejo
Sergio Jimenez

Member Typedef Documentation

◆ BaseType

template<class TYieldSurfaceType >
typedef std::conditional<VoigtSize == 6, ElasticIsotropic3D, LinearPlaneStrain >::type Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::BaseType

The definition of the CL base class.

◆ BoundedMatrixType

template<class TYieldSurfaceType >
typedef BoundedMatrix<double, VoigtSize, VoigtSize> Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::BoundedMatrixType

The definition of the bounded matrix type.

◆ BoundedVectorType

template<class TYieldSurfaceType >
typedef array_1d<double, VoigtSize> Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::BoundedVectorType

The definition of the Voigt array type.

◆ GeometryType

template<class TYieldSurfaceType >
typedef Geometry<NodeType> Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::GeometryType

The geometry definition.

◆ NodeType

template<class TYieldSurfaceType >
typedef Node Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::NodeType

The node definition.

◆ ProcessInfoType

template<class TYieldSurfaceType >
typedef ProcessInfo Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ProcessInfoType

The definition of the process info.

◆ ResidualFunctionType

template<class TYieldSurfaceType >
typedef std::function<double(const double, const double, ConstitutiveLaw::Parameters& , PlasticDamageParameters &)> Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ResidualFunctionType

The definition of the lambdas to compute implicitly the threshold.

◆ SizeType

template<class TYieldSurfaceType >
typedef std::size_t Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::SizeType

Constructor & Destructor Documentation

◆ AssociativePlasticDamageModel() [1/2]

template<class TYieldSurfaceType >
Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::AssociativePlasticDamageModel ( )
inline

Default constructor.

◆ ~AssociativePlasticDamageModel()

template<class TYieldSurfaceType >
Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::~AssociativePlasticDamageModel ( )
inlineoverride

Destructor.

◆ AssociativePlasticDamageModel() [2/2]

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

Copy constructor.

Member Function Documentation

◆ AddIfPositive()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::AddIfPositive ( double rToBeAdded,
const double  Increment 
)
inline

This method add somehting if the increment is positive.

◆ AddNonLinearDissipation()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::AddNonLinearDissipation ( PlasticDamageParameters rPDParameters)
inline

This method increases the damage and plastic dissipation with the increment.

◆ CalculateAnalyticalTangentTensor()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateAnalyticalTangentTensor ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rParam 
)

This method computes the continuum analytical tangent tensor.

◆ CalculateComplianceMatrixIncrement()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateComplianceMatrixIncrement ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the Compliance matrix increment.

◆ CalculateConstitutiveMatrix()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateConstitutiveMatrix ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the constitutive matrix.

◆ CalculateDamageDissipationIncrement()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateDamageDissipationIncrement ( const Properties rMaterialProperties,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the normalized plastic dissipation.

◆ CalculateElasticComplianceMatrix()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateElasticComplianceMatrix ( BoundedMatrixType rConstitutiveMatrix,
const Properties rMaterialProperties 
)

This method computes the compliance elasatic matrix (https://en.wikiversity.org/wiki/Introduction_to_Elasticity/Constitutive_relations)

Parameters
rValuesThe constitutive law parameters and flags

◆ CalculateFlowVector()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateFlowVector ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the plastic flow (dF/dS)

◆ CalculateMaterialResponseCauchy()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Computes the material response in terms of Cauchy stresses and constitutive tensor.

See also
Parameters

◆ CalculateMaterialResponseKirchhoff()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Computes the material response in terms of Kirchhoff stresses and constitutive tensor.

See also
Parameters

◆ CalculateMaterialResponsePK1()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor.

See also
Parameters

◆ CalculateMaterialResponsePK2()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor.

See also
Parameters

◆ CalculatePlasticConsistencyIncrement()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculatePlasticConsistencyIncrement ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the plastic consistency increment.

◆ CalculatePlasticDenominator()

template<class TYieldSurfaceType >
double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculatePlasticDenominator ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rParam 
)

This method computes the denominator of the expression for computing the plastic multiplier.

◆ CalculatePlasticDissipationIncrement()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculatePlasticDissipationIncrement ( const Properties rMaterialProperties,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the normalized plastic dissipation.

◆ CalculatePlasticStrainIncrement()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculatePlasticStrainIncrement ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the Plastic Strain increment.

◆ CalculateSlopeFiniteDifferences()

template<class TYieldSurfaceType >
double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateSlopeFiniteDifferences ( ResidualFunctionType rF,
ResidualFunctionType rdF_dk,
ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPDParameters,
const double  MaxThreshold = std::numeric_limits<double>::max() 
)

This method computes the slope or d(threshold)/d(dissipation) by finite differences.

◆ CalculateTangentTensor()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateTangentTensor ( ConstitutiveLaw::ConstitutiveLaw::Parameters &  rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the tangent tensor.

Parameters
rValuesThe constitutive law parameters and flags

◆ CalculateThresholdAndSlope()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateThresholdAndSlope ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method computes the threshold and the dThreshold/dKappa according to energy dissipation.

◆ CalculateThresholdImplicitExpression()

template<class TYieldSurfaceType >
double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateThresholdImplicitExpression ( ResidualFunctionType rF,
ResidualFunctionType rdF_dk,
ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPDParameters,
const double  MaxThreshold = std::numeric_limits<double>::max() 
)

This method solves a non-linear equation that related the dissipation with the threshold.

◆ CalculateValue()

template<class TYieldSurfaceType >
double & Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateValue ( ConstitutiveLaw::Parameters rParameterValues,
const Variable< double > &  rThisVariable,
double rValue 
)
override

Calculates the value of a specified variable (double)

Parameters
rParameterValuesthe needed parameters for the CL calculation
rThisVariablethe variable to be returned
rValuea reference to the returned value
rValueoutput: the value of the specified variable

◆ CalculateVolumetricFractureEnergy()

template<class TYieldSurfaceType >
double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CalculateVolumetricFractureEnergy ( const Properties rMaterialProperties,
PlasticDamageParameters rPDParameters 
)
static

This method computes an averaged volumetric fracture energy depending if it is in tension or compression.

◆ Check()

template<class TYieldSurfaceType >
int Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::Check ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const ProcessInfo rCurrentProcessInfo 
) const
override

This function is designed to be called once to perform all the checks needed on the input provided. Checks can be "expensive" as the function is designed to catch user's errors.

Parameters
rMaterialProperties
rElementGeometry
rCurrentProcessInfo
Returns
0 if OK, 1 otherwise

◆ CheckMinimumFractureEnergy()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::CheckMinimumFractureEnergy ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPDParameters 
)

This method updates all the internal variables.

◆ Clone()

template<class TYieldSurfaceType >
ConstitutiveLaw::Pointer Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::Clone
override

Clone operation.

◆ ExponentialHardeningImplicitFunction()

template<class TYieldSurfaceType >
AssociativePlasticDamageModel< TYieldSurfaceType >::ResidualFunctionType Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ExponentialHardeningImplicitFunction

Implicit function that relates the plastic-damage energy dissipation with the uniaxial stress threshold.

◆ ExponentialHardeningImplicitFunctionDerivative()

template<class TYieldSurfaceType >
AssociativePlasticDamageModel< TYieldSurfaceType >::ResidualFunctionType Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ExponentialHardeningImplicitFunctionDerivative

Implicit function derivative to be used in the minimization of the implicit function.

◆ ExponentialSofteningImplicitFunction()

template<class TYieldSurfaceType >
AssociativePlasticDamageModel< TYieldSurfaceType >::ResidualFunctionType Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ExponentialSofteningImplicitFunction

Implicit function that relates the plastic-damage energy dissipation with the uniaxial stress threshold.

◆ ExponentialSofteningImplicitFunctionDerivative()

template<class TYieldSurfaceType >
AssociativePlasticDamageModel< TYieldSurfaceType >::ResidualFunctionType Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::ExponentialSofteningImplicitFunctionDerivative

Implicit function derivative to be used in the minimization of the implicit function.

◆ FinalizeMaterialResponseCauchy()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::FinalizeMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Cauchy stresses.

See also
Parameters

◆ FinalizeMaterialResponseKirchhoff()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::FinalizeMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ FinalizeMaterialResponsePK1()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::FinalizeMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of 1st Piola-Kirchhoff stresses.

See also
Parameters

◆ FinalizeMaterialResponsePK2()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::FinalizeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of 2nd Piola-Kirchhoff stresses.

See also
Parameters

◆ GetValue() [1/2]

template<class TYieldSurfaceType >
double & Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::GetValue ( const Variable< double > &  rThisVariable,
double rValue 
)
override

Returns the value of a specified variable (double)

Parameters
rThisVariablethe variable to be returned
rValuea reference to the returned value
Returns
rValue output: the value of the specified variable

◆ GetValue() [2/2]

template<class TYieldSurfaceType >
Vector & Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::GetValue ( const Variable< Vector > &  rThisVariable,
Vector rValue 
)
override

Returns the value of a specified variable (Vector)

Parameters
rThisVariablethe variable to be returned
rValuea reference to the returned value
Returns
rValue output: the value of the specified variable

◆ Has() [1/2]

template<class TYieldSurfaceType >
bool Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::Has ( const Variable< double > &  rThisVariable)
override

Returns whether this constitutive Law has specified variable (double)

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law

◆ Has() [2/2]

template<class TYieldSurfaceType >
bool Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::Has ( const Variable< Vector > &  rThisVariable)
override

Returns whether this constitutive Law has specified variable (Vector)

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law

◆ InitializeMaterial()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializeMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
override

This is to be called at the very beginning of the calculation.

(e.g. from InitializeElement) in order to initialize all relevant attributes of the constitutive law

Parameters
rMaterialPropertiesthe Properties instance of the current element
rElementGeometrythe geometry of the current element
rShapeFunctionsValuesthe shape functions values in the current integration point

◆ InitializeMaterialResponseCauchy()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializeMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of Cauchy stresses.

See also
Parameters

◆ InitializeMaterialResponseKirchhoff()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializeMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ InitializeMaterialResponsePK1()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializeMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of 1st Piola-Kirchhoff stresses.

See also
Parameters

◆ InitializeMaterialResponsePK2()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of 2nd Piola-Kirchhoff stresses.

See also
Parameters

◆ InitializePlasticDamageParameters()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::InitializePlasticDamageParameters ( const BoundedVectorType rStrainVector,
const Properties rMaterialProperties,
const double  CharateristicLength,
PlasticDamageParameters rPlasticDamageParameters 
)
inline

This method initializes all the values in the PlasticDamageParameters.

◆ IntegrateStressPlasticDamageMechanics()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::IntegrateStressPlasticDamageMechanics ( ConstitutiveLaw::Parameters rValues,
PlasticDamageParameters rPlasticDamageParameters 
)

This method integrates the stress.

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Pointer definition of AssociativePlasticDamageModel.

◆ MacaullyBrackets()

template<class TYieldSurfaceType >
double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::MacaullyBrackets ( const double  Number)
inline

This method evaluates the Macaulay brackets.

◆ RequiresFinalizeMaterialResponse()

template<class TYieldSurfaceType >
bool Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::RequiresFinalizeMaterialResponse ( )
inlineoverride

If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.

◆ RequiresInitializeMaterialResponse()

template<class TYieldSurfaceType >
bool Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::RequiresInitializeMaterialResponse ( )
inlineoverride

If the CL requires to initialize the material response, called by the element in InitializeSolutionStep.

◆ SetValue() [1/2]

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::SetValue ( const Variable< double > &  rThisVariable,
const double rValue,
const ProcessInfo rCurrentProcessInfo 
)
override

Sets the value of a specified variable (double)

Parameters
rThisVariablethe variable to be returned
rValuenew value of the specified variable
rCurrentProcessInfothe process info

◆ SetValue() [2/2]

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::SetValue ( const Variable< Vector > &  rThisVariable,
const Vector rValue,
const ProcessInfo rCurrentProcessInfo 
)
override

Sets the value of a specified variable (Vector)

Parameters
rThisVariablethe variable to be returned
rValuenew value of the specified variable
rCurrentProcessInfothe process info

◆ UpdateInternalVariables()

template<class TYieldSurfaceType >
void Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::UpdateInternalVariables ( PlasticDamageParameters rPlasticDamageParameters)

This method updates all the internal variables.

Friends And Related Function Documentation

◆ Serializer

template<class TYieldSurfaceType >
friend class Serializer
friend

Member Data Documentation

◆ Dimension

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

◆ machine_tolerance

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

Definition of the machine precision tolerance.

◆ tolerance

template<class TYieldSurfaceType >
constexpr double Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::tolerance = 1.0e-8
staticconstexpr

◆ VoigtSize

template<class TYieldSurfaceType >
constexpr SizeType Kratos::AssociativePlasticDamageModel< TYieldSurfaceType >::VoigtSize = TYieldSurfaceType::VoigtSize
staticconstexpr

The define the Voigt size, already defined in the integrator.


The documentation for this class was generated from the following files: