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 | Public Types | Public Member Functions | Static Public Member Functions | List of all members
Kratos::ConstitutiveLaw Class Reference

#include <constitutive_law.h>

Inherits Kratos::Flags.

Inherited by Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::BeamConstitutiveLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::Constitutive3DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::ElasticCohesive3DLaw, Kratos::ElasticIsotropic3D, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::FiniteStrainIsotropicPlasticityFactory, Kratos::FiniteStrainKinematicPlasticityFactory, Kratos::FluidConstitutiveLaw, Kratos::GenericAnisotropic3DLaw, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::GeoLinearElasticLaw, Kratos::GeoThermalDispersionLaw, Kratos::HelmholtzJacobianStiffened3D, Kratos::HyperElastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElasticIsotropicHenky1D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::HyperElasticIsotropicOgden1D, Kratos::IsotropicDamageCohesive3DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::PfemFluidConstitutiveLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::PlasticityIsotropicKinematicJ2, Kratos::PythonOutfittedConstitutiveLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::SmallStrainIsotropicDamageFactory, Kratos::SmallStrainIsotropicPlasticityFactory, Kratos::SmallStrainJ2Plasticity3D, Kratos::SmallStrainKinematicPlasticityFactory, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::TrussConstitutiveLaw, Kratos::TrussPlasticityConstitutiveLaw, Kratos::UserProvidedLinearElasticLaw< TDim >, and Kratos::WrinklingLinear2DLaw.

Collaboration diagram for Kratos::ConstitutiveLaw:

Classes

struct  Features
 
struct  Parameters
 

Public Types

enum  StrainMeasure {
  StrainMeasure_Infinitesimal , StrainMeasure_GreenLagrange , StrainMeasure_Almansi , StrainMeasure_Hencky_Material ,
  StrainMeasure_Hencky_Spatial , StrainMeasure_Deformation_Gradient , StrainMeasure_Right_CauchyGreen , StrainMeasure_Left_CauchyGreen ,
  StrainMeasure_Velocity_Gradient
}
 
enum  StressMeasure { StressMeasure_PK1 , StressMeasure_PK2 , StressMeasure_Kirchhoff , StressMeasure_Cauchy }
 
typedef ProcessInfo ProcessInfoType
 
typedef std::size_t SizeType
 
typedef Geometry< NodeGeometryType
 
typedef Vector StrainVectorType
 
typedef Vector StressVectorType
 
typedef Matrix VoigtSizeMatrixType
 
typedef Matrix DeformationGradientMatrixType
 
- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 

Public Member Functions

 KRATOS_CLASS_POINTER_DEFINITION (ConstitutiveLaw)
 
 KRATOS_DEFINE_LOCAL_FLAG (USE_ELEMENT_PROVIDED_STRAIN)
 
 KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRESS)
 
 KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_CONSTITUTIVE_TENSOR)
 
 KRATOS_DEFINE_LOCAL_FLAG (COMPUTE_STRAIN_ENERGY)
 
 KRATOS_DEFINE_LOCAL_FLAG (ISOCHORIC_TENSOR_ONLY)
 
 KRATOS_DEFINE_LOCAL_FLAG (VOLUMETRIC_TENSOR_ONLY)
 
 KRATOS_DEFINE_LOCAL_FLAG (MECHANICAL_RESPONSE_ONLY)
 
 KRATOS_DEFINE_LOCAL_FLAG (THERMAL_RESPONSE_ONLY)
 
 KRATOS_DEFINE_LOCAL_FLAG (INCREMENTAL_STRAIN_MEASURE)
 
 KRATOS_DEFINE_LOCAL_FLAG (INITIALIZE_MATERIAL_RESPONSE)
 
 KRATOS_DEFINE_LOCAL_FLAG (FINALIZE_MATERIAL_RESPONSE)
 
 KRATOS_DEFINE_LOCAL_FLAG (FINITE_STRAINS)
 
 KRATOS_DEFINE_LOCAL_FLAG (INFINITESIMAL_STRAINS)
 
 KRATOS_DEFINE_LOCAL_FLAG (THREE_DIMENSIONAL_LAW)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRAIN_LAW)
 
 KRATOS_DEFINE_LOCAL_FLAG (PLANE_STRESS_LAW)
 
 KRATOS_DEFINE_LOCAL_FLAG (AXISYMMETRIC_LAW)
 
 KRATOS_DEFINE_LOCAL_FLAG (U_P_LAW)
 
 KRATOS_DEFINE_LOCAL_FLAG (ISOTROPIC)
 
 KRATOS_DEFINE_LOCAL_FLAG (ANISOTROPIC)
 
 ConstitutiveLaw ()
 
 ~ConstitutiveLaw () override
 
virtual ConstitutiveLaw::Pointer Clone () const
 Clone function (has to be implemented by any derived class) More...
 
virtual Pointer Create (Kratos::Parameters NewParameters) const
 It creates a new constitutive law pointer. More...
 
virtual Pointer Create (Kratos::Parameters NewParameters, const Properties &rProperties) const
 It creates a new constitutive law pointer (version with properties) More...
 
virtual SizeType WorkingSpaceDimension ()
 
virtual SizeType GetStrainSize () const
 
void SetInitialState (InitialState::Pointer pInitialState)
 
InitialState::Pointer pGetInitialState ()
 
InitialStateGetInitialState ()
 
bool HasInitialState () const
 
template<typename TVectorType >
void AddInitialStressVectorContribution (TVectorType &rStressVector)
 Adds the initial stress vector if it is defined in the InitialState. More...
 
template<typename TVectorType >
void AddInitialStrainVectorContribution (TVectorType &rStrainVector)
 Adds the initial strain vector if it is defined in the InitialState. More...
 
template<typename TMatrixType >
void AddInitialDeformationGradientMatrixContribution (TMatrixType &rF)
 Adds the initial strain vector if it is defined in the InitialState. More...
 
virtual bool Has (const Variable< bool > &rThisVariable)
 Returns whether this constitutive Law has specified variable (boolean) More...
 
virtual bool Has (const Variable< int > &rThisVariable)
 Returns whether this constitutive Law has specified variable (integer) More...
 
virtual bool Has (const Variable< double > &rThisVariable)
 Returns whether this constitutive Law has specified variable (double) More...
 
virtual bool Has (const Variable< Vector > &rThisVariable)
 Returns whether this constitutive Law has specified variable (Vector) More...
 
virtual bool Has (const Variable< Matrix > &rThisVariable)
 Returns whether this constitutive Law has specified variable (Matrix) More...
 
virtual bool Has (const Variable< array_1d< double, 3 > > &rThisVariable)
 Returns whether this constitutive Law has specified variable (array of 3 components) More...
 
virtual bool Has (const Variable< array_1d< double, 6 > > &rThisVariable)
 Returns whether this constitutive Law has specified variable (array of 6 components) More...
 
virtual boolGetValue (const Variable< bool > &rThisVariable, bool &rValue)
 Returns the value of a specified variable (boolean) More...
 
virtual intGetValue (const Variable< int > &rThisVariable, int &rValue)
 
virtual doubleGetValue (const Variable< double > &rThisVariable, double &rValue)
 Returns the value of a specified variable (double) More...
 
virtual VectorGetValue (const Variable< Vector > &rThisVariable, Vector &rValue)
 Returns the value of a specified variable (Vector) More...
 
virtual MatrixGetValue (const Variable< Matrix > &rThisVariable, Matrix &rValue)
 Returns the value of a specified variable (Matrix) More...
 
virtual array_1d< double, 3 > & GetValue (const Variable< array_1d< double, 3 > > &rThisVariable, array_1d< double, 3 > &rValue)
 Returns the value of a specified variable (array of 3 components) More...
 
virtual array_1d< double, 6 > & GetValue (const Variable< array_1d< double, 6 > > &rThisVariable, array_1d< double, 6 > &rValue)
 Returns the value of a specified variable (array of 6 components) More...
 
virtual void SetValue (const Variable< bool > &rVariable, const bool &Value, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (boolean) More...
 
virtual void SetValue (const Variable< int > &rVariable, const int &Value, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (integer) More...
 
virtual void SetValue (const Variable< double > &rVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (double) More...
 
virtual void SetValue (const Variable< Vector > &rVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (Vector) More...
 
virtual void SetValue (const Variable< Matrix > &rVariable, const Matrix &rValue, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (Matrix) More...
 
virtual void SetValue (const Variable< array_1d< double, 3 > > &rVariable, const array_1d< double, 3 > &rValue, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (array of 3 components) More...
 
virtual void SetValue (const Variable< array_1d< double, 6 > > &rVariable, const array_1d< double, 6 > &rValue, const ProcessInfo &rCurrentProcessInfo)
 Sets the value of a specified variable (array of 6 components) More...
 
virtual boolCalculateValue (Parameters &rParameterValues, const Variable< bool > &rThisVariable, bool &rValue)
 Calculates the value of a specified variable (bool) More...
 
virtual intCalculateValue (Parameters &rParameterValues, const Variable< int > &rThisVariable, int &rValue)
 Calculates the value of a specified variable (int) More...
 
virtual doubleCalculateValue (Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue)
 Calculates the value of a specified variable (double) More...
 
virtual VectorCalculateValue (Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue)
 Calculates the value of a specified variable (Vector) More...
 
virtual MatrixCalculateValue (Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue)
 Calculates the value of a specified variable (Matrix) More...
 
virtual array_1d< double, 3 > & CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 3 > > &rVariable, array_1d< double, 3 > &rValue)
 Calculates the value of a specified variable (array of 3 components) More...
 
virtual array_1d< double, 6 > & CalculateValue (Parameters &rParameterValues, const Variable< array_1d< double, 6 > > &rVariable, array_1d< double, 6 > &rValue)
 
virtual void CalculateDerivative (Parameters &rParameterValues, const Variable< double > &rFunctionVariable, const Variable< double > &rDerivativeVariable, double &rOutput)
 Calculates derivatives of a given function. More...
 
virtual void CalculateDerivative (Parameters &rParameterValues, const Variable< Vector > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Vector &rOutput)
 Calculates derivatives of a given function. More...
 
virtual void CalculateDerivative (Parameters &rParameterValues, const Variable< Matrix > &rFunctionVariable, const Variable< double > &rDerivativeVariable, Matrix &rOutput)
 Calculates derivatives of a given function. More...
 
virtual void CalculateDerivative (Parameters &rParameterValues, const Variable< array_1d< double, 3 >> &rFunctionVariable, const Variable< double > &rDerivativeVariable, array_1d< double, 3 > &rOutput)
 Calculates derivatives of a given function. More...
 
virtual bool ValidateInput (const Properties &rMaterialProperties)
 
virtual StrainMeasure GetStrainMeasure ()
 
virtual StressMeasure GetStressMeasure ()
 
virtual bool IsIncremental ()
 
virtual void InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues)
 
virtual void InitializeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void FinalizeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void InitializeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo)
 
virtual void FinalizeNonLinearIteration (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo)
 
void CalculateMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure)
 
virtual void CalculateMaterialResponsePK1 (Parameters &rValues)
 
virtual void CalculateMaterialResponsePK2 (Parameters &rValues)
 
virtual void CalculateMaterialResponseKirchhoff (Parameters &rValues)
 
virtual void CalculateMaterialResponseCauchy (Parameters &rValues)
 
virtual bool RequiresInitializeMaterialResponse ()
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
virtual void CalculateStressResponse (Parameters &rValues, Vector &rInternalVariables)
 
void InitializeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure)
 Initialize the material response, called by the element in InitializeSolutionStep. More...
 
virtual void InitializeMaterialResponsePK1 (Parameters &rValues)
 Initialize the material response in terms of 1st Piola-Kirchhoff stresses. More...
 
virtual void InitializeMaterialResponsePK2 (Parameters &rValues)
 Initialize the material response in terms of 2nd Piola-Kirchhoff stresses. More...
 
virtual void InitializeMaterialResponseKirchhoff (Parameters &rValues)
 Initialize the material response in terms of Kirchhoff stresses. More...
 
virtual void InitializeMaterialResponseCauchy (Parameters &rValues)
 Initialize the material response in terms of Cauchy stresses. More...
 
virtual bool RequiresFinalizeMaterialResponse ()
 If the CL requires to finalize the material response, called by the element in FinalizeSolutionStep. More...
 
void FinalizeMaterialResponse (Parameters &rValues, const StressMeasure &rStressMeasure)
 Finalize the material response, called by the element in FinalizeSolutionStep. More...
 
virtual void FinalizeMaterialResponsePK1 (Parameters &rValues)
 
virtual void FinalizeMaterialResponsePK2 (Parameters &rValues)
 
virtual void FinalizeMaterialResponseKirchhoff (Parameters &rValues)
 
virtual void FinalizeMaterialResponseCauchy (Parameters &rValues)
 
virtual void ResetMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues)
 
virtual VectorTransformStrains (Vector &rStrainVector, const Matrix &rF, StrainMeasure rStrainInitial, StrainMeasure rStrainFinal)
 
virtual MatrixTransformStresses (Matrix &rStressMatrix, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal)
 
virtual VectorTransformStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressInitial, StressMeasure rStressFinal)
 
VectorTransformPK1Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal)
 
VectorTransformPK2Stresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal)
 
VectorTransformKirchhoffStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal)
 
VectorTransformCauchyStresses (Vector &rStressVector, const Matrix &rF, const double &rdetF, StressMeasure rStressFinal)
 
void PullBackConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF)
 
void PushForwardConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF)
 
virtual void GetLawFeatures (Features &rFeatures)
 
virtual int Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const
 
virtual void CalculateCauchyStresses (Vector &Cauchy_StressVector, const Matrix &F, const Vector &PK2_StressVector, const Vector &GreenLagrangeStrainVector)
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Static Public Member Functions

static bool HasSameType (const ConstitutiveLaw &rLHS, const ConstitutiveLaw &rRHS)
 This method is used to check that two Constitutive Laws are the same type (references) More...
 
static bool HasSameType (const ConstitutiveLaw *rLHS, const ConstitutiveLaw *rRHS)
 This method is used to check that two Constitutive Laws are the same type (pointers) More...
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Protected Member Functions

Protected Operations
void ContraVariantPushForward (Matrix &rMatrix, const Matrix &rF)
 
void ContraVariantPullBack (Matrix &rMatrix, const Matrix &rF)
 
void CoVariantPushForward (Matrix &rMatrix, const Matrix &rF)
 
void CoVariantPullBack (Matrix &rMatrix, const Matrix &rF)
 
void ConstitutiveMatrixTransformation (Matrix &rConstitutiveMatrix, const Matrix &rOriginalConstitutiveMatrix, const Matrix &rF)
 
doubleTransformConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const Matrix &rF, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
doubleGetConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 

Static Protected Attributes

Protected static Member Variables
static const unsigned int msIndexVoigt3D6C [6][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1}, {1, 2}, {0, 2} }
 
static const unsigned int msIndexVoigt2D4C [4][2] = { {0, 0}, {1, 1}, {2, 2}, {0, 1} }
 
static const unsigned int msIndexVoigt2D3C [3][2] = { {0, 0}, {1, 1}, {0, 1} }
 

Serialization

class Serializer
 

Detailed Description

Base class of constitutive laws.

Member Typedef Documentation

◆ DeformationGradientMatrixType

◆ GeometryType

◆ ProcessInfoType

Type definitions NOTE: geometries are assumed to be of type Node for all problems

◆ SizeType

typedef std::size_t Kratos::ConstitutiveLaw::SizeType

◆ StrainVectorType

◆ StressVectorType

◆ VoigtSizeMatrixType

Member Enumeration Documentation

◆ StrainMeasure

Enumerator
StrainMeasure_Infinitesimal 
StrainMeasure_GreenLagrange 
StrainMeasure_Almansi 
StrainMeasure_Hencky_Material 
StrainMeasure_Hencky_Spatial 
StrainMeasure_Deformation_Gradient 
StrainMeasure_Right_CauchyGreen 
StrainMeasure_Left_CauchyGreen 
StrainMeasure_Velocity_Gradient 

◆ StressMeasure

Enumerator
StressMeasure_PK1 
StressMeasure_PK2 
StressMeasure_Kirchhoff 
StressMeasure_Cauchy 

Constructor & Destructor Documentation

◆ ConstitutiveLaw()

Kratos::ConstitutiveLaw::ConstitutiveLaw ( )

Constructor.

◆ ~ConstitutiveLaw()

Kratos::ConstitutiveLaw::~ConstitutiveLaw ( )
inlineoverride

Destructor.

Member Function Documentation

◆ AddInitialDeformationGradientMatrixContribution()

template<typename TMatrixType >
void Kratos::ConstitutiveLaw::AddInitialDeformationGradientMatrixContribution ( TMatrixType &  rF)
inline

Adds the initial strain vector if it is defined in the InitialState.

◆ AddInitialStrainVectorContribution()

template<typename TVectorType >
void Kratos::ConstitutiveLaw::AddInitialStrainVectorContribution ( TVectorType &  rStrainVector)
inline

Adds the initial strain vector if it is defined in the InitialState.

◆ AddInitialStressVectorContribution()

template<typename TVectorType >
void Kratos::ConstitutiveLaw::AddInitialStressVectorContribution ( TVectorType &  rStressVector)
inline

Adds the initial stress vector if it is defined in the InitialState.

◆ CalculateCauchyStresses()

void Kratos::ConstitutiveLaw::CalculateCauchyStresses ( Vector Cauchy_StressVector,
const Matrix F,
const Vector PK2_StressVector,
const Vector GreenLagrangeStrainVector 
)
virtual

◆ CalculateDerivative() [1/4]

void Kratos::ConstitutiveLaw::CalculateDerivative ( Parameters rParameterValues,
const Variable< array_1d< double, 3 >> &  rFunctionVariable,
const Variable< double > &  rDerivativeVariable,
array_1d< double, 3 > &  rOutput 
)
virtual

Calculates derivatives of a given function.

This method calculates derivative of a array_1d<double, 3> function (denoted by rFunctionVariable) w.r.t. rDerivativeVariable and stores the output in rOutput. The rDerivativeVariable represents a gauss point scalar variable only.

See also
double overload of this method for more explanations
Parameters
rParameterValuesInput for the derivative calculation
rFunctionVariableVariable to identify the function for which derivatives are computed
rDerivativeVariableScalar derivative variable
rOutputOutput having the same type as the rFunctionVariable

◆ CalculateDerivative() [2/4]

void Kratos::ConstitutiveLaw::CalculateDerivative ( Parameters rParameterValues,
const Variable< double > &  rFunctionVariable,
const Variable< double > &  rDerivativeVariable,
double rOutput 
)
virtual

Calculates derivatives of a given function.

This method calculates derivative of a scalar function (denoted by rFunctionVariable) w.r.t. rDerivativeVariable and stores the output in rOutput. The rDerivativeVariable represents a gauss point scalar variable only.

Eg: Assume following function (gauss point evaluated): [ \nu = \nu_{fluid} + \nu_t = \nu_{fluid} + \left(\frac{y}{\omega}\right)^2 \frac{\partial k}{\partial x_i}\frac{\partial \omega}{\partial x_i} ]

Then in here we use rFunctionVariable = EFFECTIVE_VISCOSITY

Then if we want to take derivatives w.r.t. $\omega$ (i.e. rDerivativeVariable = OMEGA). So following steps needs to be used.

 1. First calculate derivatives w.r.t. omega (rDerivativeVariable = OMEGA)
    using the call:
         CalculateDerivative(Values, EFFECTIVE_VISCOSITY, OMEGA, output);
    The output will hold the following:
         \[
             \frac{\partial \nu}{\partial \omega} = \frac{\partial \nu_t}{\partial \omega} = -2\frac{y^2}{\omega^3}\frac{\partial k}{\partial x_i}\frac{\partial \omega}{\partial x_i}
         \]
 2. Then calculate derivatives w.r.t. omega gradients (rDerivativeVariable = OMEGA_GRADIENT_X)
    using the call: (where OMEGA_GRADIENT is a 3D vector with components)
         CalculateDerivative(Values, EFFECTIVE_VISCOSITY, OMEGA_GRADIENT_X, output);
    The output will hold the following:
         \[
             \frac{\partial \nu}{\partial \nabla\omega_x} = \frac{\partial \nu_t}{\partial \nabla\omega_x} =  \left(\frac{y}{\omega}\right)^2 \frac{\partial k}{\partial x_x}
         \]
    Once you have these outputs, you can transform it to a nodal derivative (eg: discrete adjoint computation)
    within your element by using the chain rule. [Where $c$ is the node index of the geometry.]
         \[
             \frac{\partial \nu}{\partial \omega^c} = \frac{\partial \nu}{\partial \omega}\frac{\partial \omega}{\partial \omega^c} + \frac{\partial \nu}{\partial \nabla\omega_i}\frac{\partial \nabla\omega_i}{\partial \omega^c}
         \]
Parameters
rParameterValuesInput for the derivative calculation
rFunctionVariableVariable to identify the function for which derivatives are computed
rDerivativeVariableScalar derivative variable
rOutputOutput having the same type as the rFunctionVariable

Reimplemented in Kratos::Newtonian3DLaw, and Kratos::Newtonian2DLaw.

◆ CalculateDerivative() [3/4]

void Kratos::ConstitutiveLaw::CalculateDerivative ( Parameters rParameterValues,
const Variable< Matrix > &  rFunctionVariable,
const Variable< double > &  rDerivativeVariable,
Matrix rOutput 
)
virtual

Calculates derivatives of a given function.

This method calculates derivative of a Matrix function (denoted by rFunctionVariable) w.r.t. rDerivativeVariable and stores the output in rOutput. The rDerivativeVariable represents a gauss point scalar variable only.

See also
double overload of this method for more explanations
Parameters
rParameterValuesInput for the derivative calculation
rFunctionVariableVariable to identify the function for which derivatives are computed
rDerivativeVariableScalar derivative variable
rOutputOutput having the same type as the rFunctionVariable

Reimplemented in Kratos::Newtonian3DLaw, and Kratos::Newtonian2DLaw.

◆ CalculateDerivative() [4/4]

void Kratos::ConstitutiveLaw::CalculateDerivative ( Parameters rParameterValues,
const Variable< Vector > &  rFunctionVariable,
const Variable< double > &  rDerivativeVariable,
Vector rOutput 
)
virtual

Calculates derivatives of a given function.

This method calculates derivative of a Vector function (denoted by rFunctionVariable) w.r.t. rDerivativeVariable and stores the output in rOutput. The rDerivativeVariable represents a gauss point scalar variable only.

See also
double overload of this method for more explanations
Parameters
rParameterValuesInput for the derivative calculation
rFunctionVariableVariable to identify the function for which derivatives are computed
rDerivativeVariableScalar derivative variable
rOutputOutput having the same type as the rFunctionVariable

Reimplemented in Kratos::Newtonian3DLaw, and Kratos::Newtonian2DLaw.

◆ CalculateMaterialResponse()

void Kratos::ConstitutiveLaw::CalculateMaterialResponse ( Parameters rValues,
const StressMeasure rStressMeasure 
)

Computes the material response in terms of stresses and constitutive tensor

See also
Parameters
StressMeasure

Computes the material response in terms of stresses and constitutive tensor

See also
Parameters
StressMeasures

◆ CalculateMaterialResponseCauchy()

void Kratos::ConstitutiveLaw::CalculateMaterialResponseCauchy ( Parameters rValues)
virtual

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

See also
Parameters

Reimplemented in Kratos::HyperElastic3DLaw, Kratos::NonlocalDamage3DLaw, Kratos::LocalDamage3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElastic3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElasticCohesive3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::HyperElastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::ThermalNonlocalDamage3DLaw, Kratos::ThermalLocalDamage3DLaw, Kratos::NewtonianFluid3DLaw, Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::ElasticIsotropic3D, Kratos::PfemSolidConstitutiveLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::FluidConstitutiveLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ CalculateMaterialResponseKirchhoff()

void Kratos::ConstitutiveLaw::CalculateMaterialResponseKirchhoff ( Parameters rValues)
virtual

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

See also
Parameters

Reimplemented in Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticOrthotropic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HistoryLinearElastic3DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::ThermalLinearElastic3DLawNodal, Kratos::ThermalLinearElastic3DLaw, Kratos::LinearElastic3DLawNodal, Kratos::StrainRate3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrain3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ CalculateMaterialResponsePK1()

void Kratos::ConstitutiveLaw::CalculateMaterialResponsePK1 ( Parameters rValues)
virtual

◆ CalculateMaterialResponsePK2()

void Kratos::ConstitutiveLaw::CalculateMaterialResponsePK2 ( Parameters rValues)
virtual

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

See also
Parameters

Reimplemented in Kratos::TrussConstitutiveLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticOrthotropic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::TrussPlasticityConstitutiveLaw, Kratos::WrinklingLinear2DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicHenky1D, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalElasticIsotropic3D, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::LinearElasticOrthotropic2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticSimoTaylorNeoHookean3D, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ CalculateStressResponse()

void Kratos::ConstitutiveLaw::CalculateStressResponse ( Parameters rValues,
Vector rInternalVariables 
)
virtual

Computes the material response in terms of Cauchy stresses and constitutive tensor, returns internal variables.

See also
Parameters

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

See also
Parameters

Reimplemented in Kratos::SmallStrainIsotropicDamageImplex3D, and Kratos::SmallStrainIsotropicDamage3D.

◆ CalculateValue() [1/7]

array_1d< double, 3 > & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< array_1d< double, 3 > > &  rVariable,
array_1d< double, 3 > &  rValue 
)
virtual

Calculates the value of a specified variable (array of 3 components)

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

returns the value of a specified variable (array of 3 components)

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

Reimplemented in Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicHenky1D, and Kratos::FluidConstitutiveLaw.

◆ CalculateValue() [2/7]

array_1d< double, 6 > & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< array_1d< double, 6 > > &  rVariable,
array_1d< double, 6 > &  rValue 
)
virtual

returns the value of a specified variable (array of 6 components)

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

returns the value of a specified variable (array of 6 components)

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

Reimplemented in Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::FluidConstitutiveLaw.

◆ CalculateValue() [3/7]

bool & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< bool > &  rThisVariable,
bool rValue 
)
virtual

Calculates the value of a specified variable (bool)

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

Reimplemented in Kratos::WrinklingLinear2DLaw, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ CalculateValue() [4/7]

double & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< double > &  rThisVariable,
double rValue 
)
virtual

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

returns 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

Reimplemented in Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::Constitutive3DLaw, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalElasticIsotropic3D, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::MultiLinearElastic1DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::HyperElasticSimoTaylorNeoHookean3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, Kratos::PfemSolidConstitutiveLaw, Kratos::PfemFluidConstitutiveLaw, and Kratos::FluidConstitutiveLaw.

◆ CalculateValue() [5/7]

int & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< int > &  rThisVariable,
int rValue 
)
virtual

Calculates the value of a specified variable (int)

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

Reimplemented in Kratos::Constitutive3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, and Kratos::FluidConstitutiveLaw.

◆ CalculateValue() [6/7]

Matrix & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< Matrix > &  rThisVariable,
Matrix rValue 
)
virtual

Calculates the value of a specified variable (Matrix)

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

returns the value of a specified variable (Matrix)

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

Reimplemented in Kratos::Constitutive3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::ElasticIsotropic3D, Kratos::HelmholtzJacobianStiffened3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, and Kratos::FluidConstitutiveLaw.

◆ CalculateValue() [7/7]

Vector & Kratos::ConstitutiveLaw::CalculateValue ( Parameters rParameterValues,
const Variable< Vector > &  rThisVariable,
Vector rValue 
)
virtual

Calculates the value of a specified variable (Vector)

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

returns the value of a specified variable (Vector)

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

Reimplemented in Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::Constitutive3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::SmallStrainJ2Plasticity3D, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, and Kratos::FluidConstitutiveLaw.

◆ Check()

int Kratos::ConstitutiveLaw::Check ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const ProcessInfo rCurrentProcessInfo 
) const
virtual

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

Reimplemented in Kratos::HenckyMCStrainSofteningPlasticPlaneStrain2DLaw, Kratos::HenckyMCStrainSofteningPlasticAxisym2DLaw, Kratos::HenckyMCStrainSofteningPlastic3DLaw, Kratos::HenckyMCPlasticPlaneStrain2DLaw, Kratos::HenckyMCPlasticAxisym2DLaw, Kratos::HenckyMCPlastic3DLaw, Kratos::HenckyBorjaCamClayPlasticPlaneStrain2DLaw, Kratos::HenckyBorjaCamClayPlasticAxisym2DLaw, Kratos::HenckyBorjaCamClayPlastic3DLaw, Kratos::StrainRate3DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::ElasticIsotropic3D, Kratos::BeamConstitutiveLaw, Kratos::LinearElasticOrthotropic3DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageSimoJuPlaneStress2DLaw, Kratos::IsotropicDamageSimoJuPlaneStrain2DLaw, Kratos::IsotropicDamageSimoJu3DLaw, Kratos::IsotropicDamageModifiedMisesPlaneStress2DLaw, Kratos::IsotropicDamageModifiedMisesPlaneStrain2DLaw, Kratos::IsotropicDamageModifiedMises3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::RansNewtonian3DLaw, Kratos::RansNewtonian2DLaw, Kratos::SimoJuNonlocalDamagePlaneStress2DLaw, Kratos::SimoJuNonlocalDamagePlaneStrain2DLaw, Kratos::SimoJuNonlocalDamage3DLaw, Kratos::SimoJuLocalDamagePlaneStress2DLaw, Kratos::SimoJuLocalDamagePlaneStrain2DLaw, Kratos::SimoJuLocalDamage3DLaw, Kratos::NonlocalDamage3DLaw, Kratos::ModifiedMisesNonlocalDamagePlaneStress2DLaw, Kratos::ModifiedMisesNonlocalDamagePlaneStrain2DLaw, Kratos::ModifiedMisesNonlocalDamage3DLaw, Kratos::LocalDamage3DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::ExponentialCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElasticCohesive3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::HypoelasticTemperatureDependent3DLaw, Kratos::HypoelasticTemperatureDependent2DLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::MuIRheologyTemperatureDependent3DLaw, Kratos::MuIRheologyTemperatureDependent2DLaw, Kratos::FrictionalViscoplasticTemperatureDependent3DLaw, Kratos::FrictionalViscoplasticTemperatureDependent2DLaw, Kratos::BinghamTemperatureDependent3DLaw, Kratos::BinghamTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::LinearElastic3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticLaw, Kratos::BilinearCohesive3DLaw, Kratos::NewtonianTwoFluid3DLaw, Kratos::NewtonianTwoFluid2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::FluidConstitutiveLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalSimoJuNonlocalDamagePlaneStress2DLaw, Kratos::ThermalSimoJuNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalSimoJuNonlocalDamage3DLaw, Kratos::ThermalSimoJuLocalDamagePlaneStress2DLaw, Kratos::ThermalSimoJuLocalDamagePlaneStrain2DLaw, Kratos::ThermalSimoJuLocalDamage3DLaw, Kratos::ThermalNonlocalDamage3DLaw, Kratos::ThermalModifiedMisesNonlocalDamagePlaneStress2DLaw, Kratos::ThermalModifiedMisesNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalModifiedMisesNonlocalDamage3DLaw, Kratos::ThermalLocalDamage3DLaw, Kratos::ThermalElasticIsotropic3D, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::MultiLinearIsotropicPlaneStress2D, Kratos::MultiLinearElastic1DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::ElasticIsotropicPlaneStressUncoupledShear, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::TractionSeparationLaw3D< TDim >, and Kratos::TractionSeparationLaw3D< 3 >.

