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::GenericFiniteStrainIsotropicPlasticity< TConstLawIntegratorType > Class Template Reference

This class is the base class which define all the constitutive laws for plasticity in strain framework. More...

#include <generic_finite_strain_isotropic_plasticity.h>

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

Public Member Functions

Life Cycle
 GenericFiniteStrainIsotropicPlasticity ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericFiniteStrainIsotropicPlasticity (const GenericFiniteStrainIsotropicPlasticity &rOther)
 
 ~GenericFiniteStrainIsotropicPlasticity () 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 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 RequiresFinalizeMaterialResponse () override
 If the CL requires to initialize the material response, called by the element in InitializeSolutionStep. More...
 
bool RequiresInitializeMaterialResponse () 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...
 
- Public Member Functions inherited from Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >
 GenericSmallStrainIsotropicPlasticity ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericSmallStrainIsotropicPlasticity (const GenericSmallStrainIsotropicPlasticity &rOther)
 
 ~GenericSmallStrainIsotropicPlasticity () override
 
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...
 
 KRATOS_CLASS_POINTER_DEFINITION (GenericSmallStrainIsotropicPlasticity)
 Counted pointer of GenericSmallStrainIsotropicPlasticity. More...
 

Type Definitions

typedef GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType > 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 (GenericFiniteStrainIsotropicPlasticity)
 Counted pointer of GenericFiniteStrainIsotropicPlasticity. More...
 

Additional Inherited Members

- Public Types inherited from Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >
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 Public Attributes inherited from Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >
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...
 
- Protected Member Functions inherited from Kratos::GenericSmallStrainIsotropicPlasticity< TConstLawIntegratorType >
doubleGetThreshold ()
 
doubleGetPlasticDissipation ()
 
VectorGetPlasticStrain ()
 
void SetThreshold (const double Threshold)
 
void SetPlasticDissipation (const double PlasticDissipation)
 
void SetPlasticStrain (const array_1d< double, VoigtSize > &rPlasticStrain)
 

Detailed Description

template<class TConstLawIntegratorType>
class Kratos::GenericFiniteStrainIsotropicPlasticity< TConstLawIntegratorType >

This class is the base class which define all the constitutive laws for plasticity in strain framework.

This class considers a constitutive law integrator as an intermediate utility to compute the plasticity This implementation is based on the Eulerian logarithmic strain measure (COMPUTATIONAL METHODS FOR PLASTICITY THEORY AND APPLICATIONS. EA de Souza Neto,D Perić, DRJ Owen pag. 596).

Template Parameters
TConstLawIntegratorTypeThe constitutive law integrator considered
Author
Alejandro Cornejo & Vicente Mataix Ferrandiz

Member Typedef Documentation

◆ BaseType

template<class TConstLawIntegratorType >
typedef GenericSmallStrainIsotropicPlasticity<TConstLawIntegratorType> Kratos::GenericFiniteStrainIsotropicPlasticity< TConstLawIntegratorType >::BaseType

Definition of the base class.

◆ BoundedArrayType

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

The definition of the Voigt array type.

◆ BoundedMatrixType

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

The definition of the bounded matrix type.

◆ GeometryType

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

The geometry definition.

◆ NodeType

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

The node definition.

Constructor & Destructor Documentation

◆ GenericFiniteStrainIsotropicPlasticity() [1/2]

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

Default constructor.

◆ GenericFiniteStrainIsotropicPlasticity() [2/2]

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

Copy constructor.

◆ ~GenericFiniteStrainIsotropicPlasticity()

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

Destructor.

Member Function Documentation

◆ CalculateMaterialResponseCauchy()

template<class TConstLawIntegratorType >
void Kratos::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< TConstLawIntegratorType >::Clone ( ) const
inlineoverride

Clone.

◆ FinalizeMaterialResponseCauchy()

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

Finalize the material response in terms of Cauchy stresses

See also
Parameters

◆ FinalizeMaterialResponseKirchhoff()

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

Finalize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ FinalizeMaterialResponsePK1()

template<class TConstLawIntegratorType >
void Kratos::GenericFiniteStrainIsotropicPlasticity< 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::GenericFiniteStrainIsotropicPlasticity< TConstLawIntegratorType >::FinalizeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

◆ RequiresFinalizeMaterialResponse()

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

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

◆ RequiresInitializeMaterialResponse()

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

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

Member Data Documentation

◆ Dimension

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

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

◆ VoigtSize

template<class TConstLawIntegratorType >
constexpr SizeType Kratos::GenericFiniteStrainIsotropicPlasticity< 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: