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.
Classes | List of all members
Kratos::HyperElasticModel Class Reference

Short class definition. More...

#include <hyper_elastic_model.hpp>

Inheritance diagram for Kratos::HyperElasticModel:
Collaboration diagram for Kratos::HyperElasticModel:

Classes

struct  HyperElasticFactors
 
struct  HyperElasticModelData
 
struct  StrainData
 
struct  StrainEigenData
 
struct  StrainInvariants
 

Public Member Functions

Life Cycle
 HyperElasticModel ()
 Default constructor. More...
 
 HyperElasticModel (HyperElasticModel const &rOther)
 Copy constructor. More...
 
HyperElasticModel & operator= (HyperElasticModel const &rOther)
 Assignment operator. More...
 
ConstitutiveModel::Pointer Clone () const override
 Clone. More...
 
 ~HyperElasticModel () override
 Destructor. More...
 
Operations
void InitializeModel (ModelDataType &rValues) override
 
void FinalizeModel (ModelDataType &rValues) override
 
void CalculateStrainEnergy (ModelDataType &rValues, double &rDensityFunction) override
 
void CalculateStressTensor (ModelDataType &rValues, MatrixType &rStressMatrix) override
 
void CalculateIsochoricStressTensor (ModelDataType &rValues, MatrixType &rStressMatrix) override
 
void CalculateVolumetricStressTensor (ModelDataType &rValues, MatrixType &rStressMatrix) override
 
void CalculateConstitutiveTensor (ModelDataType &rValues, Matrix &rConstitutiveMatrix) override
 
void CalculateIsochoricConstitutiveTensor (ModelDataType &rValues, Matrix &rConstitutiveMatrix) override
 
void CalculateVolumetricConstitutiveTensor (ModelDataType &rValues, Matrix &rConstitutiveMatrix) override
 
void CalculateStressAndConstitutiveTensors (ModelDataType &rValues, MatrixType &rStressMatrix, Matrix &rConstitutiveMatrix) override
 
void CalculateIsochoricStressAndConstitutiveTensors (ModelDataType &rValues, MatrixType &rStressMatrix, Matrix &rConstitutiveMatrix) override
 
void CalculateVolumetricStressAndConstitutiveTensors (ModelDataType &rValues, MatrixType &rStressMatrix, Matrix &rConstitutiveMatrix) override
 
int Check (const Properties &rProperties, const ProcessInfo &rCurrentProcessInfo) override
 
Access
void SetValue (const Variable< Vector > &rThisVariable, const Vector &rValue, const ProcessInfo &rCurrentProcessInfo) override
 
void SetValue (const Variable< Matrix > &rThisVariable, const Matrix &rValue, const ProcessInfo &rCurrentProcessInfo) override
 
void GetDomainVariablesList (std::vector< Variable< double > > &rScalarVariables, std::vector< Variable< array_1d< double, 3 > > > &rComponentVariables) override
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::ConstitutiveModel
 KRATOS_DEFINE_LOCAL_FLAG (ADD_HISTORY_VECTOR)
 
 KRATOS_DEFINE_LOCAL_FLAG (HISTORY_STRAIN_MEASURE)
 
 KRATOS_DEFINE_LOCAL_FLAG (HISTORY_STRESS_MEASURE)
 
 ConstitutiveModel ()
 Default constructor. More...
 
 ConstitutiveModel (ConstitutiveModel const &rOther)
 Copy constructor. More...
 
ConstitutiveModel & operator= (ConstitutiveModel const &rOther)
 Assignment operator. More...
 
virtual ~ConstitutiveModel ()
 Destructor. More...
 
virtual void InitializeMaterial (const Properties &rProperties)
 
virtual bool Has (const Variable< double > &rThisVariable)
 
virtual void SetValue (const Variable< double > &rVariable, const double &rValue, const ProcessInfo &rCurrentProcessInfo)
 
virtual double & GetValue (const Variable< double > &rThisVariable, double &rValue)
 
 KRATOS_CLASS_POINTER_DEFINITION (ConstitutiveModel)
 Pointer definition of ConstitutiveModel. More...
 

Protected Member Functions

Protected Operations
virtual void CalculateAndAddStressTensor (HyperElasticDataType &rVariables, MatrixType &rStressMatrix)
 
virtual void CalculateAndAddIsochoricStressTensor (HyperElasticDataType &rVariables, MatrixType &rStressMatrix)
 
virtual void CalculateAndAddVolumetricStressTensor (HyperElasticDataType &rVariables, MatrixType &rStressMatrix)
 
virtual void CalculateAndAddConstitutiveTensor (HyperElasticDataType &rVariables, Matrix &rConstitutiveMatrix)
 
virtual void CalculateAndAddIsochoricConstitutiveTensor (HyperElasticDataType &rVariables, Matrix &rConstitutiveMatrix)
 
virtual void CalculateAndAddVolumetricConstitutiveTensor (HyperElasticDataType &rVariables, Matrix &rConstitutiveMatrix)
 
virtual double & AddConstitutiveComponent (HyperElasticDataType &rVariables, double &rCabcd, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
virtual double & AddIsochoricConstitutiveComponent (HyperElasticDataType &rVariables, double &rCabcd, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
virtual double & AddVolumetricConstitutiveComponent (HyperElasticDataType &rVariables, double &rCabcd, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
virtual void CalculateStrainData (ModelDataType &rValues, HyperElasticDataType &rVariables)
 
virtual void CalculateInvariants (HyperElasticDataType &rVariables)
 
virtual void CalculateScalingFactors (HyperElasticDataType &rVariables)
 
void CalculateStrainInvariants (const MatrixType &rStrainMatrix, double &rI1, double &rI2, double &rI3)
 
virtual void CalculateAndAddIsochoricStrainEnergy (HyperElasticDataType &rVariables, double &rIsochoricDensityFunction)
 
virtual void CalculateAndAddVolumetricStrainEnergy (HyperElasticDataType &rVariables, double &rVolumetricDensityFunction)
 
virtual double & GetVolumetricFunction1stJDerivative (HyperElasticDataType &rVariables, double &rDerivative)
 
virtual double & GetVolumetricFunction2ndJDerivative (HyperElasticDataType &rVariables, double &rDerivative)
 
MatrixType & GetJRightCauchyGreenDerivative (const StrainData &rStrain, MatrixType &rDerivative)
 
double & GetJRightCauchyGreen1stDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b)
 dJ/dC More...
 
double & GetJRightCauchyGreenSquare1stDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b, const double &c, const double &d)
 dJ/dC More...
 
double & GetJRightCauchyGreen2ndDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b, const double &c, const double &d)
 
MatrixType & GetJLeftCauchyGreenDerivative (const StrainData &rStrain, MatrixType &rDerivative)
 
double & GetJLeftCauchyGreen1stDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b)
 
double & GetJLeftCauchyGreenSquare1stDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b, const double &c, const double &d)
 
double & GetJLeftCauchyGreen2ndDerivative (const StrainData &rStrain, double &rDerivative, const double &a, const double &b, const double &c, const double &d)
 

Static Protected Attributes

Protected static Member Variables
static const MatrixType msIdentityMatrix = IdentityMatrix(3)
 

Type Definitions

typedef HyperElasticModelData HyperElasticDataType
 
 KRATOS_CLASS_POINTER_DEFINITION (HyperElasticModel)
 Pointer definition of HyperElasticModel. More...
 

Serialization

class Serializer
 

Additional Inherited Members

- Public Types inherited from Kratos::ConstitutiveModel
typedef ConstitutiveModelData::SizeType SizeType
 
typedef ConstitutiveModelData::VectorType VectorType
 
typedef ConstitutiveModelData::MatrixType MatrixType
 
typedef ConstitutiveModelData::ModelData ModelDataType
 
typedef ConstitutiveModelData::MaterialData MaterialDataType
 
typedef ConstitutiveModelData::StrainMeasureType StrainMeasureType
 
typedef ConstitutiveModelData::StressMeasureType StressMeasureType
 
- Protected Types inherited from Kratos::ConstitutiveModel
using VoigtIndexType = const unsigned int(*)[2]
 
- Protected Attributes inherited from Kratos::ConstitutiveModel
Flags mOptions
 
VectorType mHistoryVector
 

Detailed Description

Short class definition.

Detail class definition.

Member Typedef Documentation

◆ HyperElasticDataType

Constructor & Destructor Documentation

◆ HyperElasticModel() [1/2]

Kratos::HyperElasticModel::HyperElasticModel ( )

Default constructor.

◆ HyperElasticModel() [2/2]

Kratos::HyperElasticModel::HyperElasticModel ( HyperElasticModel const &  rOther)

Copy constructor.

◆ ~HyperElasticModel()

Kratos::HyperElasticModel::~HyperElasticModel ( )
override

Destructor.

Member Function Documentation

◆ AddConstitutiveComponent()

double & Kratos::HyperElasticModel::AddConstitutiveComponent ( HyperElasticDataType &  rVariables,
double &  rCabcd,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
protectedvirtual

Calculate Constitutive Components

Reimplemented in Kratos::MooneyRivlinModel, and Kratos::IsochoricMooneyRivlinModel.

◆ AddIsochoricConstitutiveComponent()

double & Kratos::HyperElasticModel::AddIsochoricConstitutiveComponent ( HyperElasticDataType &  rVariables,
double &  rCabcd,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
protectedvirtual

◆ AddVolumetricConstitutiveComponent()

double & Kratos::HyperElasticModel::AddVolumetricConstitutiveComponent ( HyperElasticDataType &  rVariables,
double &  rCabcd,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
protectedvirtual

◆ CalculateAndAddConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateAndAddConstitutiveTensor ( HyperElasticDataType &  rVariables,
Matrix &  rConstitutiveMatrix 
)
protectedvirtual

Calculate Constitutive Tensor

Reimplemented in Kratos::TamagniniModel, Kratos::OgdenModel, Kratos::IsochoricOgdenModel, and Kratos::BorjaModel.

◆ CalculateAndAddIsochoricConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateAndAddIsochoricConstitutiveTensor ( HyperElasticDataType &  rVariables,
Matrix &  rConstitutiveMatrix 
)
protectedvirtual

◆ CalculateAndAddIsochoricStrainEnergy()

void Kratos::HyperElasticModel::CalculateAndAddIsochoricStrainEnergy ( HyperElasticDataType &  rVariables,
double &  rIsochoricDensityFunction 
)
protectedvirtual

◆ CalculateAndAddIsochoricStressTensor()

void Kratos::HyperElasticModel::CalculateAndAddIsochoricStressTensor ( HyperElasticDataType &  rVariables,
MatrixType &  rStressMatrix 
)
protectedvirtual

◆ CalculateAndAddStressTensor()

void Kratos::HyperElasticModel::CalculateAndAddStressTensor ( HyperElasticDataType &  rVariables,
MatrixType &  rStressMatrix 
)
protectedvirtual

◆ CalculateAndAddVolumetricConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateAndAddVolumetricConstitutiveTensor ( HyperElasticDataType &  rVariables,
Matrix &  rConstitutiveMatrix 
)
protectedvirtual

◆ CalculateAndAddVolumetricStrainEnergy()

void Kratos::HyperElasticModel::CalculateAndAddVolumetricStrainEnergy ( HyperElasticDataType &  rVariables,
double &  rVolumetricDensityFunction 
)
protectedvirtual

◆ CalculateAndAddVolumetricStressTensor()

void Kratos::HyperElasticModel::CalculateAndAddVolumetricStressTensor ( HyperElasticDataType &  rVariables,
MatrixType &  rStressMatrix 
)
protectedvirtual

◆ CalculateConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateConstitutiveTensor ( ModelDataType &  rValues,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Calculate Constitutive Tensor

Reimplemented from Kratos::ConstitutiveModel.

Reimplemented in Kratos::SaintVenantKirchhoffModel, Kratos::OgdenModel, and Kratos::IsochoricOgdenModel.

◆ CalculateInvariants()

void Kratos::HyperElasticModel::CalculateInvariants ( HyperElasticDataType &  rVariables)
protectedvirtual

Reimplemented in Kratos::IsochoricOgdenModel.

◆ CalculateIsochoricConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateIsochoricConstitutiveTensor ( ModelDataType &  rValues,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ CalculateIsochoricStressAndConstitutiveTensors()

void Kratos::HyperElasticModel::CalculateIsochoricStressAndConstitutiveTensors ( ModelDataType &  rValues,
MatrixType &  rStressMatrix,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ CalculateIsochoricStressTensor()

void Kratos::HyperElasticModel::CalculateIsochoricStressTensor ( ModelDataType &  rValues,
MatrixType &  rStressMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ CalculateScalingFactors()

void Kratos::HyperElasticModel::CalculateScalingFactors ( HyperElasticDataType &  rVariables)
protectedvirtual

◆ CalculateStrainData()

void Kratos::HyperElasticModel::CalculateStrainData ( ModelDataType &  rValues,
HyperElasticDataType &  rVariables 
)
protectedvirtual

◆ CalculateStrainEnergy()

void Kratos::HyperElasticModel::CalculateStrainEnergy ( ModelDataType &  rValues,
double &  rDensityFunction 
)
overridevirtual

◆ CalculateStrainInvariants()

void Kratos::HyperElasticModel::CalculateStrainInvariants ( const MatrixType &  rStrainMatrix,
double &  rI1,
double &  rI2,
double &  rI3 
)
protected

◆ CalculateStressAndConstitutiveTensors()

void Kratos::HyperElasticModel::CalculateStressAndConstitutiveTensors ( ModelDataType &  rValues,
MatrixType &  rStressMatrix,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Calculate Stress and Constitutive Tensor

Reimplemented from Kratos::ConstitutiveModel.

Reimplemented in Kratos::SaintVenantKirchhoffModel, Kratos::IsochoricOgdenModel, and Kratos::IsochoricMooneyRivlinModel.

◆ CalculateStressTensor()

void Kratos::HyperElasticModel::CalculateStressTensor ( ModelDataType &  rValues,
MatrixType &  rStressMatrix 
)
overridevirtual

◆ CalculateVolumetricConstitutiveTensor()

void Kratos::HyperElasticModel::CalculateVolumetricConstitutiveTensor ( ModelDataType &  rValues,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ CalculateVolumetricStressAndConstitutiveTensors()

void Kratos::HyperElasticModel::CalculateVolumetricStressAndConstitutiveTensors ( ModelDataType &  rValues,
MatrixType &  rStressMatrix,
Matrix &  rConstitutiveMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ CalculateVolumetricStressTensor()

void Kratos::HyperElasticModel::CalculateVolumetricStressTensor ( ModelDataType &  rValues,
MatrixType &  rStressMatrix 
)
overridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ Check()

int Kratos::HyperElasticModel::Check ( const Properties &  rProperties,
const ProcessInfo &  rCurrentProcessInfo 
)
overridevirtual

◆ Clone()

ConstitutiveModel::Pointer Kratos::HyperElasticModel::Clone ( ) const
overridevirtual

◆ FinalizeModel()

void Kratos::HyperElasticModel::FinalizeModel ( ModelDataType &  rValues)
overridevirtual

Finalize member data

Reimplemented from Kratos::ConstitutiveModel.

◆ GetDomainVariablesList()

void Kratos::HyperElasticModel::GetDomainVariablesList ( std::vector< Variable< double > > &  rScalarVariables,
std::vector< Variable< array_1d< double, 3 > > > &  rComponentVariables 
)
inlineoverridevirtual

method to ask the plasticity model the list of variables (dofs) needed from the domain

Parameters
rScalarVariables: list of scalar dofs
rComponentVariables: list of vector dofs

Reimplemented from Kratos::ConstitutiveModel.

Reimplemented in Kratos::IncompressibleNeoHookeanModel.

◆ GetJLeftCauchyGreen1stDerivative()

double & Kratos::HyperElasticModel::GetJLeftCauchyGreen1stDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b 
)
protected

◆ GetJLeftCauchyGreen2ndDerivative()

double & Kratos::HyperElasticModel::GetJLeftCauchyGreen2ndDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
protected

◆ GetJLeftCauchyGreenDerivative()

HyperElasticModel::MatrixType & Kratos::HyperElasticModel::GetJLeftCauchyGreenDerivative ( const StrainData &  rStrain,
MatrixType &  rDerivative 
)
protected

◆ GetJLeftCauchyGreenSquare1stDerivative()

double & Kratos::HyperElasticModel::GetJLeftCauchyGreenSquare1stDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
protected

◆ GetJRightCauchyGreen1stDerivative()

double & Kratos::HyperElasticModel::GetJRightCauchyGreen1stDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b 
)
protected

dJ/dC

◆ GetJRightCauchyGreen2ndDerivative()

double & Kratos::HyperElasticModel::GetJRightCauchyGreen2ndDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
protected

◆ GetJRightCauchyGreenDerivative()

HyperElasticModel::MatrixType & Kratos::HyperElasticModel::GetJRightCauchyGreenDerivative ( const StrainData &  rStrain,
MatrixType &  rDerivative 
)
protected

◆ GetJRightCauchyGreenSquare1stDerivative()

double & Kratos::HyperElasticModel::GetJRightCauchyGreenSquare1stDerivative ( const StrainData &  rStrain,
double &  rDerivative,
const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
protected

dJ/dC

◆ GetVolumetricFunction1stJDerivative()

double & Kratos::HyperElasticModel::GetVolumetricFunction1stJDerivative ( HyperElasticDataType &  rVariables,
double &  rDerivative 
)
protectedvirtual

◆ GetVolumetricFunction2ndJDerivative()

double & Kratos::HyperElasticModel::GetVolumetricFunction2ndJDerivative ( HyperElasticDataType &  rVariables,
double &  rDerivative 
)
protectedvirtual

◆ Info()

std::string Kratos::HyperElasticModel::Info ( ) const
inlineoverridevirtual

◆ InitializeModel()

void Kratos::HyperElasticModel::InitializeModel ( ModelDataType &  rValues)
overridevirtual

Initialize member data

Reimplemented from Kratos::ConstitutiveModel.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::HyperElasticModel::KRATOS_CLASS_POINTER_DEFINITION ( HyperElasticModel  )

Pointer definition of HyperElasticModel.

◆ operator=()

HyperElasticModel & Kratos::HyperElasticModel::operator= ( HyperElasticModel const &  rOther)

Assignment operator.

◆ PrintData()

void Kratos::HyperElasticModel::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ PrintInfo()

void Kratos::HyperElasticModel::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

◆ SetValue() [1/2]

void Kratos::HyperElasticModel::SetValue ( const Variable< Matrix > &  rThisVariable,
const Matrix &  rValue,
const ProcessInfo &  rCurrentProcessInfo 
)
inlineoverridevirtual

Reimplemented from Kratos::ConstitutiveModel.

◆ SetValue() [2/2]

void Kratos::HyperElasticModel::SetValue ( const Variable< Vector > &  rThisVariable,
const Vector &  rValue,
const ProcessInfo &  rCurrentProcessInfo 
)
inlineoverridevirtual

Reimplemented from Kratos::ConstitutiveModel.

Reimplemented in Kratos::TamagniniModel.

Friends And Related Function Documentation

◆ Serializer

friend class Serializer
friend

Member Data Documentation

◆ msIdentityMatrix

const HyperElasticModel::MatrixType Kratos::HyperElasticModel::msIdentityMatrix = IdentityMatrix(3)
staticprotected

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