◆ Clone()

ConstitutiveLaw::Pointer Kratos::ConstitutiveLaw::Clone ( ) const
virtual

Clone function (has to be implemented by any derived class)

Returns
a pointer to a new instance of this constitutive law
Note
implementation scheme: ConstitutiveLaw::Pointer p_clone(new ConstitutiveLaw()); return p_clone;

Clone function (has to be implemented by any derived class)

Returns
a pointer to a new instance of this constitutive law NOTE: implementation scheme: ConstitutiveLaw::Pointer p_clone(new ConstitutiveLaw()); return p_clone;

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::LinearPlaneStress, Kratos::LinearPlaneStrain, Kratos::ElasticIsotropic3D, Kratos::BeamConstitutiveLaw, Kratos::AxisymElasticIsotropic, Kratos::LinearElasticPlasticPlaneStress2DLaw, Kratos::LinearElasticPlasticPlaneStrain2DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticOrthotropic3DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageSimoJuPlaneStress2DLaw, Kratos::IsotropicDamageSimoJuPlaneStrain2DLaw, Kratos::IsotropicDamageSimoJu3DLaw, Kratos::IsotropicDamageModifiedMisesPlaneStress2DLaw, Kratos::IsotropicDamageModifiedMisesPlaneStrain2DLaw, Kratos::IsotropicDamageModifiedMises3DLaw, Kratos::HyperElasticUPPlaneStrain2DLaw, Kratos::HyperElasticUPAxisym2DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlasticUPPlaneStrain2DLaw, Kratos::HyperElasticPlasticUPJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticUPJ2Axisym2DLaw, Kratos::HyperElasticPlasticUPJ23DLaw, Kratos::HyperElasticPlasticUPAxisym2DLaw, Kratos::HyperElasticPlasticUP3DLaw, Kratos::HyperElasticPlasticThermalUPJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJohnsonCookAxisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJ2Axisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ23DLaw, Kratos::HyperElasticPlasticThermalUPBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticPlaneStrain2DLaw, Kratos::HyperElasticPlasticJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticJ2Axisym2DLaw, Kratos::HyperElasticPlasticJ23DLaw, Kratos::HyperElasticPlasticAxisym2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::RansNewtonian3DLaw, Kratos::RansNewtonian2DLaw, Kratos::SimoJuNonlocalDamagePlaneStress2DLaw, Kratos::SimoJuNonlocalDamagePlaneStrain2DLaw, Kratos::SimoJuNonlocalDamage3DLaw, Kratos::SimoJuLocalDamagePlaneStress2DLaw, Kratos::SimoJuLocalDamagePlaneStrain2DLaw, Kratos::SimoJuLocalDamage3DLaw, Kratos::NonlocalDamagePlaneStress2DLaw, Kratos::NonlocalDamagePlaneStrain2DLaw, Kratos::NonlocalDamage3DLaw, Kratos::ModifiedMisesNonlocalDamagePlaneStress2DLaw, Kratos::ModifiedMisesNonlocalDamagePlaneStrain2DLaw, Kratos::ModifiedMisesNonlocalDamage3DLaw, Kratos::LocalDamagePlaneStress2DLaw, Kratos::LocalDamagePlaneStrain2DLaw, Kratos::LocalDamage3DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::IsotropicDamageCohesive2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HistoryLinearElasticPlaneStress2DLaw, Kratos::HistoryLinearElasticPlaneStrain2DLaw, Kratos::HistoryLinearElastic3DLaw, Kratos::ExponentialCohesive3DLaw, Kratos::ExponentialCohesive2DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive2DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive2DLaw, Kratos::ElasticCohesive3DLaw, Kratos::ElasticCohesive2DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::NonLinearHenckyElasticPlasticUPPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPAxisym2DLaw, Kratos::NonLinearHenckyElasticPlasticUP3DLaw, Kratos::NonLinearHenckyElasticPlasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticAxisym2DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::NewHenckyTrescaPlasticPlaneStrain2DLaw, Kratos::NewHenckyTrescaPlasticAxisym2DLaw, Kratos::HenckyPlasticUPTrescaPlaneStrain2DLaw, Kratos::HenckyPlasticUPTrescaAxisym2DLaw, Kratos::HenckyPlasticUPJ2PlaneStrain2DLaw, Kratos::HenckyPlasticUPJ2Axisym2DLaw, Kratos::HenckyTrescaPlasticPlaneStrain2DLaw, Kratos::HenckyTrescaPlasticAxisym2DLaw, Kratos::HenckyTresca3DLaw, Kratos::HenckyJ2PlasticPlaneStrain2DLaw, Kratos::HenckyJ2PlasticAxisym2DLaw, Kratos::BorjaHenckyCamClayPlasticPlaneStrain2DLaw, Kratos::BorjaHenckyCamClayPlasticAxisym2DLaw, Kratos::BorjaHenckyCamClayPlastic3DLaw, Kratos::HypoelasticTemperatureDependent3DLaw, Kratos::HypoelasticTemperatureDependent2DLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::MuIRheologyTemperatureDependent3DLaw, Kratos::MuIRheologyTemperatureDependent2DLaw, Kratos::FrictionalViscoplasticTemperatureDependent3DLaw, Kratos::FrictionalViscoplasticTemperatureDependent2DLaw, Kratos::BinghamTemperatureDependent3DLaw, Kratos::BinghamTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::LinearElastic3DLaw, Kratos::JohnsonCookThermalPlastic2DPlaneStrainLaw, Kratos::JohnsonCookThermalPlastic2DAxisymLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlaneStrainUP2DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlasticUP3DLaw, Kratos::HenckyElasticPlasticPlaneStrainUP2DLaw, Kratos::HenckyElasticPlasticPlaneStrain2DLaw, Kratos::HenckyElasticPlasticAxisym2DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::HenckyMCPlasticUP3DLaw, Kratos::HenckyMCStrainSofteningPlasticPlaneStrain2DLaw, Kratos::HenckyMCStrainSofteningPlasticAxisym2DLaw, Kratos::HenckyMCStrainSofteningPlastic3DLaw, Kratos::HenckyMCPlasticPlaneStrainUP2DLaw, Kratos::HenckyMCPlasticPlaneStrain2DLaw, Kratos::HenckyMCPlasticAxisym2DLaw, Kratos::HenckyMCPlastic3DLaw, Kratos::HenckyBorjaCamClayPlasticPlaneStrain2DLaw, Kratos::HenckyBorjaCamClayPlasticAxisym2DLaw, Kratos::HenckyBorjaCamClayPlastic3DLaw, Kratos::DispNewtonianFluidPlaneStrain2DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::HelmholtzJacobianStiffened3D, Kratos::GeoThermalDispersionLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::GeoLinearElasticPlaneStress2DLaw, Kratos::LinearPlaneStrainK0Law, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DInterfaceLaw, Kratos::LinearElastic2DInterfaceLaw, Kratos::LinearElastic2DBeamLaw, Kratos::ElasticIsotropicK03DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::NewtonianTwoFluid3DLaw, Kratos::NewtonianTwoFluid2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::FluidConstitutiveLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::LinearPlaneStressFEMDEM, Kratos::LinearPlaneStrainFEMDEM, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2DFEMDEM, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalSimoJuNonlocalDamagePlaneStress2DLaw, Kratos::ThermalSimoJuNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalSimoJuNonlocalDamage3DLaw, Kratos::ThermalSimoJuLocalDamagePlaneStress2DLaw, Kratos::ThermalSimoJuLocalDamagePlaneStrain2DLaw, Kratos::ThermalSimoJuLocalDamage3DLaw, Kratos::ThermalNonlocalDamagePlaneStress2DLaw, Kratos::ThermalNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalNonlocalDamage3DLaw, Kratos::ThermalModifiedMisesNonlocalDamagePlaneStress2DLaw, Kratos::ThermalModifiedMisesNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalModifiedMisesNonlocalDamage3DLaw, Kratos::ThermalLocalDamagePlaneStress2DLaw, Kratos::ThermalLocalDamagePlaneStrain2DLaw, Kratos::ThermalLocalDamage3DLaw, Kratos::ThermalLinearElastic3DLawNodal, Kratos::ThermalLinearElastic3DLaw, Kratos::ThermalLinearElastic2DPlaneStressNodal, Kratos::ThermalLinearElastic2DPlaneStress, Kratos::ThermalLinearElastic2DPlaneStrainNodal, Kratos::ThermalLinearElastic2DPlaneStrain, Kratos::LinearElastic3DLawNodal, Kratos::LinearElastic2DPlaneStressNodal, Kratos::LinearElastic2DPlaneStrainNodal, Kratos::StrainRatePlaneStrain2DLaw, Kratos::StrainRate3DLaw, Kratos::NewtonianFluidPlaneStrain2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainPlaneStrain2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrainAxisymmetric2DLaw, Kratos::SmallStrain3DLaw, Kratos::LargeStrainPlaneStrain2DLaw, Kratos::LargeStrainAxisymmetric2DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::ThermalLinearPlaneStress, Kratos::ThermalLinearPlaneStrain, Kratos::ThermalElasticIsotropic3D, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2PlasticityPlaneStrain2D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::MultiLinearIsotropicPlaneStress2D, Kratos::MultiLinearElastic1DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::ElasticIsotropicPlaneStressUncoupledShear, Kratos::SmallStrainIsotropicDamageTractionOnlyImplex3D, Kratos::SmallStrainIsotropicDamageTractionOnly3D, Kratos::SmallStrainIsotropicDamagePlaneStrain2D, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticSimoTaylorNeoHookeanPlaneStrain2D, Kratos::HyperElasticSimoTaylorNeoHookean3D, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoffPlaneStress2D, Kratos::HyperElasticIsotropicKirchhoffPlaneStrain2D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ ConstitutiveMatrixTransformation()

void Kratos::ConstitutiveLaw::ConstitutiveMatrixTransformation ( Matrix rConstitutiveMatrix,
const Matrix rOriginalConstitutiveMatrix,
const Matrix rF 
)
protected

This method performs a pull-back or a push-forward between two constitutive matrices

◆ ContraVariantPullBack()

void Kratos::ConstitutiveLaw::ContraVariantPullBack ( Matrix rMatrix,
const Matrix rF 
)
protected

This method performs a contra-variant pull-back between to tensors i.e. Kirchhoff stress to 2nd PK stress

◆ ContraVariantPushForward()

void Kratos::ConstitutiveLaw::ContraVariantPushForward ( Matrix rMatrix,
const Matrix rF 
)
protected

This method performs a contra-variant push-forward between to tensors i.e. 2nd PK stress to Kirchhoff stress

◆ CoVariantPullBack()

void Kratos::ConstitutiveLaw::CoVariantPullBack ( Matrix rMatrix,
const Matrix rF 
)
protected

This method performs a co-variant pull-back between to tensors i.e. Almansi strain to Green-Lagrange strain

◆ CoVariantPushForward()

void Kratos::ConstitutiveLaw::CoVariantPushForward ( Matrix rMatrix,
const Matrix rF 
)
protected

This method performs a co-variant push-forward between to tensors i.e. Green-Lagrange strain to Almansi strain

◆ Create() [1/2]

ConstitutiveLaw::Pointer Kratos::ConstitutiveLaw::Create ( Kratos::Parameters  NewParameters) const
virtual

◆ Create() [2/2]

ConstitutiveLaw::Pointer Kratos::ConstitutiveLaw::Create ( Kratos::Parameters  NewParameters,
const Properties rProperties 
) const
virtual

It creates a new constitutive law pointer (version with properties)

Parameters
NewParametersThe configuration parameters of the new constitutive law
rPropertiesThe properties of the material
Returns
a Pointer to the new constitutive law

◆ FinalizeMaterialResponse()

void Kratos::ConstitutiveLaw::FinalizeMaterialResponse ( Parameters rValues,
const StressMeasure rStressMeasure 
)

Finalize the material response, called by the element in FinalizeSolutionStep.

Updates the material response, called by the element in FinalizeSolutionStep.

See also
Parameters
StressMeasures

◆ FinalizeMaterialResponseCauchy()

void Kratos::ConstitutiveLaw::FinalizeMaterialResponseCauchy ( Parameters rValues)
virtual

Finalize the material response in terms of Cauchy stresses

See also
Parameters

Updates the material response in terms of Cauchy stresses

See also
Parameters

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamage3DLaw, Kratos::LocalDamage3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElastic3DLaw, Kratos::ExponentialCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElasticCohesive3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::HyperElastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::ThermalNonlocalDamage3DLaw, Kratos::ThermalLocalDamage3DLaw, Kratos::NewtonianFluid3DLaw, Kratos::Constitutive3DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ FinalizeMaterialResponseKirchhoff()

void Kratos::ConstitutiveLaw::FinalizeMaterialResponseKirchhoff ( Parameters rValues)
virtual

◆ FinalizeMaterialResponsePK1()

void Kratos::ConstitutiveLaw::FinalizeMaterialResponsePK1 ( Parameters rValues)
virtual

◆ FinalizeMaterialResponsePK2()

void Kratos::ConstitutiveLaw::FinalizeMaterialResponsePK2 ( Parameters rValues)
virtual

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

See also
Parameters

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

See also
Parameters

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::Constitutive3DLaw, Kratos::TrussPlasticityConstitutiveLaw, Kratos::WrinklingLinear2DLaw, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicHenky1D, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, Kratos::ElasticIsotropic3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ViscousGeneralizedMaxwell< Kratos::ElasticIsotropic3D >, Kratos::ViscousGeneralizedKelvin< Kratos::ElasticIsotropic3D >, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, and Kratos::SerialParallelRuleOfMixturesLaw.

◆ FinalizeNonLinearIteration()

void Kratos::ConstitutiveLaw::FinalizeNonLinearIteration ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues,
const ProcessInfo rCurrentProcessInfo 
)
virtual

to be called at the end of each step iteration (e.g. from Element::FinalizeNonLinearIteration)

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

◆ FinalizeSolutionStep()

void Kratos::ConstitutiveLaw::FinalizeSolutionStep ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues,
const ProcessInfo rCurrentProcessInfo 
)
virtual

to be called at the end of each solution step (e.g. from Element::FinalizeSolutionStep)

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

Reimplemented in Kratos::GenericSmallStrainViscoplasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::DamageDPlusDMinusMasonry2DLaw, and Kratos::DamageDPlusDMinusMasonry3DLaw.

◆ GetConstitutiveComponent()

double & Kratos::ConstitutiveLaw::GetConstitutiveComponent ( double rCabcd,
const Matrix rConstitutiveMatrix,
const unsigned int a,
const unsigned int b,
const unsigned int c,
const unsigned int d 
)
protected

This method gets the constitutive tensor components from a consitutive matrix supplied in voigt notation

◆ GetInitialState()

InitialState& Kratos::ConstitutiveLaw::GetInitialState ( )
inline
Returns
The reference to initial state of strains/stresses/F

◆ GetLawFeatures()

void Kratos::ConstitutiveLaw::GetLawFeatures ( Features rFeatures)
virtual

This function is designed to be called once to check compatibility with element

Parameters
rFeatures

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::LinearPlaneStress, Kratos::LinearPlaneStrain, Kratos::ElasticIsotropic3D, Kratos::BeamConstitutiveLaw, Kratos::AxisymElasticIsotropic, Kratos::LinearElasticPlasticPlaneStress2DLaw, Kratos::LinearElasticPlasticPlaneStrain2DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticOrthotropic3DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticUPPlaneStrain2DLaw, Kratos::HyperElasticUPAxisym2DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlasticUPPlaneStrain2DLaw, Kratos::HyperElasticPlasticUPAxisym2DLaw, Kratos::HyperElasticPlasticUP3DLaw, Kratos::HyperElasticPlasticPlaneStrain2DLaw, Kratos::HyperElasticPlasticAxisym2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamagePlaneStress2DLaw, Kratos::NonlocalDamagePlaneStrain2DLaw, Kratos::LocalDamagePlaneStress2DLaw, Kratos::LocalDamagePlaneStrain2DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::IsotropicDamageCohesive2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HistoryLinearElasticPlaneStress2DLaw, Kratos::HistoryLinearElasticPlaneStrain2DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive2DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive2DLaw, Kratos::ElasticCohesive3DLaw, Kratos::ElasticCohesive2DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::NonLinearHenckyElasticPlasticUPPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPAxisym2DLaw, Kratos::NonLinearHenckyElasticPlasticUP3DLaw, Kratos::NonLinearHenckyElasticPlasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticAxisym2DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::LinearElasticPlaneStress2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::LinearElastic3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElasticUP3DLaw, Kratos::HyperElasticPlaneStrainUP2DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlasticUP3DLaw, Kratos::HenckyElasticPlasticPlaneStrainUP2DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluidPlaneStrain2DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::GeoLinearElasticPlaneStress2DLaw, Kratos::LinearPlaneStrainK0Law, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DInterfaceLaw, Kratos::LinearElastic2DInterfaceLaw, Kratos::LinearElastic2DBeamLaw, Kratos::ElasticIsotropicK03DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::LinearPlaneStressFEMDEM, Kratos::LinearPlaneStrainFEMDEM, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2DFEMDEM, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalNonlocalDamagePlaneStress2DLaw, Kratos::ThermalNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalLocalDamagePlaneStress2DLaw, Kratos::ThermalLocalDamagePlaneStrain2DLaw, Kratos::ThermalLinearElastic2DPlaneStressNodal, Kratos::ThermalLinearElastic2DPlaneStress, Kratos::ThermalLinearElastic2DPlaneStrainNodal, Kratos::ThermalLinearElastic2DPlaneStrain, Kratos::LinearElastic2DPlaneStressNodal, Kratos::LinearElastic2DPlaneStrainNodal, Kratos::StrainRatePlaneStrain2DLaw, Kratos::StrainRate3DLaw, Kratos::NewtonianFluidPlaneStrain2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainPlaneStrain2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrainAxisymmetric2DLaw, Kratos::SmallStrain3DLaw, Kratos::LargeStrainPlaneStrain2DLaw, Kratos::LargeStrainAxisymmetric2DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2PlasticityPlaneStrain2D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::SmallStrainIsotropicDamagePlaneStrain2D, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoffPlaneStress2D, Kratos::HyperElasticIsotropicKirchhoffPlaneStrain2D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ GetStrainMeasure()

ConstitutiveLaw::StrainMeasure Kratos::ConstitutiveLaw::GetStrainMeasure ( )
virtual

◆ GetStrainSize()

ConstitutiveLaw::SizeType Kratos::ConstitutiveLaw::GetStrainSize ( ) const
virtual
Returns
The size of the strain vector of the current constitutive law
Note
This function HAS TO BE IMPLEMENTED by any derived class

