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::ViscousGeneralizedKelvin< TElasticBehaviourLaw > Class Template Reference

This is a constitutive law that reproduces the behaviour of viscous Kelvin material. More...

#include <viscous_generalized_kelvin.h>

Inheritance diagram for Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >:
Collaboration diagram for Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >:

Public Member Functions

Life Cycle
 ViscousGeneralizedKelvin ()
 Default constructor. More...
 
ConstitutiveLaw::Pointer Clone () const override
 Clone. More...
 
 ViscousGeneralizedKelvin (const ViscousGeneralizedKelvin &rOther)
 Copy constructor. More...
 
 ~ViscousGeneralizedKelvin () override
 Destructor. More...
 
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 FinalizeSolutionStep (const Properties &rMaterialProperties, const GeometryType &rElementGeometry, const Vector &rShapeFunctionsValues, const ProcessInfo &rCurrentProcessInfo) override
 To be called at the end of each solution step (e.g. from Element::FinalizeSolutionStep) More...
 
void FinalizeMaterialResponsePK1 (ConstitutiveLaw::Parameters &rValues) override
 
void FinalizeMaterialResponsePK2 (ConstitutiveLaw::Parameters &rValues) override
 
void FinalizeMaterialResponseKirchhoff (ConstitutiveLaw::Parameters &rValues) override
 
void FinalizeMaterialResponseCauchy (ConstitutiveLaw::Parameters &rValues) override
 
VectorCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Vector > &rThisVariable, Vector &rValue) override
 Calculates the value of a specified variable (Vector) More...
 
MatrixCalculateValue (ConstitutiveLaw::Parameters &rParameterValues, const Variable< Matrix > &rThisVariable, Matrix &rValue) override
 Calculates 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...
 
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...
 

Type Definitions

typedef ConstitutiveLaw CLBaseType
 Definition of the base CL class. More...
 
typedef TElasticBehaviourLaw BaseType
 Definition of the base class. More...
 
typedef std::size_t IndexType
 The index definition. More...
 
typedef std::size_t SizeType
 The size definition. More...
 
typedef Node NodeType
 The node definition. More...
 
typedef Geometry< NodeTypeGeometryType
 The geometry definition. More...
 
static constexpr SizeType Dimension = TElasticBehaviourLaw::Dimension
 Static definition of the dimension. More...
 
static constexpr SizeType VoigtSize = TElasticBehaviourLaw::VoigtSize
 Static definition of the VoigtSize. More...
 
static constexpr double tolerance = std::numeric_limits<double>::epsilon()
 Definition of the machine precision tolerance. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (ViscousGeneralizedKelvin)
 Counted pointer of GenericYieldSurface. More...
 

Un accessible methods

class Serializer
 

Detailed Description

template<class TElasticBehaviourLaw>
class Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >

This is a constitutive law that reproduces the behaviour of viscous Kelvin material.

The definition of the Kelvin-Voigt material can be founf in Wikipedia https://en.wikipedia.org/wiki/Kelvin%E2%80%93Voigt_material The Kelvin–Voigt model, also called the Voigt model, can be represented by a purely viscous damper and purely elastic spring

              Spring K
             |--^^^^--|
        -----          ------
             |---[----|
              Damper C
Parameters
TElasticBehaviourLawDefines the elastic behaviour of the constitutive law (can be hyperelastic or just linear elastic, or any desired elastic behaviour)
Author
Alejandro Cornejo& Lucia Barbu

Member Typedef Documentation

◆ BaseType

template<class TElasticBehaviourLaw >
typedef TElasticBehaviourLaw Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::BaseType

Definition of the base class.

◆ CLBaseType

template<class TElasticBehaviourLaw >
typedef ConstitutiveLaw Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::CLBaseType

Definition of the base CL class.

◆ GeometryType

template<class TElasticBehaviourLaw >
typedef Geometry<NodeType> Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::GeometryType

The geometry definition.

◆ IndexType

template<class TElasticBehaviourLaw >
typedef std::size_t Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::IndexType

The index definition.

◆ NodeType

template<class TElasticBehaviourLaw >
typedef Node Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::NodeType

The node definition.

◆ SizeType

template<class TElasticBehaviourLaw >
typedef std::size_t Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::SizeType

The size definition.

Constructor & Destructor Documentation

◆ ViscousGeneralizedKelvin() [1/2]

template<class TElasticBehaviourLaw >
Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::ViscousGeneralizedKelvin

Default constructor.

◆ ViscousGeneralizedKelvin() [2/2]

template<class TElasticBehaviourLaw >
Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::ViscousGeneralizedKelvin ( const ViscousGeneralizedKelvin< TElasticBehaviourLaw > &  rOther)

Copy constructor.

◆ ~ViscousGeneralizedKelvin()

template<class TElasticBehaviourLaw >
Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::~ViscousGeneralizedKelvin
override

Destructor.

Member Function Documentation

◆ CalculateMaterialResponseCauchy()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::CalculateMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateMaterialResponseKirchhoff()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::CalculateMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ CalculateMaterialResponsePK1()

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

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

See also
Parameters

◆ CalculateValue() [1/2]

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

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

◆ CalculateValue() [2/2]

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

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

◆ Check()

template<class TElasticBehaviourLaw >
int Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::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 TElasticBehaviourLaw >
ConstitutiveLaw::Pointer Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::Clone
override

Clone.

◆ FinalizeMaterialResponseCauchy()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::FinalizeMaterialResponseCauchy ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Cauchy stresses

See also
Parameters

◆ FinalizeMaterialResponseKirchhoff()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::FinalizeMaterialResponseKirchhoff ( ConstitutiveLaw::Parameters rValues)
override

Finalize the material response in terms of Kirchhoff stresses

See also
Parameters

◆ FinalizeMaterialResponsePK1()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::FinalizeMaterialResponsePK1 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ FinalizeMaterialResponsePK2()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::FinalizeMaterialResponsePK2 ( ConstitutiveLaw::Parameters rValues)
override

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

See also
Parameters

◆ FinalizeSolutionStep()

template<class TElasticBehaviourLaw >
void Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::FinalizeSolutionStep ( const Properties rMaterialProperties,
const GeometryType rElementGeometry,
const Vector rShapeFunctionsValues,
const ProcessInfo rCurrentProcessInfo 
)
override

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

◆ KRATOS_CLASS_POINTER_DEFINITION()

template<class TElasticBehaviourLaw >
Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::KRATOS_CLASS_POINTER_DEFINITION ( ViscousGeneralizedKelvin< TElasticBehaviourLaw >  )

Counted pointer of GenericYieldSurface.

◆ RequiresFinalizeMaterialResponse()

template<class TElasticBehaviourLaw >
bool Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::RequiresFinalizeMaterialResponse ( )
inlineoverride

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

◆ RequiresInitializeMaterialResponse()

template<class TElasticBehaviourLaw >
bool Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::RequiresInitializeMaterialResponse ( )
inlineoverride

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

Friends And Related Function Documentation

◆ Serializer

template<class TElasticBehaviourLaw >
friend class Serializer
friend

Member Data Documentation

◆ Dimension

template<class TElasticBehaviourLaw >
constexpr SizeType Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::Dimension = TElasticBehaviourLaw::Dimension
staticconstexpr

Static definition of the dimension.

◆ tolerance

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

Definition of the machine precision tolerance.

◆ VoigtSize

template<class TElasticBehaviourLaw >
constexpr SizeType Kratos::ViscousGeneralizedKelvin< TElasticBehaviourLaw >::VoigtSize = TElasticBehaviourLaw::VoigtSize
staticconstexpr

Static definition of the VoigtSize.


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