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.
Public Member Functions | Static Public Member Functions | List of all members
Kratos::ConstitutiveLawUtilities< TVoigtSize > Class Template Reference

This class includes several utilities necessaries for the computation of the constitutive law. More...

#include <constitutive_law_utilities.h>

Collaboration diagram for Kratos::ConstitutiveLawUtilities< TVoigtSize >:

Public Member Functions

void CalculateElasticMatrix (Matrix &rConstitutiveMatrix, const double E, const double nu)
 
void CalculateElasticMatrix (Matrix &rConstitutiveMatrix, const double E, const double nu)
 
void CalculateI2Invariant (const BoundedVectorType &rStressVector, double &rI2)
 
void CalculateI2Invariant (const BoundedVectorType &rStressVector, double &rI2)
 
void CalculateI3Invariant (const BoundedVectorType &rStressVector, double &rI3)
 
void CalculateI3Invariant (const BoundedVectorType &rStressVector, double &rI3)
 
void CalculateJ2Invariant (const BoundedVectorType &rStressVector, const double I1, BoundedVectorType &rDeviator, double &rJ2)
 
void CalculateJ2Invariant (const BoundedVectorType &rStressVector, const double I1, BoundedVectorType &rDeviator, double &rJ2)
 
void CalculateJ3Invariant (const BoundedVectorType &rDeviator, double &rJ3)
 
void CalculateJ3Invariant (const BoundedVectorType &rDeviator, double &rJ3)
 
void CalculateFirstVector (BoundedVectorType &rFirstVector)
 
void CalculateFirstVector (BoundedVectorType &rFirstVector)
 
void CalculateSecondVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rSecondVector)
 
void CalculateSecondVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rSecondVector)
 
void CalculateThirdVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rThirdVector)
 
void CalculateThirdVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rThirdVector)
 
void CalculatePrincipalStresses (array_1d< double, Dimension > &rPrincipalStressVector, const BoundedVectorType &rStressVector)
 
void CalculatePrincipalStresses (array_1d< double, Dimension > &rPrincipalStressVector, const BoundedVectorType &rStressVector)
 
void CalculateProjectionOperator (const Vector &rStrainVector, MatrixType &rProjectionOperatorTensor)
 
void CalculateProjectionOperator (const Vector &rStrainVector, MatrixType &rProjectionOperatorTensor)
 

Static Public Member Functions

static int GetStateVariableIndex (const Variable< double > &rThisVariable)
 
Operations
static void CalculateElasticMatrix (Matrix &rConstitutiveMatrix, const double E, const double nu)
 This method computes the elastic ConstitutiveMatrix. More...
 
static void CalculateDeviatoricStrainVector (const Vector &rStrainVector, const Vector &rVolumetricStrainVector, Vector &rDeviatoricStrainVector)
 This method computes the deviatoric part of the strain. More...
 
static void CalculateVolumetricStrainVector (const Vector &rStrainVector, Vector &rVolumetricStrainVector)
 This method computes the volumetric part of the strain. More...
 
static void CalculateIdentityVector (BoundedVectorType &rIdentityVector)
 This method creates an identity vector. More...
 
static double CalculateBulkModulus (const double YoungModulus, const double PoissonRatio)
 This method computes the Bulk modulus K = E / (2(1+nu)) More...
 
static double CalculateShearModulus (const double YoungModulus, const double PoissonRatio)
 This method computes the Shear modulus G = E / (3(1-2nu)) More...
 
static void CalculateI1Invariant (const BoundedVectorType &rStressVector, double &rI1)
 This method computes the first invariant from a given stress vector. More...
 
static void CalculateI2Invariant (const BoundedVectorType &rStressVector, double &rI2)
 This method computes the second invariant from a given stress vector. More...
 
static void CalculateI3Invariant (const BoundedVectorType &rStressVector, double &rI3)
 This method computes the third invariant from a given stress vector. More...
 
static void CalculateJ2Invariant (const BoundedVectorType &rStressVector, const double I1, BoundedVectorType &rDeviator, double &rJ2)
 This method computes the second invariant of J. More...
 
static void CalculateJ3Invariant (const BoundedVectorType &rDeviator, double &rJ3)
 This method computes the third invariant of J. More...
 
static void CalculateFirstVector (BoundedVectorType &rFirstVector)
 This method computes the first vector. More...
 
static void CalculateSecondVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rSecondVector)
 This method computes the second vector. More...
 
static void CalculateThirdVector (const BoundedVectorType &rDeviator, const double J2, BoundedVectorType &rThirdVector)
 This method computes the third vector. More...
 