returns the size of the strain vector of the current constitutive law NOTE: this function HAS TO BE IMPLEMENTED by any derived class

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::TrussConstitutiveLaw, Kratos::LinearPlaneStress, Kratos::LinearPlaneStrain, Kratos::ElasticIsotropic3D, Kratos::BeamConstitutiveLaw, Kratos::AxisymElasticIsotropic, Kratos::LinearElasticPlasticPlaneStrain2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::HyperElasticUPPlaneStrain2DLaw, Kratos::HyperElasticUPAxisym2DLaw, Kratos::HyperElasticPlasticUPPlaneStrain2DLaw, Kratos::HyperElasticPlasticUPAxisym2DLaw, Kratos::HyperElasticPlasticPlaneStrain2DLaw, Kratos::HyperElasticPlasticAxisym2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamagePlaneStrain2DLaw, Kratos::LocalDamagePlaneStrain2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HistoryLinearElasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPAxisym2DLaw, Kratos::NonLinearHenckyElasticPlasticUP3DLaw, Kratos::NonLinearHenckyElasticPlasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticAxisym2DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::JohnsonCookThermalPlastic2DPlaneStrainLaw, Kratos::JohnsonCookThermalPlastic2DAxisymLaw, Kratos::HyperElasticPlaneStrainUP2DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlasticUP3DLaw, Kratos::HenckyElasticPlasticPlaneStrainUP2DLaw, Kratos::HenckyElasticPlasticPlaneStrain2DLaw, Kratos::HenckyElasticPlasticAxisym2DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluidPlaneStrain2DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::HelmholtzJacobianStiffened3D, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::GeoLinearElasticPlaneStress2DLaw, Kratos::LinearPlaneStrainK0Law, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DInterfaceLaw, Kratos::LinearElastic2DInterfaceLaw, Kratos::LinearElastic2DBeamLaw, Kratos::ElasticIsotropicK03DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::FluidConstitutiveLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::LinearPlaneStressFEMDEM, Kratos::LinearPlaneStrainFEMDEM, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2DFEMDEM, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalLocalDamagePlaneStrain2DLaw, Kratos::ThermalLinearElastic2DPlaneStrainNodal, Kratos::ThermalLinearElastic2DPlaneStrain, Kratos::LinearElastic2DPlaneStrainNodal, Kratos::StrainRatePlaneStrain2DLaw, Kratos::NewtonianFluidPlaneStrain2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainPlaneStrain2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrainAxisymmetric2DLaw, Kratos::LargeStrainPlaneStrain2DLaw, Kratos::LargeStrainAxisymmetric2DLaw, Kratos::Constitutive3DLaw, Kratos::ThermalLinearPlaneStrain, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2PlasticityPlaneStrain2D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::SmallStrainIsotropicDamagePlaneStrain2D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticSimoTaylorNeoHookeanPlaneStrain2D, Kratos::HyperElasticSimoTaylorNeoHookean3D, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoffPlaneStress2D, Kratos::HyperElasticIsotropicKirchhoffPlaneStrain2D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::HyperElasticIsotropicHenky1D, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ GetStressMeasure()

ConstitutiveLaw::StressMeasure Kratos::ConstitutiveLaw::GetStressMeasure ( )
virtual

◆ GetValue() [1/7]

array_1d< double, 3 > & Kratos::ConstitutiveLaw::GetValue ( const Variable< array_1d< double, 3 > > &  rThisVariable,
array_1d< double, 3 > &  rValue 
)
virtual

Returns the value of a specified variable (array of 3 components)

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

returns the value of a specified variable

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

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::TrussConstitutiveLaw, Kratos::Constitutive3DLaw, Kratos::TrussPlasticityConstitutiveLaw, Kratos::HyperElasticIsotropicOgden1D, Kratos::HyperElasticIsotropicHenky1D, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ GetValue() [2/7]

array_1d< double, 6 > & Kratos::ConstitutiveLaw::GetValue ( const Variable< array_1d< double, 6 > > &  rThisVariable,
array_1d< double, 6 > &  rValue 
)
virtual

Returns the value of a specified variable (array of 6 components)

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

returns the value of a specified variable

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

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ GetValue() [3/7]

bool & Kratos::ConstitutiveLaw::GetValue ( const Variable< bool > &  rThisVariable,
bool rValue 
)
virtual

Returns the value of a specified variable (boolean)

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

returns the value of a specified variable

Parameters
rThisVariablethe variable to be returned
rValuea reference to the returned value
rValueoutput: the value of the specified variable

Reimplemented in Kratos::LinearPlaneStress, Kratos::LinearPlaneStrain, Kratos::GeoLinearElasticPlaneStress2DLaw, Kratos::LinearPlaneStrainK0Law, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DInterfaceLaw, Kratos::LinearElastic2DInterfaceLaw, Kratos::LinearPlaneStressFEMDEM, Kratos::LinearPlaneStrainFEMDEM, Kratos::WrinklingLinear2DLaw, Kratos::LinearElasticOrthotropic2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ GetValue() [4/7]

double & Kratos::ConstitutiveLaw::GetValue ( const Variable< double > &  rThisVariable,
double rValue 
)
virtual

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

returns the value of a specified variable

Parameters
rThisVariablethe variable to be returned
rValuea reference to the returned value
rValueoutput: the value of the specified variable

Reimplemented in Kratos::LinearPlaneStrain, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::HyperElasticPlasticThermalUPJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJohnsonCookAxisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJ2Axisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ23DLaw, Kratos::HyperElasticPlasticThermalUPBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamage3DLaw, Kratos::LocalDamage3DLaw, Kratos::LinearElasticPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::ExponentialCohesive3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::BorjaHenckyCamClayPlasticPlaneStrain2DLaw, Kratos::BorjaHenckyCamClayPlasticAxisym2DLaw, Kratos::BorjaHenckyCamClayPlastic3DLaw, Kratos::LinearElastic3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::LinearPlaneStrainFEMDEM, Kratos::StrainRate3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::TrussPlasticityConstitutiveLaw, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ GetValue() [5/7]

int & Kratos::ConstitutiveLaw::GetValue ( const Variable< int > &  rThisVariable,
int rValue 
)
virtual

Returns the value of a specified variable (integer)

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

returns the value of a specified variable

Parameters
rThisVariablethe variable to be returned
rValuea reference to the returned value
rValueoutput: the value of the specified variable

Reimplemented in Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ GetValue() [6/7]

Matrix & Kratos::ConstitutiveLaw::GetValue ( const Variable< Matrix > &  rThisVariable,
Matrix rValue 
)
virtual

◆ GetValue() [7/7]

Vector & Kratos::ConstitutiveLaw::GetValue ( const Variable< Vector > &  rThisVariable,
Vector rValue 
)
virtual

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

returns the value of a specified variable

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

Reimplemented in Kratos::LinearPlaneStrain, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::LinearPlaneStrainFEMDEM, Kratos::Constitutive3DLaw, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::WrinklingLinear2DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ Has() [1/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< array_1d< double, 3 > > &  rThisVariable)
virtual

Returns whether this constitutive Law has specified variable (array of 3 components)

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law
Note
Fixed size array of 3 doubles (e.g. for 2D stresses, plastic strains, ...)

returns whether this constitutive Law has specified variable

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law NOTE: fixed size array of 3 doubles (e.g. for 2D stresses, plastic strains, ...)

Reimplemented in Kratos::Constitutive3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ Has() [2/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< array_1d< double, 6 > > &  rThisVariable)
virtual

Returns whether this constitutive Law has specified variable (array of 6 components)

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law
Note
Fixed size array of 6 doubles (e.g. for stresses, plastic strains, ...)

returns whether this constitutive Law has specified variable

Parameters
rThisVariablethe variable to be checked for
Returns
true if the variable is defined in the constitutive law NOTE: fixed size array of 6 doubles (e.g. for stresses, plastic strains, ...)

Reimplemented in Kratos::Constitutive3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ Has() [3/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< bool > &  rThisVariable)
virtual

Returns whether this constitutive Law has specified variable (boolean)

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

returns whether this constitutive Law has specified variable

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

Reimplemented in Kratos::WrinklingLinear2DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ Has() [4/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< double > &  rThisVariable)
virtual

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

returns whether this constitutive Law has specified variable

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

Reimplemented in Kratos::HyperElasticPlasticThermalUPJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJohnsonCookAxisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalUPJ2Axisym2DLaw, Kratos::HyperElasticPlasticThermalUPJ23DLaw, Kratos::HyperElasticPlasticThermalUPBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalJ2PlaneStrain2DLaw, Kratos::HyperElasticPlasticThermalBakerJohnsonCookPlaneStrain2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::StrainRate3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ Has() [5/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< int > &  rThisVariable)
virtual

Returns whether this constitutive Law has specified variable (integer)

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

returns whether this constitutive Law has specified variable

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

Reimplemented in Kratos::WrinklingLinear2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ Has() [6/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< Matrix > &  rThisVariable)
virtual

Returns whether this constitutive Law has specified variable (Matrix)

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

returns whether this constitutive Law has specified variable

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

Reimplemented in Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::Constitutive3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

◆ Has() [7/7]

bool Kratos::ConstitutiveLaw::Has ( const Variable< Vector > &  rThisVariable)
virtual

◆ HasInitialState()

bool Kratos::ConstitutiveLaw::HasInitialState ( ) const
inline
Returns
The true if InitialState is defined

◆ HasSameType() [1/2]

static bool Kratos::ConstitutiveLaw::HasSameType ( const ConstitutiveLaw rLHS,
const ConstitutiveLaw rRHS 
)
inlinestatic

This method is used to check that two Constitutive Laws are the same type (references)

Parameters
rLHSThe first argument
rRHSThe second argument

◆ HasSameType() [2/2]

static bool Kratos::ConstitutiveLaw::HasSameType ( const ConstitutiveLaw rLHS,
const ConstitutiveLaw rRHS 
)
inlinestatic

This method is used to check that two Constitutive Laws are the same type (pointers)

Parameters
rLHSThe first argument
rRHSThe second argument

◆ Info()

std::string Kratos::ConstitutiveLaw::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::Flags.

Reimplemented in Kratos::ElasticIsotropic3D, Kratos::RansNewtonian3DLaw, Kratos::RansNewtonian2DLaw, Kratos::HypoelasticTemperatureDependent3DLaw, Kratos::HypoelasticTemperatureDependent2DLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::MuIRheologyTemperatureDependent3DLaw, Kratos::MuIRheologyTemperatureDependent2DLaw, Kratos::FrictionalViscoplasticTemperatureDependent3DLaw, Kratos::FrictionalViscoplasticTemperatureDependent2DLaw, Kratos::BinghamTemperatureDependent3DLaw, Kratos::BinghamTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::NewtonianTwoFluid3DLaw, Kratos::NewtonianTwoFluid2DLaw, Kratos::NewtonianTemperatureDependent3DLaw, Kratos::NewtonianTemperatureDependent2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::FluidConstitutiveLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::StrainRatePlaneStrain2DLaw, Kratos::StrainRate3DLaw, Kratos::NewtonianFluidPlaneStrain2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainPlaneStrain2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrainAxisymmetric2DLaw, Kratos::SmallStrain3DLaw, Kratos::LargeStrainPlaneStrain2DLaw, Kratos::LargeStrainAxisymmetric2DLaw, Kratos::LargeStrain3DLaw, and Kratos::Constitutive3DLaw.

◆ InitializeMaterial()

void Kratos::ConstitutiveLaw::InitializeMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
virtual

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

Reimplemented in Kratos::HenckyElasticPlastic3DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::StrainRate3DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrain3DLaw, Kratos::LargeStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::PythonOutfittedConstitutiveLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamage3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::ExponentialCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive2DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive2DLaw, Kratos::BilinearCohesive3DLaw, Kratos::JohnsonCookThermalPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::BilinearCohesive3DLaw, Kratos::ThermalElasticIsotropic3D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::TractionSeparationLaw3D< TDim >, and Kratos::TractionSeparationLaw3D< 3 >.

◆ InitializeMaterialResponse()

void Kratos::ConstitutiveLaw::InitializeMaterialResponse ( Parameters rValues,
const StressMeasure rStressMeasure 
)

Initialize the material response, called by the element in InitializeSolutionStep.

See also
Parameters
StressMeasures

◆ InitializeMaterialResponseCauchy()

void Kratos::ConstitutiveLaw::InitializeMaterialResponseCauchy ( Parameters rValues)
virtual

◆ InitializeMaterialResponseKirchhoff()

void Kratos::ConstitutiveLaw::InitializeMaterialResponseKirchhoff ( Parameters rValues)
virtual

◆ InitializeMaterialResponsePK1()

void Kratos::ConstitutiveLaw::InitializeMaterialResponsePK1 ( Parameters rValues)
virtual

◆ InitializeMaterialResponsePK2()

void Kratos::ConstitutiveLaw::InitializeMaterialResponsePK2 ( Parameters rValues)
virtual

◆ InitializeNonLinearIteration()

void Kratos::ConstitutiveLaw::InitializeNonLinearIteration ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues,
const ProcessInfo rCurrentProcessInfo 
)
virtual

to be called at the beginning of each step iteration (e.g. from Element::InitializeNonLinearIteration)

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

◆ InitializeSolutionStep()

void Kratos::ConstitutiveLaw::InitializeSolutionStep ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues,
const ProcessInfo rCurrentProcessInfo 
)
virtual

to be called at the beginning of each solution step (e.g. from Element::InitializeSolutionStep)

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

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw.

◆ IsIncremental()

bool Kratos::ConstitutiveLaw::IsIncremental ( )
virtual

returns whether this constitutive model is formulated in incremental strains/stresses NOTE: by default, all constitutive models should be formulated in total strains

Returns
true, if formulated in incremental strains/stresses, false otherwise

Reimplemented in Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::ConstitutiveLaw::KRATOS_CLASS_POINTER_DEFINITION ( ConstitutiveLaw  )

Counted pointer of ConstitutiveLaw

◆ KRATOS_DEFINE_LOCAL_FLAG() [1/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( ANISOTROPIC  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [2/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( AXISYMMETRIC_LAW  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [3/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( COMPUTE_CONSTITUTIVE_TENSOR  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [4/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( COMPUTE_STRAIN_ENERGY  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [5/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( COMPUTE_STRESS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [6/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( FINALIZE_MATERIAL_RESPONSE  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [7/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( FINITE_STRAINS  )

Flags related to the Features of the Contitutive Law

◆ KRATOS_DEFINE_LOCAL_FLAG() [8/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( INCREMENTAL_STRAIN_MEASURE  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [9/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( INFINITESIMAL_STRAINS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [10/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( INITIALIZE_MATERIAL_RESPONSE  )

the next two flags are designed for internal use within the constitutive law. please DO NOT use them from the API

◆ KRATOS_DEFINE_LOCAL_FLAG() [11/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( ISOCHORIC_TENSOR_ONLY  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [12/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( ISOTROPIC  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [13/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( MECHANICAL_RESPONSE_ONLY  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [14/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( PLANE_STRAIN_LAW  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [15/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( PLANE_STRESS_LAW  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [16/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( THERMAL_RESPONSE_ONLY  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [17/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( THREE_DIMENSIONAL_LAW  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [18/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( U_P_LAW  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [19/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( USE_ELEMENT_PROVIDED_STRAIN  )

Flags related to the Parameters of the Contitutive Law

◆ KRATOS_DEFINE_LOCAL_FLAG() [20/20]

Kratos::ConstitutiveLaw::KRATOS_DEFINE_LOCAL_FLAG ( VOLUMETRIC_TENSOR_ONLY  )

◆ pGetInitialState()

InitialState::Pointer Kratos::ConstitutiveLaw::pGetInitialState ( )
inline
Returns
The initial state of strains/stresses/F

◆ PrintData()

void Kratos::ConstitutiveLaw::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PrintInfo()

void Kratos::ConstitutiveLaw::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PullBackConstitutiveMatrix()

void Kratos::ConstitutiveLaw::PullBackConstitutiveMatrix ( Matrix rConstitutiveMatrix,
const Matrix rF 
)

Methods to transform Constitutive Matrices:

Parameters
rConstitutiveMatrixthe constitutive matrix
rFthe DeformationGradientF matrix between the configurations This method performs a pull-back of the constitutive matrix

◆ PushForwardConstitutiveMatrix()

void Kratos::ConstitutiveLaw::PushForwardConstitutiveMatrix ( Matrix rConstitutiveMatrix,
const Matrix rF 
)

This method performs a push-forward of the constitutive matrix

◆ RequiresFinalizeMaterialResponse()

virtual bool Kratos::ConstitutiveLaw::RequiresFinalizeMaterialResponse ( )
inlinevirtual

◆ RequiresInitializeMaterialResponse()

virtual bool Kratos::ConstitutiveLaw::RequiresInitializeMaterialResponse ( )
inlinevirtual

◆ ResetMaterial()

void Kratos::ConstitutiveLaw::ResetMaterial ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues 
)
virtual

This can be used in order to reset all internal variables of the constitutive law (e.g. if a model should be reset to its reference state)

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

Reimplemented in Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ SetInitialState()

void Kratos::ConstitutiveLaw::SetInitialState ( InitialState::Pointer  pInitialState)
inline
Returns
The initial state of strains/stresses/F

◆ SetValue() [1/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< array_1d< double, 3 > > &  rVariable,
const array_1d< double, 3 > &  rValue,
const ProcessInfo rCurrentProcessInfo 
)
virtual

Sets the value of a specified variable (array of 3 components)

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

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ SetValue() [2/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< array_1d< double, 6 > > &  rVariable,
const array_1d< double, 6 > &  rValue,
const ProcessInfo rCurrentProcessInfo 
)
virtual

Sets the value of a specified variable (array of 6 components)

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

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::Constitutive3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ SetValue() [3/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< bool > &  rThisVariable,
const bool Value,
const ProcessInfo rCurrentProcessInfo 
)
virtual

Sets the value of a specified variable (boolean)

Sets the value of a specified variable (bool)

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

Reimplemented in Kratos::WrinklingLinear2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ SetValue() [4/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< double > &  rVariable,
const double rValue,
const ProcessInfo rCurrentProcessInfo 
)
virtual

◆ SetValue() [5/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< int > &  rThisVariable,
const int Value,
const ProcessInfo rCurrentProcessInfo 
)
virtual

Sets the value of a specified variable (integer)

Sets the value of a specified variable (int)

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

Reimplemented in Kratos::WrinklingLinear2DLaw, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ SetValue() [6/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< Matrix > &  rVariable,
const Matrix rValue,
const ProcessInfo rCurrentProcessInfo 
)
virtual

◆ SetValue() [7/7]

void Kratos::ConstitutiveLaw::SetValue ( const Variable< Vector > &  rVariable,
const Vector rValue,
const ProcessInfo rCurrentProcessInfo 
)
virtual

Sets the value of a specified variable (Vector)

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

Reimplemented in Kratos::DispNewtonianFluid3DLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::StrainRate3DLaw, Kratos::LargeStrain3DLaw, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::BorjaHenckyCamClayPlasticPlaneStrain2DLaw, Kratos::BorjaHenckyCamClayPlastic3DLaw, Kratos::BorjaHenckyCamClayPlasticAxisym2DLaw, Kratos::SmallStrainIsotropicDamageImplex3D, Kratos::SmallStrainIsotropicDamage3D, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::IsotropicDamageCohesive3DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::ElastoPlasticMohrCoulombCohesive3DLaw, Kratos::ElastoPlasticModMohrCoulombCohesive3DLaw, Kratos::NonLinearHenckyElasticPlasticUP3DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::SmallStrain3DLaw, Kratos::Constitutive3DLaw, Kratos::WrinklingLinear2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, Kratos::PythonOutfittedConstitutiveLaw, and Kratos::GeoLinearElasticLaw.

◆ TransformCauchyStresses()

Vector & Kratos::ConstitutiveLaw::TransformCauchyStresses ( Vector rStressVector,
const Matrix rF,
const double rdetF,
StressMeasure  rStressFinal 
)

Methods to transform stress Vectors specialized with the initial stress Measure Cauchy:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressFinalthe measure of stress of the returned rStressVector

◆ TransformConstitutiveComponent()

double & Kratos::ConstitutiveLaw::TransformConstitutiveComponent ( double rCabcd,
const Matrix rConstitutiveMatrix,
const Matrix rF,
const unsigned int a,
const unsigned int b,
const unsigned int c,
const unsigned int d 
)
protected

This method performs a pull-back or a push-forward between two constitutive tensor components

◆ TransformKirchhoffStresses()

Vector & Kratos::ConstitutiveLaw::TransformKirchhoffStresses ( Vector rStressVector,
const Matrix rF,
const double rdetF,
StressMeasure  rStressFinal 
)

Methods to transform stress Vectors specialized with the initial stress Measure Kirchhoff:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressFinalthe measure of stress of the returned rStressVector

Methods to transform stress Vectors specialized with the initial stress Measure Kirchooff:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressFinalthe measure of stress of the returned rStressVector

◆ TransformPK1Stresses()

Vector & Kratos::ConstitutiveLaw::TransformPK1Stresses ( Vector rStressVector,
const Matrix rF,
const double rdetF,
StressMeasure  rStressFinal 
)

Methods to transform stress Vectors specialized with the initial stress Measure PK1:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressFinalthe measure of stress of the returned rStressVector

◆ TransformPK2Stresses()

Vector & Kratos::ConstitutiveLaw::TransformPK2Stresses ( Vector rStressVector,
const Matrix rF,
const double rdetF,
StressMeasure  rStressFinal 
)

Methods to transform stress Vectors specialized with the initial stress Measure PK2:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressFinalthe measure of stress of the returned rStressVector

◆ TransformStrains()

Vector & Kratos::ConstitutiveLaw::TransformStrains ( Vector rStrainVector,
const Matrix rF,
StrainMeasure  rStrainInitial,
StrainMeasure  rStrainFinal 
)
virtual

Methods to transform strain Vectors:

Parameters
rStrainVectorthe strain tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStrainInitialthe measure of stress of the given rStrainVector
rStrainFinalthe measure of stress of the returned rStrainVector

◆ TransformStresses() [1/2]

Matrix & Kratos::ConstitutiveLaw::TransformStresses ( Matrix rStressMatrix,
const Matrix rF,
const double rdetF,
StressMeasure  rStressInitial,
StressMeasure  rStressFinal 
)
virtual

Methods to transform stress Matrices:

Parameters
rStressMatrixthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressInitialthe measure of stress of the given rStressMatrix
rStressFinalthe measure of stress of the returned rStressMatrix

◆ TransformStresses() [2/2]

Vector & Kratos::ConstitutiveLaw::TransformStresses ( Vector rStressVector,
const Matrix rF,
const double rdetF,
StressMeasure  rStressInitial,
StressMeasure  rStressFinal 
)
virtual

Methods to transform stress Vectors:

Parameters
rStressVectorthe stress tensor in matrix which its stress measure will be changed
rFthe DeformationGradientF matrix between the configurations
rdetFthe determinant of the DeformationGradientF matrix between the configurations
rStressInitialthe measure of stress of the given rStressVector
rStressFinalthe measure of stress of the returned rStressVector

◆ ValidateInput()

bool Kratos::ConstitutiveLaw::ValidateInput ( const Properties rMaterialProperties)
virtual

Is called to check whether the provided material parameters in the Properties match the requirements of current constitutive model.

Parameters
rMaterialPropertiesthe current Properties to be validated against.
Returns
true, if parameters are correct; false, if parameters are insufficient / faulty NOTE: this has to be implemented by each constitutive model. Returns false in base class since no valid implementation is contained here.

Is called to check whether the provided material parameters in the Properties match the requirements of current constitutive model.

Parameters
rMaterialPropertiesthe current Properties to be validated against.
Returns
true, if parameters are correct; false, if parameters are insufficient / faulty NOTE: this has to implemented by each constitutive model. Returns false in base class since no valid implementation is contained here.

Reimplemented in Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::TractionSeparationLaw3D< TDim >, Kratos::TractionSeparationLaw3D< 3 >, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, and Kratos::ParallelRuleOfMixturesLaw< 3 >.

◆ WorkingSpaceDimension()

ConstitutiveLaw::SizeType Kratos::ConstitutiveLaw::WorkingSpaceDimension ( )
virtual
Returns
The working space dimension of the current constitutive law
Note
This function HAS TO BE IMPLEMENTED by any derived class
Returns
the working space dimension of the current constitutive law NOTE: this function HAS TO BE IMPLEMENTED by any derived class

Reimplemented in Kratos::UserProvidedLinearElasticLaw< TDim >, Kratos::UserProvidedLinearElasticLaw< 2 >, Kratos::UserProvidedLinearElasticLaw< 3 >, Kratos::LinearPlaneStress, Kratos::LinearPlaneStrain, Kratos::ElasticIsotropic3D, Kratos::LinearElasticPlasticPlaneStrain2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::HyperElasticUPPlaneStrain2DLaw, Kratos::HyperElasticUPAxisym2DLaw, Kratos::HyperElasticPlasticUPPlaneStrain2DLaw, Kratos::HyperElasticPlasticUPAxisym2DLaw, Kratos::HyperElasticPlasticPlaneStrain2DLaw, Kratos::HyperElasticPlasticAxisym2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::NonlocalDamagePlaneStrain2DLaw, Kratos::LocalDamagePlaneStrain2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::HyperElasticPlastic3DLaw, Kratos::HyperElastic3DLaw, Kratos::HistoryLinearElasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticUPAxisym2DLaw, Kratos::NonLinearHenckyElasticPlasticUP3DLaw, Kratos::NonLinearHenckyElasticPlasticPlaneStrain2DLaw, Kratos::NonLinearHenckyElasticPlasticAxisym2DLaw, Kratos::NonLinearHenckyElasticPlastic3DLaw, Kratos::PfemSolidConstitutiveLaw, Kratos::Hypoelastic3DLaw, Kratos::Hypoelastic2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::MuIRheology3DLaw, Kratos::MuIRheology2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::HerschelBulkley2DLaw, Kratos::FrictionalViscoplastic3DLaw, Kratos::FrictionalViscoplastic2DLaw, Kratos::PfemFluidConstitutiveLaw, Kratos::Bingham3DLaw, Kratos::Bingham2DLaw, Kratos::LinearElasticPlaneStrain2DLaw, Kratos::LinearElasticAxisym2DLaw, Kratos::JohnsonCookThermalPlastic2DPlaneStrainLaw, Kratos::HyperElasticPlaneStrainUP2DLaw, Kratos::HyperElasticPlaneStrain2DLaw, Kratos::HyperElasticAxisym2DLaw, Kratos::HyperElastic3DLaw, Kratos::HenckyElasticPlasticUP3DLaw, Kratos::HenckyElasticPlasticPlaneStrainUP2DLaw, Kratos::HenckyElasticPlasticPlaneStrain2DLaw, Kratos::HenckyElasticPlasticAxisym2DLaw, Kratos::HenckyElasticPlastic3DLaw, Kratos::DispNewtonianFluidPlaneStrain2DLaw, Kratos::DispNewtonianFluid3DLaw, Kratos::HelmholtzJacobianStiffened3D, Kratos::GeoThermalDispersionLaw, Kratos::SmallStrainUMAT3DLaw, Kratos::SmallStrainUMAT3DInterfaceLaw, Kratos::SmallStrainUMAT2DPlaneStrainLaw, Kratos::SmallStrainUMAT2DInterfaceLaw, Kratos::SmallStrainUDSM3DLaw, Kratos::SmallStrainUDSM3DInterfaceLaw, Kratos::SmallStrainUDSM2DPlaneStrainLaw, Kratos::SmallStrainUDSM2DInterfaceLaw, Kratos::GeoLinearElasticPlaneStress2DLaw, Kratos::LinearPlaneStrainK0Law, Kratos::GeoLinearElasticPlaneStrain2DLaw, Kratos::LinearElastic3DInterfaceLaw, Kratos::LinearElastic2DInterfaceLaw, Kratos::LinearElastic2DBeamLaw, Kratos::ElasticIsotropicK03DLaw, Kratos::BilinearCohesive3DLaw, Kratos::BilinearCohesive2DLaw, Kratos::Newtonian3DLaw, Kratos::Newtonian2DLaw, Kratos::HerschelBulkley3DLaw, Kratos::FluidConstitutiveLaw, Kratos::Euler3DLaw, Kratos::Euler2DLaw, Kratos::Bingham3DLaw, Kratos::LinearPlaneStressFEMDEM, Kratos::LinearPlaneStrainFEMDEM, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2DFEMDEM, Kratos::HyperElasticIsotropicNeoHookean3DFEMDEM, Kratos::ElasticIsotropic3DFEMDEM, Kratos::ThermalNonlocalDamagePlaneStrain2DLaw, Kratos::ThermalLocalDamagePlaneStrain2DLaw, Kratos::ThermalLinearElastic2DPlaneStrainNodal, Kratos::ThermalLinearElastic2DPlaneStrain, Kratos::LinearElastic2DPlaneStrainNodal, Kratos::StrainRatePlaneStrain2DLaw, Kratos::NewtonianFluidPlaneStrain2DLaw, Kratos::NewtonianFluid3DLaw, Kratos::SmallStrainPlaneStress2DLaw, Kratos::SmallStrainPlaneStrain2DLaw, Kratos::SmallStrainOrthotropic3DLaw, Kratos::SmallStrainAxisymmetric2DLaw, Kratos::LargeStrainPlaneStrain2DLaw, Kratos::LargeStrainAxisymmetric2DLaw, Kratos::Constitutive3DLaw, Kratos::ThermalLinearPlaneStrain, Kratos::GenericSmallStrainViscoplasticity3D, Kratos::SmallStrainJ2PlasticityPlaneStrain2D, Kratos::SmallStrainJ2Plasticity3D, Kratos::PlasticityIsotropicKinematicJ2, Kratos::WrinklingLinear2DLaw, Kratos::SmallStrainIsotropicDamagePlaneStrain2D, Kratos::DamageDPlusDMinusMasonry2DLaw, Kratos::DamageDPlusDMinusMasonry3DLaw, Kratos::GenericAnisotropic3DLaw, Kratos::HyperElasticSimoTaylorNeoHookeanPlaneStrain2D, Kratos::HyperElasticSimoTaylorNeoHookean3D, Kratos::HyperElasticIsotropicQuasiIncompressibleIshochoricNeoHookean3D, Kratos::HyperElasticIsotropicNeoHookeanPlaneStrain2D, Kratos::HyperElasticIsotropicNeoHookean3D, Kratos::HyperElasticIsotropicKirchhoffPlaneStress2D, Kratos::HyperElasticIsotropicKirchhoffPlaneStrain2D, Kratos::HyperElasticIsotropicKirchhoff3D, Kratos::SerialParallelRuleOfMixturesLaw, Kratos::ParallelRuleOfMixturesLaw< TDim >, Kratos::ParallelRuleOfMixturesLaw< 2 >, Kratos::ParallelRuleOfMixturesLaw< 3 >, and Kratos::PythonOutfittedConstitutiveLaw.

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

Member Data Documentation

◆ msIndexVoigt2D3C

const unsigned int Kratos::ConstitutiveLaw::msIndexVoigt2D3C = { {0, 0}, {1, 1}, {0, 1} }
staticprotected

◆ msIndexVoigt2D4C

const unsigned int Kratos::ConstitutiveLaw::msIndexVoigt2D4C = { {0, 0}, {1, 1}, {2, 2}, {0, 1} }
staticprotected

◆ msIndexVoigt3D6C

const unsigned int Kratos::ConstitutiveLaw::msIndexVoigt3D6C = { {0, 0}, {1, 1}, {2, 2}, {0, 1}, {1, 2}, {0, 2} }
staticprotected

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