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

This class derives from the Isotropic damage CL and adds thermal effects (material properties affectation and internal variables) More...

#include <generic_small_strain_thermal_isotropic_damage.h>

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

Public Member Functions

Life Cycle
 GenericSmallStrainThermalIsotropicDamage ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericSmallStrainThermalIsotropicDamage (const GenericSmallStrainThermalIsotropicDamage &rOther)
 
 ~GenericSmallStrainThermalIsotropicDamage () override
 
Operations
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 FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 
bool Has (const Variable< double > &rThisVariable) override
 Returns whether this constitutive Law has specified variable (double) More...
 
void SetValue (const Variable< double > &rThisVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo) override
 Sets the value of a specified variable (double) More...
 
doubleGetValue (const Variable< double > &rThisVariable, double &rValue) override
 Returns the value of a specified variable (double) 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...
 
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::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >
 GenericSmallStrainIsotropicDamage ()
 
ConstitutiveLaw::Pointer Clone () const override
 
 GenericSmallStrainIsotropicDamage (const GenericSmallStrainIsotropicDamage &rOther)
 
 ~GenericSmallStrainIsotropicDamage () 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. 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...
 
 KRATOS_CLASS_POINTER_DEFINITION (GenericSmallStrainIsotropicDamage)
 Counted pointer of GenericYieldSurface. More...
 

Protected Member Functions

Protected Access
doubleGetReferenceTemperature ()
 Retrieve the reference temperature. More...
 
void SetReferenceTemperature (const double ToRefTemperature)
 Sets the reference temperature. More...
 
- Protected Member Functions inherited from Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >
doubleGetThreshold ()
 
doubleGetDamage ()
 
void SetThreshold (const double toThreshold)
 
void SetDamage (const double toDamage)
 

Type Definitions

using BaseType = GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >
 Definition of the base class. More...
 
using BoundedArrayType = array_1d< double, VoigtSize >
 Bounded vector for stresses/strains. More...
 
using GeometryType = Geometry< Node >
 The geometry definition. More...
 
using CLutils = ConstitutiveLawUtilities< VoigtSize >
 Advanced and basic contitutive laws utilities for the corresponding Voigt size. More...
 
using AdvCLutils = AdvancedConstitutiveLawUtilities< VoigtSize >
 
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 (GenericSmallStrainThermalIsotropicDamage)
 Counted pointer of GenericYieldSurface. More...
 

Un accessible methods

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::GenericSmallStrainIsotropicDamage< TConstLawIntegratorType >
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 Public Attributes inherited from Kratos::GenericSmallStrainIsotropicDamage< 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...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 Definition of the machine precision tolerance. More...
 
static constexpr double threshold_tolerance = 1.0e-5
 

Detailed Description

template<class TConstLawIntegratorType>
class Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >

This class derives from the Isotropic damage CL and adds thermal effects (material properties affectation and internal variables)

This class considers a constitutive law integrator as an intermediate utility to compute the damage. 3D and plane strain

Template Parameters
TConstLawIntegratorTypeThe constitutive law integrator considered
Author
Alejandro Cornejo

Member Typedef Documentation

◆ AdvCLutils

template<class TConstLawIntegratorType >
using Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::AdvCLutils = AdvancedConstitutiveLawUtilities<VoigtSize>

◆ BaseType

template<class TConstLawIntegratorType >
using Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::BaseType = GenericSmallStrainIsotropicDamage<TConstLawIntegratorType>

Definition of the base class.

◆ BoundedArrayType

template<class TConstLawIntegratorType >
using Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::BoundedArrayType = array_1d<double, VoigtSize>

Bounded vector for stresses/strains.

◆ CLutils

template<class TConstLawIntegratorType >
using Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::CLutils = ConstitutiveLawUtilities<VoigtSize>

Advanced and basic contitutive laws utilities for the corresponding Voigt size.

◆ GeometryType

template<class TConstLawIntegratorType >
using Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::GeometryType = Geometry<Node>

The geometry definition.

Constructor & Destructor Documentation

◆ GenericSmallStrainThermalIsotropicDamage() [1/2]

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

Default constructor.

◆ GenericSmallStrainThermalIsotropicDamage() [2/2]

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

Copy constructor.

◆ ~GenericSmallStrainThermalIsotropicDamage()

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

Destructor.

Member Function Documentation

◆ CalculateMaterialResponseCauchy()

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

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

See also
Parameters

◆ Check()

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

Clone.

◆ FinalizeMaterialResponseCauchy()

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

Finalize the material response in terms of Cauchy stresses

See also
Parameters

◆ GetReferenceTemperature()

template<class TConstLawIntegratorType >
double& Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::GetReferenceTemperature ( )
inlineprotected

Retrieve the reference temperature.

Returns
The reference temperature

◆ GetValue()

template<class TConstLawIntegratorType >
double & Kratos::GenericSmallStrainThermalIsotropicDamage< 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

◆ Has()

template<class TConstLawIntegratorType >
bool Kratos::GenericSmallStrainThermalIsotropicDamage< 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

◆ InitializeMaterial()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainThermalIsotropicDamage< 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::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::KRATOS_CLASS_POINTER_DEFINITION ( GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >  )

Counted pointer of GenericYieldSurface.

◆ RequiresFinalizeMaterialResponse()

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

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

◆ RequiresInitializeMaterialResponse()

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

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

◆ SetReferenceTemperature()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainThermalIsotropicDamage< TConstLawIntegratorType >::SetReferenceTemperature ( const double  ToRefTemperature)
inlineprotected

Sets the reference temperature.

Parameters
ToRefTemperatureThe reference temperature

◆ SetValue()

template<class TConstLawIntegratorType >
void Kratos::GenericSmallStrainThermalIsotropicDamage< 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

Friends And Related Function Documentation

◆ Serializer

template<class TConstLawIntegratorType >
friend class Serializer
friend

Member Data Documentation

◆ Dimension

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

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

◆ threshold_tolerance

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

◆ tolerance

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

Definition of the machine precision tolerance.

◆ VoigtSize

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