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.
List of all members
Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType > Class Template Reference

This class is the base class which define all the constitutive laws for plasticity in small deformation. More...

#include <generic_small_strain_isotropic_plasticity.h>

Inheritance diagram for Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >:
Collaboration diagram for Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >:

Public Member Functions

Life Cycle
 GenericSmallStrainIsotropicPlasticity ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericSmallStrainIsotropicPlasticity (const GenericSmallStrainIsotropicPlasticity &rOther)
 
 ~GenericSmallStrainIsotropicPlasticity () override
 
Operations
void CalculateMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of 1st Piola-Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of 2nd Piola-Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of Kirchhoff stresses and constitutive tensor. More...
 
void CalculateMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Computes the material response in terms of Cauchy stresses and constitutive tensor. More...
 
void InitializeMaterial (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues) override
 This is to be called at the very beginning of the calculation (e.g. from InitializeElement) in order to initialize all relevant attributes of the constitutive law. More...
 
void InitializeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of 1st Piola-Kirchhoff stresses. More...
 
void InitializeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of 2nd Piola-Kirchhoff stresses. More...
 
void InitializeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of Kirchhoff stresses. More...
 
void InitializeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 Initialize the material response in terms of Cauchy stresses. More...
 
void FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of 1st Piola-Kirchhoff stresses. More...
 
void FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of 2nd Piola-Kirchhoff stresses. More...
 
void FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 Finalize the material response in terms of Kirchhoff stresses. More...
 
void FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 
bool Has (const Variable< double > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (double) More...
 
bool Has (const Variable< Vector > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (Vector) More...
 
bool Has (const Variable< Matrix > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (Matrix) More...
 
void SetValue (const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override
 Sets the value of a specified variable (double) More...
 
void SetValue (const Variable< Vector > &rThisVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) override
 Sets the value of a specified variable (Vector) More...
 
doubleGetValue (const Variable< double > &rThisVariable, double &rValue) override
 Returns the value of a specified variable (double) More...
 
VectorGetValue (const Variable< Vector > &rThisVariable, Vector &rValue) override
 Returns the value of a specified variable (Vector) More...
 
MatrixGetValue (const Variable< Matrix > &rThisVariable, Matrix &rValue) override
 Returns the value of a specified variable (matrix) More...
 
bool RequiresInitializeMaterialResponse () override
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
bool RequiresFinalizeMaterialResponse () override
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
doubleCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< double > &rThisVariable, double &rValue) override
 Returns the value of a specified variable (double) More...
 
VectorCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue) override
 Returns the value of a specified variable (vector) More...
 
MatrixCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue) override
 Returns the value of a specified variable (matrix) More...
 
int Check (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const ProcessInfo &rCurrentProcessInfo) const override
 This function provides the place to perform checks on the completeness of the input. More...
 

Protected Member Functions

Protected Operators
doubleGetThreshold ()
 
doubleGetPlasticDissipation ()
 
VectorGetPlasticStrain ()
 
void SetThreshold (const double Threshold)
 
void SetPlasticDissipation (const double PlasticDissipation)
 
void SetPlasticStrain (const array_1d< double, VoigtSize > &rPlasticStrain)
 

Type Definitions

typedef std::conditional< VoigtSize==6, ElasticIsotropic3D, LinearPlaneStrain >::type BaseType
 Definition of the base class. More...
 
typedef array_1d< double, VoigtSizeBoundedArrayType
 The definition of the Voigt array type. More...
 
typedef BoundedMatrix< double, Dimension, DimensionBoundedMatrixType
 The definition of the bounded matrix type. More...
 
typedef Node NodeType
 The node definition. More...
 
typedef Geometry< NodeTypeGeometryType
 The geometry definition. More...
 
static constexpr SizeType Dimension = TConstLawIntegratorType::Dimension
 The define the working dimension size, already defined in the integrator. More...
 
static constexpr SizeType VoigtSize = TConstLawIntegratorType::VoigtSize
 The define the Voigt size, already defined in the integrator. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (GenericSmallStrainIsotropicPlasticity)
 Counted pointer of GenericSmallStrainIsotropicPlasticity. More...
 

Un accessible methods

class Serializer
 

Detailed Description

template<class TConstLawIntegratorType>
class Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >

This class is the base class which define all the constitutive laws for plasticity in small deformation.

This class considers a constitutive law integrator as an intermediate utility to compute the plasticity

Template Parameters
TConstLawIntegratorTypeThe constitutive law integrator considered
Author
Alejandro Cornejo & Lucia Barbu

Member Typedef Documentation

◆ BaseType

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

Definition of the base class.

◆ BoundedArrayType

template<class TConstLawIntegratorType >
typedef array_1d<double, VoigtSize> Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::BoundedArrayType

The definition of the Voigt array type.

◆ BoundedMatrixType

template<class TConstLawIntegratorType >
typedef BoundedMatrix<double, Dimension, Dimension> Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::BoundedMatrixType

The definition of the bounded matrix type.

◆ GeometryType

template<class TConstLawIntegratorType >
typedef Geometry<NodeType> Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GeometryType

The geometry definition.

◆ NodeType

template<class TConstLawIntegratorType >
typedef Node Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::NodeType

The node definition.

Constructor & Destructor Documentation

◆ GenericSmallStrainIsotropicPlasticity() [1/2]

template<class TConstLawIntegratorType >
Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GenericSmallStrainIsotropicPlasticity ( )
inline

Default constructor.

◆ GenericSmallStrainIsotropicPlasticity() [2/2]

template<class TConstLawIntegratorType >
Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GenericSmallStrainIsotropicPlasticity ( const GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType > &  rOther)
inline

Copy constructor.

◆ ~GenericSmallStrainIsotropicPlasticity()

template<class TConstLawIntegratorType >
Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::~GenericSmallStrainIsotropicPlasticity ( )
inlineoverride

Destructor.

Member Function Documentation

◆ CalculateMaterialResponseCauchy()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateMaterialResponseKirchhoff()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateMaterialResponsePK1()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateMaterialResponsePK2()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateValue() [1/3]

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

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

◆ CalculateValue() [2/3]

template<class TConstLawIntegratorType >
Matrix & Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateValue ( ConstitutiveLaw::Parameters rParameterValues,
const Variable< Matrix > &  rThisVariable,
Matrix rValue 
)
override

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

◆ CalculateValue() [3/3]

template<class TConstLawIntegratorType >
Vector & Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::CalculateValue ( ConstitutiveLaw::Parameters rParameterValues,
const Variable< Vector > &  rThisVariable,
Vector rValue 
)
override

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

◆ Check()

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

This function provides the place to perform checks on the completeness of the input.

It is designed to be called only once (or anyway, not often) typically at the beginning of the calculations, so to verify that nothing is missing from the input or that no common error is found.

Parameters
rMaterialPropertiesThe properties of the material
rElementGeometryThe geometry of the element
rCurrentProcessInfoThe current process info instance
Returns
0 if OK, 1 otherwise

◆ Clone()

template<class TConstLawIntegratorType >
ConstitutiveLaw::Pointer Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::Clone ( ) const
inlineoverride

Clone.

◆ FinalizeMaterialResponseCauchy()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::FinalizeMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Cauchy stresses

See also
Parameters

◆ FinalizeMaterialResponseKirchhoff()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::FinalizeMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ FinalizeMaterialResponsePK1()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::FinalizeMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ FinalizeMaterialResponsePK2()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::FinalizeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ GetPlasticDissipation()

template<class TConstLawIntegratorType >
double& Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GetPlasticDissipation ( )
inlineprotected

◆ GetPlasticStrain()

template<class TConstLawIntegratorType >
Vector& Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GetPlasticStrain ( )
inlineprotected

◆ GetThreshold()

template<class TConstLawIntegratorType >
double& Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GetThreshold ( )
inlineprotected

◆ GetValue() [1/3]

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

Returns the value of a specified variable (double)

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

◆ GetValue() [2/3]

template<class TConstLawIntegratorType >
Matrix & Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::GetValue ( const Variable< Matrix > &  rThisVariable,
Matrix rValue 
)
override

Returns the value of a specified variable (matrix)

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

◆ GetValue() [3/3]

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

Returns the value of a specified variable (Vector)

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

◆ Has() [1/3]

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

Returns whether this constitutive Law has specified variable (double)

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

◆ Has() [2/3]

template<class TConstLawIntegratorType >
bool Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::Has ( const Variable< Matrix > &  rThisVariable)
override

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

◆ Has() [3/3]

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

Returns whether this constitutive Law has specified variable (Vector)

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

◆ InitializeMaterial()

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

This is to be called at the very beginning of the calculation (e.g. from InitializeElement) in order to initialize all relevant attributes of the constitutive law.

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

◆ InitializeMaterialResponseCauchy()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::InitializeMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of Cauchy stresses.

See also
Parameters

◆ InitializeMaterialResponseKirchhoff()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::InitializeMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Initialize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ InitializeMaterialResponsePK1()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::InitializeMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ InitializeMaterialResponsePK2()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::InitializeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TConstLawIntegratorType >
Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::KRATOS_CLASS_POINTER_DEFINITION ( GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >  )

◆ RequiresFinalizeMaterialResponse()

template<class TConstLawIntegratorType >
bool Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::RequiresFinalizeMaterialResponse ( )
inlineoverride

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

◆ RequiresInitializeMaterialResponse()

template<class TConstLawIntegratorType >
bool Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::RequiresInitializeMaterialResponse ( )
inlineoverride

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

◆ SetPlasticDissipation()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::SetPlasticDissipation ( const double  PlasticDissipation)
inlineprotected

◆ SetPlasticStrain()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::SetPlasticStrain ( const array_1d< double, VoigtSize > &  rPlasticStrain)
inlineprotected

◆ SetThreshold()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::SetThreshold ( const double  Threshold)
inlineprotected

◆ SetValue() [1/2]

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

Sets the value of a specified variable (double)

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

◆ SetValue() [2/2]

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

Sets the value of a specified variable (Vector)

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

Friends And Related Function Documentation

◆ Serializer

template<class TConstLawIntegratorType >
friend class Serializer
friend

Member Data Documentation

◆ Dimension

template<class TConstLawIntegratorType >
constexpr SizeType Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::Dimension = TConstLawIntegratorType::Dimension
staticconstexpr

The define the working dimension size, already defined in the integrator.

◆ VoigtSize

template<class TConstLawIntegratorType >
constexpr SizeType Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >::VoigtSize = TConstLawIntegratorType::VoigtSize
staticconstexpr

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


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