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

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

#include <generic_small_strain_isotropic_damage.h>

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

Public Member Functions

Life Cycle
 GenericSmallStrainIsotropicDamage ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericSmallStrainIsotropicDamage (const GenericSmallStrainIsotropicDamage &rOther)
 
 ~GenericSmallStrainIsotropicDamage () 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. 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...
 
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...
 
void CalculateTangentTensor (ConstitutiveLaw::Parameters &rValues)
 This method computes the tangent tensor. More...
 

Protected Member Functions

Protected Operations
doubleGetThreshold ()
 
doubleGetDamage ()
 
void SetThreshold (const double toThreshold)
 
void SetDamage (const double toDamage)
 

Type Definitions

typedef std::conditional< VoigtSize==6, ElasticIsotropic3D, LinearPlaneStrain >::type BaseType
 Definition of the base class. More...
 
typedef array_1d< double, VoigtSizeBoundedArrayType
 
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...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 Definition of the machine precision tolerance. More...
 
static constexpr double threshold_tolerance = 1.0e-5
 
 KRATOS_CLASS_POINTER_DEFINITION (GenericSmallStrainIsotropicDamage)
 Counted pointer of GenericYieldSurface. More...
 

Un accessible methods

class Serializer
 

Detailed Description

template<class TConstLawIntegratorType>
class Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >

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

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

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::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::BaseType

Definition of the base class.

◆ BoundedArrayType

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

◆ GeometryType

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

The geometry definition.

◆ NodeType

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

The node definition.

Constructor & Destructor Documentation

◆ GenericSmallStrainIsotropicDamage() [1/2]

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

Default constructor.

◆ GenericSmallStrainIsotropicDamage() [2/2]

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

Copy constructor.

◆ ~GenericSmallStrainIsotropicDamage()

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

Destructor.

Member Function Documentation

◆ CalculateMaterialResponseCauchy()

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

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

See also
Parameters

◆ CalculateTangentTensor()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::CalculateTangentTensor ( ConstitutiveLaw::Parameters rValues)

This method computes the tangent tensor.

Parameters
rValuesThe constitutive law parameters and flags

◆ CalculateValue() [1/3]

template<class TConstLawIntegratorType >
double & Kratos::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::Clone ( ) const
inlineoverride

Clone.

◆ FinalizeMaterialResponseCauchy()

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

Finalize the material response in terms of Cauchy stresses

See also
Parameters

◆ FinalizeMaterialResponseKirchhoff()

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

Finalize the material response in terms of Kirchhoff stresses.

See also
Parameters

◆ FinalizeMaterialResponsePK1()

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

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

See also
Parameters

◆ GetDamage()

template<class TConstLawIntegratorType >
double& Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::GetDamage ( )
inlineprotected

◆ GetThreshold()

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

◆ GetValue() [1/2]

template<class TConstLawIntegratorType >
double & Kratos::GenericSmallStrainIsotropicDamage< 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/2]

template<class TConstLawIntegratorType >
Vector & Kratos::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< 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

◆ KRATOS_CLASS_POINTER_DEFINITION()

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

Counted pointer of GenericYieldSurface.

◆ RequiresFinalizeMaterialResponse()

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

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

◆ RequiresInitializeMaterialResponse()

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

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

◆ SetDamage()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::SetDamage ( const double  toDamage)
inlineprotected

◆ SetThreshold()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::SetThreshold ( const double  toThreshold)
inlineprotected

◆ SetValue() [1/2]

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainIsotropicDamage< 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::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::SetValue ( const Variable< Vector > &  rThisVariable,
const Vector rValue,
const ProcessInfo rCurrentProcessInfo 
)
override

Sets the value of a specified variable (Vector)

Parameters
rVariablethe 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::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::Dimension = TConstLawIntegratorType::Dimension
staticconstexpr

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

◆ threshold_tolerance

template<class TConstLawIntegratorType >
constexpr double Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::threshold_tolerance = 1.0e-5
staticconstexpr

◆ tolerance

template<class TConstLawIntegratorType >
constexpr double Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >::tolerance = std::numeric_limits<double>::epsilon()
staticconstexpr

Definition of the machine precision tolerance.

◆ VoigtSize

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