static void CalculateLodeAngle (const double J2, const double J3, double &rLodeAngle)
 This method computes the lode angle. More...
 
static void CalculatePrincipalStresses (array_1d< double, Dimension > &rPrincipalStressVector, const BoundedVectorType &rStressVector)
 This method computes the principal stresses vector. More...
 
static void CalculatePrincipalStressesWithCardano (array_1d< double, Dimension > &rPrincipalStressVector, const BoundedVectorType &rStressVector)
 This method computes the principal stresses vector. More...
 
static void CalculateEquivalentStressHuberVonMises (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of Huber-VonMises. More...
 
static void CalculateEquivalentStressModifiedMohrCoulomb (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of ModifiedMohrCoulomb. More...
 
static void CalculateEquivalentStressMohrCoulomb (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of MohrCoulomb. More...
 
static void CalculateEquivalentStressRankine (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of Rankine. More...
 
static void CalculateEquivalentStressTresca (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of Tresca. More...
 
static void CalculateEquivalentStressSimoJu (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of SimoJu. More...
 
static void CalculateEquivalentStressDruckerPrager (const BoundedVectorType &rPredictiveStressVector, const Vector &rStrainVector, double &rEquivalentStress, ConstitutiveLaw::Parameters &rValues)
 This method the uniaxial equivalent stress of Drucker-Prager. More...
 
static void GetInitialUniaxialThresholdHuberVonMises (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for VonMises. More...
 
static void GetInitialUniaxialThresholdModifiedMohrCoulomb (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for ModifiedMohrCoulomb. More...
 
static void GetInitialUniaxialThresholdMohrCoulomb (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for MohrCoulomb. More...
 
static void GetInitialUniaxialThresholdRankine (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for Rankine. More...
 
static void GetInitialUniaxialThresholdTresca (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for Tresca. More...
 
static void GetInitialUniaxialThresholdSimoJu (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for SimoJu. More...
 
static void GetInitialUniaxialThresholdDruckerPrager (ConstitutiveLaw::Parameters &rValues, double &rThreshold)
 This method returns the initial uniaxial stress threshold for SimoJu. More...
 
static void CalculateDamageParameterHuberVonMises (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterModifiedMohrCoulomb (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterMohrCoulomb (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterRankine (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterTresca (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterSimoJu (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static void CalculateDamageParameterDruckerPrager (ConstitutiveLaw::Parameters &rValues, double &rAParameter, const double CharacteristicLength)
 This method returns the damage parameter needed in the exp/linear expressions of damage. More...
 
static double GetMaxValue (const Vector &rValues)
 This method returns max value over a vector. More...
 
static double GetMaxAbsValue (const Vector &rArrayValues)
 This method returns max abs value over a vector. More...
 
static double GetMinAbsValue (const Vector &rArrayValues)
 This method returns min abs value over a vector. More...
 
static void Get2MaxValues (Vector &rMaxValues, const double a, const double b, const double c)
 This method returns the 2 max values of a vector. More...
 
static void CalculateHenckyStrain (const MatrixType &rCauchyTensor, VectorType &rStrainVector)
 Calculation of the Hencky strain vector (true strain, natural strain, logarithmic strain) More...
 
static void CalculateBiotStrain (const MatrixType &rCauchyTensor, VectorType &rStrainVector)
 Calculation of the Biot strain vector. More...
 
static void CalculateAlmansiStrain (const MatrixType &rLeftCauchyTensor, VectorType &rStrainVector)
 Calculation of the Almansi strain vector. More...
 
static void CalculateGreenLagrangianStrain (const MatrixType &rCauchyTensor, VectorType &rStrainVector)
 Calculation of the Green-Lagrange strain vector. More...
 
static void CalculateGreenLagrangianStrain (const MatrixType &rCauchyTensor, VectorType &rStrainVector)
 Calculation of the Green-Lagrange strain vector. More...
 
static void PolarDecomposition (const MatrixType &rFDeformationGradient, MatrixType &rRMatrix, MatrixType &rUMatrix)
 The deformation gradient F, like any invertible second-order tensor, can be decomposed, using the polar decomposition theorem, into a product of two second-order tensors (Truesdell and Noll, 1965): an orthogonal tensor and a positive definite symmetric tensor, i.e F = R U. More...
 
static void CalculateProjectionOperator (const Vector &rStrainVector, MatrixType &rProjectionOperator)
 This method calculates the projection operator and calculates the Projection Operator. More...
 
template<class TVector >
static void CalculateI1Invariant (const TVector &rStressVector, double &rI1)
 This method computes the first invariant from a given stress vector. More...
 
template<class TVector >
static void CalculateJ2Invariant (const TVector &rStressVector, const double I1, BoundedVectorType &rDeviator, double &rJ2)
 This method computes the second invariant of J. More...
 
template<class TVector >
static double CalculateVonMisesEquivalentStress (const TVector &rStressVector)
 This method the uniaxial equivalent stress for Von Mises. More...
 
static void CalculateRotationOperatorVoigt (const BoundedMatrixType &rOldOperator, BoundedMatrixVoigtType &rNewOperator)
 This converts the 3x3 rotation matrix to the 6x6 Cook et al., "Concepts and applications of finite element analysis". More...
 
template<class TVector >
static void CheckAndNormalizeVector (TVector &rVector)
 This checks if a vector has null norm. More...
 
static void CalculateElasticMatrixPlaneStress (MatrixType &rC, const double E, const double NU)
 
static void CalculateElasticMatrixPlaneStrain (MatrixType &rC, const double E, const double N)
 
static void CalculateElasticMatrix (MatrixType &rC, const double E, const double N)
 
static void CalculateCauchyGreenStrain (ConstitutiveLaw::Parameters &rValues, ConstitutiveLaw::StrainVectorType &rStrainVector)
 It calculates the strain vector. More...
 
static void CalculatePK2StressFromStrain (ConstitutiveLaw::StressVectorType &rStressVector, const ConstitutiveLaw::StrainVectorType &rStrainVector, const double YoungModulus, const double PoissonRatio)
 
static void CalculatePK2StressFromStrainPlaneStress (ConstitutiveLaw::StressVectorType &rStressVector, const ConstitutiveLaw::StrainVectorType &rStrainVector, const double YoungModulus, const double PoissonRatio)
 
static void CalculatePK2StressFromStrainPlaneStrain (ConstitutiveLaw::StressVectorType &rStressVector, const ConstitutiveLaw::StrainVectorType &rStrainVector, const double YoungModulus, const double PoissonRatio)
 

Type definitions

typedef std::size_t IndexType
 The index type definition. More...
 
typedef Matrix MatrixType
 The matrix type definition. More...
 
typedef Vector VectorType
 the vector type definition More...
 
typedef array_1d< double, VoigtSizeBoundedVectorType
 The definition of the bounded vector type. More...
 
typedef BoundedMatrix< double, Dimension, DimensionBoundedMatrixType
 The definition of the bounded matrix type. More...
 
typedef Node NodeType
 Node type definition. More...
 
typedef Geometry< NodeTypeGeometryType
 Geometry definitions. More...
 
typedef std::size_t IndexType
 The index type definition. More...
 
typedef Matrix MatrixType
 The matrix type definition. More...
 
typedef Vector VectorType
 the vector type definition More...
 
typedef array_1d< double, VoigtSizeBoundedVectorType
 The definition of the bounded vector type. More...
 
typedef BoundedMatrix< double, Dimension, DimensionBoundedMatrixType
 The definition of the bounded matrix type. More...
 
typedef BoundedMatrix< double, VoigtSize, VoigtSizeBoundedMatrixVoigtType
 The definition of the bounded matrix type. More...
 
typedef Node NodeType
 Node type definition. More...
 
typedef Geometry< NodeTypeGeometryType
 Geometry definitions. More...
 
static constexpr SizeType Dimension = TVoigtSize == 6 ? 3 : 2
 We define the dimension. More...
 
static constexpr SizeType VoigtSize = TVoigtSize
 We define the Voigt size. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 The zero tolerance. More...
 

Detailed Description

template<SizeType TVoigtSize = 6>
class Kratos::ConstitutiveLawUtilities< TVoigtSize >

This class includes several utilities necessaries for the computation of the constitutive law.

/

The methods are static, so it can be called without constructing the class

Template Parameters
TVoigtSizeThe number of components on the Voigt notation
Author
Alejandro Cornejo
Vicente Mataix Ferrandiz

The methods are static, so it can be called without constructing the class

Template Parameters
TVoigtSizeThe number of components on the Voigt notation
Author
Alejandro Cornejo
Vicente Mataix Ferrandiz

Member Typedef Documentation

◆ BoundedMatrixType [1/2]

template<SizeType TVoigtSize = 6>
typedef BoundedMatrix<double, Dimension, Dimension> Kratos::ConstitutiveLawUtilities< TVoigtSize >::BoundedMatrixType

The definition of the bounded matrix type.

◆ BoundedMatrixType [2/2]

template<SizeType TVoigtSize = 6>
typedef BoundedMatrix<double, Dimension, Dimension> Kratos::ConstitutiveLawUtilities< TVoigtSize >::BoundedMatrixType

The definition of the bounded matrix type.

◆ BoundedMatrixVoigtType

template<SizeType TVoigtSize = 6>
typedef BoundedMatrix<double, VoigtSize, VoigtSize> Kratos::ConstitutiveLawUtilities< TVoigtSize >::BoundedMatrixVoigtType

The definition of the bounded matrix type.

◆ BoundedVectorType [1/2]

template<SizeType TVoigtSize = 6>
typedef array_1d<double, VoigtSize> Kratos::ConstitutiveLawUtilities< TVoigtSize >::BoundedVectorType

The definition of the bounded vector type.

◆ BoundedVectorType [2/2]

template<SizeType TVoigtSize = 6>
typedef array_1d<double, VoigtSize> Kratos::ConstitutiveLawUtilities< TVoigtSize >::BoundedVectorType

The definition of the bounded vector type.

◆ GeometryType [1/2]

template<SizeType TVoigtSize = 6>
typedef Geometry<NodeType> Kratos::ConstitutiveLawUtilities< TVoigtSize >::GeometryType

Geometry definitions.

◆ GeometryType [2/2]

template<SizeType TVoigtSize = 6>
typedef Geometry<NodeType> Kratos::ConstitutiveLawUtilities< TVoigtSize >::GeometryType

Geometry definitions.

◆ IndexType [1/2]

template<SizeType TVoigtSize = 6>
typedef std::size_t Kratos::ConstitutiveLawUtilities< TVoigtSize >::IndexType

The index type definition.

◆ IndexType [2/2]

template<SizeType TVoigtSize = 6>
typedef std::size_t Kratos::ConstitutiveLawUtilities< TVoigtSize >::IndexType

The index type definition.

◆ MatrixType [1/2]

template<SizeType TVoigtSize = 6>
typedef Matrix Kratos::ConstitutiveLawUtilities< TVoigtSize >::MatrixType

The matrix type definition.

◆ MatrixType [2/2]

template<SizeType TVoigtSize = 6>
typedef Matrix Kratos::ConstitutiveLawUtilities< TVoigtSize >::MatrixType

The matrix type definition.

◆ NodeType [1/2]

template<SizeType TVoigtSize = 6>
typedef Node Kratos::ConstitutiveLawUtilities< TVoigtSize >::NodeType

Node type definition.

◆ NodeType [2/2]

template<SizeType TVoigtSize = 6>
typedef Node Kratos::ConstitutiveLawUtilities< TVoigtSize >::NodeType

Node type definition.

◆ VectorType [1/2]

template<SizeType TVoigtSize = 6>
typedef Vector Kratos::ConstitutiveLawUtilities< TVoigtSize >::VectorType

the vector type definition

◆ VectorType [2/2]

template<SizeType TVoigtSize = 6>
typedef Vector Kratos::ConstitutiveLawUtilities< TVoigtSize >::VectorType

the vector type definition

Member Function Documentation

◆ CalculateAlmansiStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateAlmansiStrain ( const MatrixType rLeftCauchyTensor,
VectorType rStrainVector 
)
static

Calculation of the Almansi strain vector.

See https://en.wikipedia.org/wiki/Finite_strain_theory#Seth%E2%80%93Hill_family_of_generalized_strain_tensors

Parameters
rLeftCauchyTensorThe left Cauchy tensor
rStrainVectorThe Almansi strain vector

◆ CalculateBiotStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateBiotStrain ( const MatrixType rCauchyTensor,
VectorType rStrainVector 
)
static

Calculation of the Biot strain vector.

See https://en.wikipedia.org/wiki/Finite_strain_theory#Seth%E2%80%93Hill_family_of_generalized_strain_tensors

Parameters
rCauchyTensorThe right Cauchy tensor
rStrainVectorThe Biot strain vector

◆ CalculateBulkModulus()

template<SizeType TVoigtSize>
double Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateBulkModulus ( const double  YoungModulus,
const double  PoissonRatio 
)
static

This method computes the Bulk modulus K = E / (2(1+nu))

Parameters
rValuesParameters of the constitutive law

◆ CalculateCauchyGreenStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateCauchyGreenStrain ( ConstitutiveLaw::Parameters rValues,
ConstitutiveLaw::StrainVectorType rStrainVector 
)
static

It calculates the strain vector.

Parameters
rValuesThe internal values of the law
rStrainVectorThe strain vector in Voigt notation

◆ CalculateDamageParameterDruckerPrager()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterDruckerPrager ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterHuberVonMises()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterHuberVonMises ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterModifiedMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterModifiedMohrCoulomb ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterMohrCoulomb ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterRankine()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterRankine ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterSimoJu()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterSimoJu ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDamageParameterTresca()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDamageParameterTresca ( ConstitutiveLaw::Parameters rValues,
double rAParameter,
const double  CharacteristicLength 
)
inlinestatic

This method returns the damage parameter needed in the exp/linear expressions of damage.

Parameters
rAParameterThe damage parameter
rValuesParameters of the constitutive law
CharacteristicLengthThe equivalent length of the FE

◆ CalculateDeviatoricStrainVector()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateDeviatoricStrainVector ( const Vector rStrainVector,
const Vector rVolumetricStrainVector,
Vector rDeviatoricStrainVector 
)
static

This method computes the deviatoric part of the strain.

Parameters
rStrainVectorThe total strain
rVolumetricStrainVectorThe volumetric strain part
rDeviatoricStrainVectorThe deviatoric strain part

◆ CalculateElasticMatrix() [1/4]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateElasticMatrix ( Matrix rConstitutiveMatrix,
const double  E,
const double  nu 
)

◆ CalculateElasticMatrix() [2/4]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateElasticMatrix ( Matrix rConstitutiveMatrix,
const double  E,
const double  nu 
)

◆ CalculateElasticMatrix() [3/4]

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateElasticMatrix ( Matrix rConstitutiveMatrix,
const double  E,
const double  nu 
)
static

This method computes the elastic ConstitutiveMatrix.

◆ CalculateElasticMatrix() [4/4]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateElasticMatrix ( MatrixType rC,
const double  E,
const double  N 
)
static

It calculates the constitutive matrix C in 3D

Parameters
rCThe constitutive matrix
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculateElasticMatrixPlaneStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateElasticMatrixPlaneStrain ( MatrixType rC,
const double  E,
const double  N 
)
static

It calculates the constitutive matrix C in 2D plane strain

Parameters
rCThe constitutive matrix
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculateElasticMatrixPlaneStress()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateElasticMatrixPlaneStress ( MatrixType rC,
const double  E,
const double  NU 
)
static

It calculates the constitutive matrix C in 2D plane stress

Parameters
rCThe constitutive matrix
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculateEquivalentStressDruckerPrager()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressDruckerPrager ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of Drucker-Prager.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressHuberVonMises()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressHuberVonMises ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of Huber-VonMises.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressModifiedMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressModifiedMohrCoulomb ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of ModifiedMohrCoulomb.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressMohrCoulomb ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of MohrCoulomb.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressRankine()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressRankine ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of Rankine.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressSimoJu()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressSimoJu ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of SimoJu.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateEquivalentStressTresca()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateEquivalentStressTresca ( const BoundedVectorType rPredictiveStressVector,
const Vector rStrainVector,
double rEquivalentStress,
ConstitutiveLaw::Parameters rValues 
)
inlinestatic

This method the uniaxial equivalent stress of Tresca.

Parameters
rPredictiveStressVectorThe predictive stress vector S = C:(E-Ep)
rStrainVectorThe StrainVector vector
rValuesParameters of the constitutive law

◆ CalculateFirstVector() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateFirstVector ( BoundedVectorType rFirstVector)

◆ CalculateFirstVector() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateFirstVector ( BoundedVectorType rFirstVector)

◆ CalculateFirstVector() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateFirstVector ( BoundedVectorType rFirstVector)
static

This method computes the first vector.

Parameters
rFirstVectorThe first vector

◆ CalculateGreenLagrangianStrain() [1/2]

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateGreenLagrangianStrain ( const MatrixType rCauchyTensor,
VectorType rStrainVector 
)
static

Calculation of the Green-Lagrange strain vector.

See https://en.wikipedia.org/wiki/Finite_strain_theory#Seth%E2%80%93Hill_family_of_generalized_strain_tensors

Parameters
rCauchyTensorThe right Cauchy tensor
rStrainVectorThe Green-Lagrange strain vector

◆ CalculateGreenLagrangianStrain() [2/2]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateGreenLagrangianStrain ( const MatrixType rCauchyTensor,
VectorType rStrainVector 
)
static

Calculation of the Green-Lagrange strain vector.

See https://en.wikipedia.org/wiki/Finite_strain_theory#Seth%E2%80%93Hill_family_of_generalized_strain_tensors

Parameters
rCauchyTensorThe right Cauchy tensor
rStrainVectorThe Green-Lagrange strain vector

◆ CalculateHenckyStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateHenckyStrain ( const MatrixType rCauchyTensor,
VectorType rStrainVector 
)
static

Calculation of the Hencky strain vector (true strain, natural strain, logarithmic strain)

See https://en.wikipedia.org/wiki/Finite_strain_theory#Seth%E2%80%93Hill_family_of_generalized_strain_tensors

Parameters
rCauchyTensorThe right Cauchy tensor
rStrainVectorThe Hencky strain vector

◆ CalculateI1Invariant() [1/2]

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateI1Invariant ( const BoundedVectorType rStressVector,
double rI1 
)
static

This method computes the first invariant from a given stress vector.

Parameters
rStressVectorThe stress vector on Voigt notation
rI1The first invariant

◆ CalculateI1Invariant() [2/2]

template<SizeType TVoigtSize = 6>
template<class TVector >
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateI1Invariant ( const TVector &  rStressVector,
double rI1 
)
inlinestatic

This method computes the first invariant from a given stress vector.

Parameters
rStressVectorThe stress vector on Voigt notation
rI1The first invariant
Template Parameters
TVectorThe themplate for the vector class

◆ CalculateI2Invariant() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateI2Invariant ( const BoundedVectorType rStressVector,
double rI2 
)

◆ CalculateI2Invariant() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateI2Invariant ( const BoundedVectorType rStressVector,
double rI2 
)

◆ CalculateI2Invariant() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateI2Invariant ( const BoundedVectorType rStressVector,
double rI2 
)
static

This method computes the second invariant from a given stress vector.

Parameters
rStressVectorThe stress vector on Voigt notation
rI2The second invariant
Todo:
Adapt for 2D dimension

◆ CalculateI3Invariant() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateI3Invariant ( const BoundedVectorType rStressVector,
double rI3 
)

◆ CalculateI3Invariant() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateI3Invariant ( const BoundedVectorType rStressVector,
double rI3 
)

◆ CalculateI3Invariant() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateI3Invariant ( const BoundedVectorType rStressVector,
double rI3 
)
static

This method computes the third invariant from a given stress vector.

Parameters
rStressVectorThe stress vector on Voigt notation
rI3The third invariant
Todo:
Adapt for 2D dimension

◆ CalculateIdentityVector()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateIdentityVector ( BoundedVectorType rIdentityVector)
inlinestatic

This method creates an identity vector.

Parameters
rIdentityVectorThe resulting Identity Vector

◆ CalculateJ2Invariant() [1/4]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateJ2Invariant ( const BoundedVectorType rStressVector,
const double  I1,
BoundedVectorType rDeviator,
double rJ2 
)

◆ CalculateJ2Invariant() [2/4]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateJ2Invariant ( const BoundedVectorType rStressVector,
const double  I1,
BoundedVectorType rDeviator,
double rJ2 
)

◆ CalculateJ2Invariant() [3/4]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateJ2Invariant ( const BoundedVectorType rStressVector,
const double  I1,
BoundedVectorType rDeviator,
double rJ2 
)
static

This method computes the second invariant of J.

Parameters
rStressVectorThe stress vector on Voigt notation
I1The first invariant
rDeviatorThe deviator of the stress
rJ2The second invariant of J

◆ CalculateJ2Invariant() [4/4]

template<SizeType TVoigtSize = 6>
template<class TVector >
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateJ2Invariant ( const TVector &  rStressVector,
const double  I1,
BoundedVectorType rDeviator,
double rJ2 
)
inlinestatic

This method computes the second invariant of J.

Parameters
rStressVectorThe stress vector on Voigt notation
I1The first invariant
rDeviatorThe deviator of the stress
rJ2The second invariant of J
Template Parameters
TVectorThe themplate for the vector class

◆ CalculateJ3Invariant() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateJ3Invariant ( const BoundedVectorType rDeviator,
double rJ3 
)

◆ CalculateJ3Invariant() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateJ3Invariant ( const BoundedVectorType rDeviator,
double rJ3 
)

◆ CalculateJ3Invariant() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateJ3Invariant ( const BoundedVectorType rDeviator,
double rJ3 
)
static

This method computes the third invariant of J.

Parameters
rDeviatorThe deviator of the stress
rJ3The third invariant of J

◆ CalculateLodeAngle()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateLodeAngle ( const double  J2,
const double  J3,
double rLodeAngle 
)
static

This method computes the lode angle.

Parameters
J2The resultant J2 stress
J3The resultant J3 stress
rLodeAngleThe lode angle

◆ CalculatePK2StressFromStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculatePK2StressFromStrain ( ConstitutiveLaw::StressVectorType rStressVector,
const ConstitutiveLaw::StrainVectorType rStrainVector,
const double  YoungModulus,
const double  PoissonRatio 
)
static

It calculates elastic stress from strain and E and NU for 3D elasticity

Parameters
rStressVectorThe stress vector
rStrainVectorThe strain vector
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculatePK2StressFromStrainPlaneStrain()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculatePK2StressFromStrainPlaneStrain ( ConstitutiveLaw::StressVectorType rStressVector,
const ConstitutiveLaw::StrainVectorType rStrainVector,
const double  YoungModulus,
const double  PoissonRatio 
)
static

It calculates elastic stress from strain and E and NU for plane strain elasticity

Parameters
rStressVectorThe stress vector
rStrainVectorThe strain vector
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculatePK2StressFromStrainPlaneStress()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculatePK2StressFromStrainPlaneStress ( ConstitutiveLaw::StressVectorType rStressVector,
const ConstitutiveLaw::StrainVectorType rStrainVector,
const double  YoungModulus,
const double  PoissonRatio 
)
static

It calculates elastic stress from strain and E and NU in plane stress elasticity

Parameters
rStressVectorThe stress vector
rStrainVectorThe strain vector
YoungModulusThe elasticity modulus
PoissonRatioThe poisson ratio

◆ CalculatePrincipalStresses() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculatePrincipalStresses ( array_1d< double, Dimension > &  rPrincipalStressVector,
const BoundedVectorType rStressVector 
)

◆ CalculatePrincipalStresses() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculatePrincipalStresses ( array_1d< double, Dimension > &  rPrincipalStressVector,
const BoundedVectorType rStressVector 
)

◆ CalculatePrincipalStresses() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculatePrincipalStresses ( array_1d< double, Dimension > &  rPrincipalStressVector,
const BoundedVectorType rStressVector 
)
static

This method computes the principal stresses vector.

http://www.continuummechanics.org/principalstress.html

Parameters
rPrincipalStressVectorThe vector of principal stresses
rStressVectorThe vector of stresses
Todo:
Adapt for 2D dimension

◆ CalculatePrincipalStressesWithCardano()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculatePrincipalStressesWithCardano ( array_1d< double, Dimension > &  rPrincipalStressVector,
const BoundedVectorType rStressVector 
)
static

This method computes the principal stresses vector.

Using Cardano formula and renormalizing (TODO)

Parameters
rPrincipalStressVectorThe vector of principal stresses
rStressVectorThe vector of stresses
Todo:
Adapt for 2D dimension

◆ CalculateProjectionOperator() [1/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateProjectionOperator ( const Vector rStrainVector,
MatrixType rProjectionOperator 
)
static

This method calculates the projection operator and calculates the Projection Operator.

see "An energy-Equivalent" d+/d- Damage model with Enhanced Microcrack Closure/Reopening Capabilities for Cohesive-Frictional Materials" - M. Cervera and C. Tesei.

Parameters
rStrainVectorThe Strain Vector
rProjectionOperatorThe projection operator

◆ CalculateProjectionOperator() [2/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateProjectionOperator ( const Vector rStrainVector,
MatrixType rProjectionOperatorTensor 
)

◆ CalculateProjectionOperator() [3/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateProjectionOperator ( const Vector rStrainVector,
MatrixType rProjectionOperatorTensor 
)

◆ CalculateRotationOperatorVoigt()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateRotationOperatorVoigt ( const BoundedMatrixType rOldOperator,
BoundedMatrixVoigtType rNewOperator 
)
static

This converts the 3x3 rotation matrix to the 6x6 Cook et al., "Concepts and applications of finite element analysis".

◆ CalculateSecondVector() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateSecondVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rSecondVector 
)

◆ CalculateSecondVector() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateSecondVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rSecondVector 
)

◆ CalculateSecondVector() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateSecondVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rSecondVector 
)
static

This method computes the second vector.

Parameters
rDeviatorThe deviator of the stress
J2The resultant J2 stress
rSecondVectorThe second vector

◆ CalculateShearModulus()

template<SizeType TVoigtSize>
double Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateShearModulus ( const double  YoungModulus,
const double  PoissonRatio 
)
static

This method computes the Shear modulus G = E / (3(1-2nu))

Parameters
rValuesParameters of the constitutive law

◆ CalculateThirdVector() [1/3]

void Kratos::ConstitutiveLawUtilities< 6 >::CalculateThirdVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rThirdVector 
)

◆ CalculateThirdVector() [2/3]

void Kratos::ConstitutiveLawUtilities< 3 >::CalculateThirdVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rThirdVector 
)

◆ CalculateThirdVector() [3/3]

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateThirdVector ( const BoundedVectorType rDeviator,
const double  J2,
BoundedVectorType rThirdVector 
)
static

This method computes the third vector.

Parameters
rDeviatorThe deviator of the stress
J2The resultant J2 stress
rThirdVectorThe third vector
Todo:
Adapt for 2D dimension

◆ CalculateVolumetricStrainVector()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateVolumetricStrainVector ( const Vector rStrainVector,
Vector rVolumetricStrainVector 
)
static

This method computes the volumetric part of the strain.

Parameters
rStrainVectorThe total strain
rVolumetricStrainVectorThe volumetric strain part

◆ CalculateVonMisesEquivalentStress()

template<SizeType TVoigtSize = 6>
template<class TVector >
static double Kratos::ConstitutiveLawUtilities< TVoigtSize >::CalculateVonMisesEquivalentStress ( const TVector &  rStressVector)
inlinestatic

This method the uniaxial equivalent stress for Von Mises.

Parameters
rStressVectorThe stress vector S = C:E
Returns
The VM equivalent stress
Template Parameters
TVectorThe themplate for the vector class

◆ CheckAndNormalizeVector()

template<SizeType TVoigtSize = 6>
template<class TVector >
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::CheckAndNormalizeVector ( TVector &  rVector)
inlinestatic

This checks if a vector has null norm.

◆ Get2MaxValues()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::Get2MaxValues ( Vector rMaxValues,
const double  a,
const double  b,
const double  c 
)
inlinestatic

This method returns the 2 max values of a vector.

Parameters
rValuesThe values

◆ GetInitialUniaxialThresholdDruckerPrager()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdDruckerPrager ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for SimoJu.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdHuberVonMises()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdHuberVonMises ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for VonMises.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdModifiedMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdModifiedMohrCoulomb ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for ModifiedMohrCoulomb.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdMohrCoulomb()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdMohrCoulomb ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for MohrCoulomb.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdRankine()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdRankine ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for Rankine.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdSimoJu()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdSimoJu ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for SimoJu.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetInitialUniaxialThresholdTresca()

template<SizeType TVoigtSize = 6>
static void Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetInitialUniaxialThresholdTresca ( ConstitutiveLaw::Parameters rValues,
double rThreshold 
)
inlinestatic

This method returns the initial uniaxial stress threshold for Tresca.

Parameters
rThresholdThe uniaxial stress threshold
rValuesParameters of the constitutive law

◆ GetMaxAbsValue()

template<SizeType TVoigtSize = 6>
static double Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetMaxAbsValue ( const Vector rArrayValues)
inlinestatic

This method returns max abs value over a vector.

Parameters
rValuesThe values

◆ GetMaxValue()

template<SizeType TVoigtSize = 6>
static double Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetMaxValue ( const Vector rValues)
inlinestatic

This method returns max value over a vector.

Parameters
rValuesThe values

◆ GetMinAbsValue()

template<SizeType TVoigtSize = 6>
static double Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetMinAbsValue ( const Vector rArrayValues)
inlinestatic

This method returns min abs value over a vector.

Parameters
rValuesThe values

◆ GetStateVariableIndex()

template<SizeType TVoigtSize = 6>
int Kratos::ConstitutiveLawUtilities< TVoigtSize >::GetStateVariableIndex ( const Variable< double > &  rThisVariable)
static

◆ PolarDecomposition()

template<SizeType TVoigtSize>
void Kratos::ConstitutiveLawUtilities< TVoigtSize >::PolarDecomposition ( const MatrixType rFDeformationGradient,
MatrixType rRMatrix,
MatrixType rUMatrix 
)
static

The deformation gradient F, like any invertible second-order tensor, can be decomposed, using the polar decomposition theorem, into a product of two second-order tensors (Truesdell and Noll, 1965): an orthogonal tensor and a positive definite symmetric tensor, i.e F = R U.

See https://en.wikipedia.org/wiki/Finite_strain_theory#Polar_decomposition_of_the_deformation_gradient_tensor

Parameters
rFDeformationGradientThe deformation gradient
rRMatrixThe rotation component
rUMatrixThe pure displacement component

Member Data Documentation

◆ Dimension

template<SizeType TVoigtSize = 6>
static constexpr SizeType Kratos::ConstitutiveLawUtilities< TVoigtSize >::Dimension = TVoigtSize == 6 ? 3 : 2
staticconstexpr

We define the dimension.

◆ tolerance

template<SizeType TVoigtSize = 6>
static constexpr double Kratos::ConstitutiveLawUtilities< TVoigtSize >::tolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

The zero tolerance.

◆ VoigtSize

template<SizeType TVoigtSize = 6>
static constexpr SizeType Kratos::ConstitutiveLawUtilities< TVoigtSize >::VoigtSize = TVoigtSize
staticconstexpr

We define the Voigt size.


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