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::ConstitutiveModelUtilities Class Reference

Short class definition. More...

#include <constitutive_model_utilities.hpp>

Collaboration diagram for Kratos::ConstitutiveModelUtilities:

Public Types

Type Definitions
typedef BoundedMatrix< double, 3, 3 > MatrixType
 
typedef array_1d< double, 6 > VectorType
 

Public Member Functions

Life Cycle
 ConstitutiveModelUtilities ()
 Default constructor. More...
 
 ~ConstitutiveModelUtilities ()
 Destructor. More...
 

Static Public Member Functions

Operators
static MatrixType & DeformationGradientTo3D (const MatrixType &rF, MatrixType &rF3D)
 
static MatrixType & VelocityGradientTo3D (const MatrixType &rL, MatrixType &rL3D)
 
static void CalculateRightCauchyGreen (const MatrixType &rDeformationGradientF, MatrixType &rRightCauchyGreen)
 
static void CalculateLeftCauchyGreen (const Matrix &rDeformationGradientF, Matrix &rLeftCauchyGreen)
 
static void CalculateInverseLeftCauchyGreen (const Matrix &rDeformationGradientF, Matrix &rInverseLeftCauchyGreen)
 
static void RightCauchyToGreenLagrangeStrain (const MatrixType &rRightCauchyGreen, MatrixType &rStrainMatrix)
 
static void LeftCauchyToAlmansiStrain (const MatrixType &rLeftCauchyGreen, MatrixType &rStrainMatrix)
 
static void RightCauchyToGreenLagrangeStrain (const Matrix &rRightCauchyGreen, Vector &rStrainVector)
 
static void CalculateGreenLagrangeStrain (const Matrix &rDeformationGradientF, Vector &rStrainVector)
 
static void CalculateGreenLagrangeStrain (const MatrixType &rDeformationGradientF, MatrixType &rStrainMatrix)
 
static void LeftCauchyToAlmansiStrain (const Matrix &rLeftCauchyGreen, Vector &rStrainVector)
 
static void InverseLeftCauchyToAlmansiStrain (const Matrix &rInverseLeftCauchyGreen, Vector &rStrainVector)
 
static void CalculateAlmansiStrain (const Matrix &rDeformationGradientF, Vector &rStrainVector)
 
static void CalculateAlmansiStrain (const Matrix &rDeformationGradientF, Matrix &rStrainMatrix)
 
static Matrix & ConstitutiveTensorToMatrix (const BoundedMatrix< double, 6, 6 > &rTensor, Matrix &rMatrix)
 
static MatrixType & VectorToTensor (const Vector &rVector, MatrixType &rTensor)
 
static Vector & TensorToVector (const MatrixType &rTensor, Vector &rVector)
 
static MatrixType & VectorToSymmetricTensor (const array_1d< double, 6 > &rVector, MatrixType &rMatrix)
 
static void SymmetricTensorToVector (const MatrixType &rMatrix, array_1d< double, 6 > &rVector)
 
static MatrixType & StrainVectorToTensor (const array_1d< double, 6 > &rVector, MatrixType &rMatrix)
 
static void StrainTensorToVector (const MatrixType &rMatrix, array_1d< double, 6 > &rVector)
 
static MatrixType & StrainVectorToTensor (const Vector &rStrainVector, MatrixType &rStrainTensor)
 
static Vector & StrainTensorToVector (const MatrixType &rStrainTensor, Vector &rStrainVector)
 
static MatrixType & StressVectorToTensor (const Vector &rStressVector, MatrixType &rStressTensor)
 
static Vector & StressTensorToVector (const MatrixType &rStressTensor, Vector &rStressVector)
 
static double & CalculateStressNorm (const MatrixType &rStressMatrix, double &rStressNorm)
 
static double & CalculateCharacteristicSize (const Geometry< Node > &rDomainGeometry, double &rCharacteristicSize)
 
Operations
static void ComputePerturbationVector (Vector &rPerturbationVector, const Vector &InputVector)
 
static Vector EigenValuesDirectMethod (const Matrix &A)
 
static void InvertMatrix3 (const MatrixType &InputMatrix, MatrixType &InvertedMatrix, double &InputMatrixDet)
 
static void ComputePerturbationVector (VectorType &rPerturbationVector, const VectorType &InputVector)
 
static double & CalculateFourthOrderUnitTensor (double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderUnitTensor (const MatrixType &rIdentityMatrix, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderTensor (const MatrixType &rMatrix, double &rValue, const double &a, const double &b, const double &c, const double &d)
 
static double & CalculateSquareTensorDerivative (const MatrixType &rMatrix, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateSquareTensorDerivative (const MatrixType &rMatrix, const MatrixType &rIdentityMatrix, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderTensorProduct (const MatrixType &rMatrixA, const MatrixType &rMatrixB, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderTensorProduct (const array_1d< double, 3 > &rVectorA, const array_1d< double, 3 > &rVectorB, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderTensorProduct (const MatrixType &rMatrixA, const array_1d< double, 3 > &rVectorB, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & CalculateFourthOrderTensorProduct (const array_1d< double, 3 > &rVectorA, const MatrixType &rMatrixB, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static bool AreEqual (const double &rA, const double &rB)
 
static void PullBackConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF)
 
static void PushForwardConstitutiveMatrix (Matrix &rConstitutiveMatrix, const Matrix &rF)
 
static void ConstitutiveMatrixTransformation (Matrix &rConstitutiveMatrix, const Matrix &rOriginalConstitutiveMatrix, const Matrix &rF)
 
static double & TransformConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const Matrix &rF, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static double & GetConstitutiveComponent (double &rCabcd, const Matrix &rConstitutiveMatrix, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 

Detailed Description

Short class definition.

Detail class definition.

Member Typedef Documentation

◆ MatrixType

◆ VectorType

Constructor & Destructor Documentation

◆ ConstitutiveModelUtilities()

Kratos::ConstitutiveModelUtilities::ConstitutiveModelUtilities ( )
inline

Default constructor.

◆ ~ConstitutiveModelUtilities()

Kratos::ConstitutiveModelUtilities::~ConstitutiveModelUtilities ( )
inline

Destructor.

Member Function Documentation

◆ AreEqual()

static bool Kratos::ConstitutiveModelUtilities::AreEqual ( const double &  rA,
const double &  rB 
)
inlinestatic

Checks if two doubles are equal

Parameters
rAinput double
rBinput double

◆ CalculateAlmansiStrain() [1/2]

static void Kratos::ConstitutiveModelUtilities::CalculateAlmansiStrain ( const Matrix &  rDeformationGradientF,
Matrix &  rStrainMatrix 
)
inlinestatic

Computes the AlmansiStrain e = 0.5*(1-invFT*invF) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix 3x3
rStrainMatrixoutput matrix

◆ CalculateAlmansiStrain() [2/2]

static void Kratos::ConstitutiveModelUtilities::CalculateAlmansiStrain ( const Matrix &  rDeformationGradientF,
Vector &  rStrainVector 
)
inlinestatic

Computes the AlmansiStrain e = 0.5*(1-invFT*invF) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ CalculateCharacteristicSize()

static double& Kratos::ConstitutiveModelUtilities::CalculateCharacteristicSize ( const Geometry< Node > &  rDomainGeometry,
double &  rCharacteristicSize 
)
inlinestatic

Computes the Characteristic Size of a Geometry

Parameters
rDomainGeomtryinput ElementGeometry
rCharacteristicSizeoutput Size of the Geometry

◆ CalculateFourthOrderTensor()

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderTensor ( const MatrixType &  rMatrix,
double &  rValue,
const double &  a,
const double &  b,
const double &  c,
const double &  d 
)
inlinestatic

Computes fourth order unit tensor

Parameters
rMatrixinput tensor identity matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderTensorProduct() [1/4]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderTensorProduct ( const array_1d< double, 3 > &  rVectorA,
const array_1d< double, 3 > &  rVectorB,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the FourthOrder Tensor Product

Parameters
rVectorAinput vector 3
rVectorBinput vector 3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderTensorProduct() [2/4]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderTensorProduct ( const array_1d< double, 3 > &  rVectorA,
const MatrixType &  rMatrixB,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the FourthOrder Tensor Product

Parameters
rVectorAinput vector 3
rMatrixBinput tensor matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderTensorProduct() [3/4]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderTensorProduct ( const MatrixType &  rMatrixA,
const array_1d< double, 3 > &  rVectorB,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the FourthOrder Tensor Product

Parameters
rMatrixAinput tensor matrix 3x3
rVectorBinput vector 3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderTensorProduct() [4/4]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderTensorProduct ( const MatrixType &  rMatrixA,
const MatrixType &  rMatrixB,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the FourthOrder Tensor Product

Parameters
rMatrixAinput tensor matrix 3x3
rMatrixBinput tensor matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderUnitTensor() [1/2]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderUnitTensor ( const MatrixType &  rIdentityMatrix,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes fourth order unit tensor

Parameters
rIdentityMatrixinput tensor identity matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateFourthOrderUnitTensor() [2/2]

static double& Kratos::ConstitutiveModelUtilities::CalculateFourthOrderUnitTensor ( double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes fourth order unit tensor

Parameters
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateGreenLagrangeStrain() [1/2]

static void Kratos::ConstitutiveModelUtilities::CalculateGreenLagrangeStrain ( const Matrix &  rDeformationGradientF,
Vector &  rStrainVector 
)
inlinestatic

Computes the GreenLagrangeStrain E= 0.5*(FT*F-1) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ CalculateGreenLagrangeStrain() [2/2]

static void Kratos::ConstitutiveModelUtilities::CalculateGreenLagrangeStrain ( const MatrixType &  rDeformationGradientF,
MatrixType &  rStrainMatrix 
)
inlinestatic

Computes the GreenLagrangeStrain E= 0.5*(FT*F-1) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix 3x3
rStrainMatrixoutput matrix

◆ CalculateInverseLeftCauchyGreen()

static void Kratos::ConstitutiveModelUtilities::CalculateInverseLeftCauchyGreen ( const Matrix &  rDeformationGradientF,
Matrix &  rInverseLeftCauchyGreen 
)
inlinestatic

Computes the InverseLeftCauchyGreen (invb=invFT*invF) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix
rRightCauchyGreenoutput matrix correct dimensions for the input/output is needed

◆ CalculateLeftCauchyGreen()

static void Kratos::ConstitutiveModelUtilities::CalculateLeftCauchyGreen ( const Matrix &  rDeformationGradientF,
Matrix &  rLeftCauchyGreen 
)
inlinestatic

Computes the LeftCauchyGreen (b=F*FT) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix
rRightCauchyGreenoutput matrix correct dimensions for the input/output is needed

◆ CalculateRightCauchyGreen()

static void Kratos::ConstitutiveModelUtilities::CalculateRightCauchyGreen ( const MatrixType &  rDeformationGradientF,
MatrixType &  rRightCauchyGreen 
)
inlinestatic

Computes the RightCauchyGreen (C=FT*F) given the DeformationGradientF

Parameters
rDeformationGradientFinput matrix
rRightCauchyGreenoutput matrix correct dimensions for the input/output is needed

◆ CalculateSquareTensorDerivative() [1/2]

static double& Kratos::ConstitutiveModelUtilities::CalculateSquareTensorDerivative ( const MatrixType &  rMatrix,
const MatrixType &  rIdentityMatrix,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the Square Tensor Derivative

Parameters
rMatrixinput tensor matrix 3x3
rIdentityMatrixinput tensor identity matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateSquareTensorDerivative() [2/2]

static double& Kratos::ConstitutiveModelUtilities::CalculateSquareTensorDerivative ( const MatrixType &  rMatrix,
double &  rValue,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

Computes the Square Tensor Derivative

Parameters
rMatrixinput tensor matrix 3x3
rValueoutput double
aindex for the fourth order tensor
bindex for the fourth order tensor
cindex for the fourth order tensor
dindex for the fourth order tensor

◆ CalculateStressNorm()

static double& Kratos::ConstitutiveModelUtilities::CalculateStressNorm ( const MatrixType &  rStressMatrix,
double &  rStressNorm 
)
inlinestatic

Computes the Stress Norm

Parameters
rStressMatrixinput matrix 3x3
rStressNormoutput double

◆ ComputePerturbationVector() [1/2]

static void Kratos::ConstitutiveModelUtilities::ComputePerturbationVector ( Vector &  rPerturbationVector,
const Vector &  InputVector 
)
inlinestatic

Calculates perturbations in each direction of a given vector.

Parameters
InputVectorthe given vector used to obtain the perturbations.

◆ ComputePerturbationVector() [2/2]

static void Kratos::ConstitutiveModelUtilities::ComputePerturbationVector ( VectorType &  rPerturbationVector,
const VectorType &  InputVector 
)
inlinestatic

Calculates perturbations in each direction of a given vector.

Parameters
InputVectorthe given vector used to obtain the perturbations.

◆ ConstitutiveMatrixTransformation()

static void Kratos::ConstitutiveModelUtilities::ConstitutiveMatrixTransformation ( Matrix &  rConstitutiveMatrix,
const Matrix &  rOriginalConstitutiveMatrix,
const Matrix &  rF 
)
inlinestatic

This method performs a pull-back or a push-forward between two constitutive matrices

◆ ConstitutiveTensorToMatrix()

static Matrix& Kratos::ConstitutiveModelUtilities::ConstitutiveTensorToMatrix ( const BoundedMatrix< double, 6, 6 > &  rTensor,
Matrix &  rMatrix 
)
inlinestatic

Transforms a given 3D Constitutive Tensor to VoigtSize Constitutive Matrix: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (VoigtSize*VoightSize) Vector

Parameters
rTensorthe given second order tensor in matrix form
rMatrixthe corresponding second order tensor in voigt size matrix form

◆ DeformationGradientTo3D()

static MatrixType& Kratos::ConstitutiveModelUtilities::DeformationGradientTo3D ( const MatrixType &  rF,
MatrixType &  rF3D 
)
inlinestatic

Takes a matrix 2x2 and transforms it to a 3x3 adding a 3rd row and a 3rd column with a 1 in the diagonal if the matrix passed is 3D is does nothing if the matrix passed is bigger or smaller throws an error

Parameters
rF: the DeformationGradientF in 2D / 3D
rF3D: the DeformationGradientF in 3D

◆ EigenValuesDirectMethod()

static Vector Kratos::ConstitutiveModelUtilities::EigenValuesDirectMethod ( const Matrix &  A)
inlinestatic

calculates the eigenvectiors using a direct method.

Parameters
Athe given square matrix the eigenvalues are to be calculated. WARNING only valid symmetric 3*3 Matrices

◆ GetConstitutiveComponent()

static double& Kratos::ConstitutiveModelUtilities::GetConstitutiveComponent ( double &  rCabcd,
const Matrix &  rConstitutiveMatrix,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

This method gets the constitutive tensor components from a consitutive matrix supplied in voigt notation

◆ InverseLeftCauchyToAlmansiStrain()

static void Kratos::ConstitutiveModelUtilities::InverseLeftCauchyToAlmansiStrain ( const Matrix &  rInverseLeftCauchyGreen,
Vector &  rStrainVector 
)
inlinestatic

Computes the AlmansiStrain e = 0.5*(1-inv(b)) given the InverseCauchyGreenTensor

Parameters
rInverseLeftCauchyGreeninput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ InvertMatrix3()

static void Kratos::ConstitutiveModelUtilities::InvertMatrix3 ( const MatrixType &  InputMatrix,
MatrixType &  InvertedMatrix,
double &  InputMatrixDet 
)
inlinestatic

It inverts matrices of order 3 //VERIFIED!!!

Parameters
InputMatrixIs the input matrix (unchanged at output)
Returns
InvertedMatrix: Is the inverse of the input matrix
InputMatrixDet: Is the determinant of the input matrix

◆ LeftCauchyToAlmansiStrain() [1/2]

static void Kratos::ConstitutiveModelUtilities::LeftCauchyToAlmansiStrain ( const Matrix &  rLeftCauchyGreen,
Vector &  rStrainVector 
)
inlinestatic

Computes the AlmansiStrain e = 0.5*(1-inv(b)) given the InverseCauchyGreenTensor

Parameters
rInverseLeftCauchyGreeninput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ LeftCauchyToAlmansiStrain() [2/2]

static void Kratos::ConstitutiveModelUtilities::LeftCauchyToAlmansiStrain ( const MatrixType &  rLeftCauchyGreen,
MatrixType &  rStrainMatrix 
)
inlinestatic

Computes the AlmansiStrain e = 0.5*(1-inv(b)) given the InverseCauchyGreenTensor

Parameters
rInverseLeftCauchyGreeninput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ PullBackConstitutiveMatrix()

static void Kratos::ConstitutiveModelUtilities::PullBackConstitutiveMatrix ( Matrix &  rConstitutiveMatrix,
const Matrix &  rF 
)
inlinestatic

Methods to transform Constitutive Matrices:

Parameters
rConstitutiveMatrixthe constitutive matrix
rFthe DeformationGradientF matrix between the configurations This method performs a pull-back of the constitutive matrix

◆ PushForwardConstitutiveMatrix()

static void Kratos::ConstitutiveModelUtilities::PushForwardConstitutiveMatrix ( Matrix &  rConstitutiveMatrix,
const Matrix &  rF 
)
inlinestatic

This method performs a push-forward of the constitutive matrix

◆ RightCauchyToGreenLagrangeStrain() [1/2]

static void Kratos::ConstitutiveModelUtilities::RightCauchyToGreenLagrangeStrain ( const Matrix &  rRightCauchyGreen,
Vector &  rStrainVector 
)
inlinestatic

Computes the GreenLagrangeStrain E= 0.5*(C-1) given the RightCauchyGreenTensor

Parameters
rRightCauchyGreeninput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ RightCauchyToGreenLagrangeStrain() [2/2]

static void Kratos::ConstitutiveModelUtilities::RightCauchyToGreenLagrangeStrain ( const MatrixType &  rRightCauchyGreen,
MatrixType &  rStrainMatrix 
)
inlinestatic

Computes the GreenLagrangeStrain E= 0.5*(C-1) given the RightCauchyGreenTensor

Parameters
rRightCauchyGreeninput matrix 3x3
rStrainVectoroutput vector correct dimensions for the input/output is needed

◆ StrainTensorToVector() [1/2]

static void Kratos::ConstitutiveModelUtilities::StrainTensorToVector ( const MatrixType &  rMatrix,
array_1d< double, 6 > &  rVector 
)
inlinestatic

Transforms a given 3D symmetric Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector

Parameters
rMatrixthe given symmetric second order tensor in matrix form
rVectorthe corresponding second order tensor in vector form

◆ StrainTensorToVector() [2/2]

static Vector& Kratos::ConstitutiveModelUtilities::StrainTensorToVector ( const MatrixType &  rStrainTensor,
Vector &  rStrainVector 
)
inlinestatic

Transforms a given symmetric Strain Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector in the 2Da case: from a second order tensor (3*3) Matrix to a corresponing (4*1) Vector in the 2D case: from a second order tensor (3*3) Matrix to a corresponing (3*1) Vector

Parameters
rStrainTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ StrainVectorToTensor() [1/2]

static MatrixType& Kratos::ConstitutiveModelUtilities::StrainVectorToTensor ( const array_1d< double, 6 > &  rVector,
MatrixType &  rMatrix 
)
inlinestatic

Transforms a given 3D symmetric Tensor from Voigt notation to Matrix notation in the 3D case: from a second order tensor (6*1) Vector to a corresponing (3*3) Matrix

Parameters
rVectorthe given symmetric second order tensor in vector form
rMatrixthe corresponding second order tensor in matrix form

◆ StrainVectorToTensor() [2/2]

static MatrixType& Kratos::ConstitutiveModelUtilities::StrainVectorToTensor ( const Vector &  rStrainVector,
MatrixType &  rStrainTensor 
)
inlinestatic

Transforms a given symmetric Strain Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector in the 2Da case: from a second order tensor (3*3) Matrix to a corresponing (4*1) Vector in the 2D case: from a second order tensor (3*3) Matrix to a corresponing (3*1) Vector

Parameters
rStrainTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ StressTensorToVector()

static Vector& Kratos::ConstitutiveModelUtilities::StressTensorToVector ( const MatrixType &  rStressTensor,
Vector &  rStressVector 
)
inlinestatic

Transforms a given symmetric Stress Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector in the 2Da case: from a second order tensor (3*3) Matrix to a corresponing (4*1) Vector in the 2D case: from a second order tensor (3*3) Matrix to a corresponing (3*1) Vector

Parameters
rStressTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ StressVectorToTensor()

static MatrixType& Kratos::ConstitutiveModelUtilities::StressVectorToTensor ( const Vector &  rStressVector,
MatrixType &  rStressTensor 
)
inlinestatic

Transforms a given symmetric Stress Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector in the 2Da case: from a second order tensor (3*3) Matrix to a corresponing (4*1) Vector in the 2D case: from a second order tensor (3*3) Matrix to a corresponing (3*1) Vector

Parameters
rStressTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ SymmetricTensorToVector()

static void Kratos::ConstitutiveModelUtilities::SymmetricTensorToVector ( const MatrixType &  rMatrix,
array_1d< double, 6 > &  rVector 
)
inlinestatic

Transforms a given 3D symmetric Tensor to Voigt Notation: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (6*1) Vector

Parameters
rMatrixthe given symmetric second order tensor in matrix form
rVectorthe corresponding second order tensor in vector form

◆ TensorToVector()

static Vector& Kratos::ConstitutiveModelUtilities::TensorToVector ( const MatrixType &  rTensor,
Vector &  rVector 
)
inlinestatic

Transforms a given non symmetric Tensor to a Vector: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (9*1) Vector in the 2D case: from a second order tensor (2*2) Matrix to a corresponing (4*1) Vector

Parameters
rTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ TransformConstitutiveComponent()

static double& Kratos::ConstitutiveModelUtilities::TransformConstitutiveComponent ( double &  rCabcd,
const Matrix &  rConstitutiveMatrix,
const Matrix &  rF,
const unsigned int &  a,
const unsigned int &  b,
const unsigned int &  c,
const unsigned int &  d 
)
inlinestatic

This method performs a pull-back or a push-forward between two constitutive tensor components

◆ VectorToSymmetricTensor()

static MatrixType& Kratos::ConstitutiveModelUtilities::VectorToSymmetricTensor ( const array_1d< double, 6 > &  rVector,
MatrixType &  rMatrix 
)
inlinestatic

Transforms a given 3D symmetric Tensor from Voigt notation to Matrix notation in the 3D case: from a second order tensor (6*1) Vector to a corresponing (3*3) Matrix

Parameters
rVectorthe given symmetric second order tensor in vector form
rMatrixthe corresponding second order tensor in matrix form

◆ VectorToTensor()

static MatrixType& Kratos::ConstitutiveModelUtilities::VectorToTensor ( const Vector &  rVector,
MatrixType &  rTensor 
)
inlinestatic

Transforms a given Vector to a non symmetric 3D Tensor: in the 3D case: from a second order tensor (3*3) Matrix to a corresponing (9*1) Vector in the 2D case: from a second order tensor (3*3) Matrix to a corresponing (4*1) Vector

Parameters
rTensorthe given symmetric second order stress tensor
Returns
the corresponding stress tensor in vector form

◆ VelocityGradientTo3D()

static MatrixType& Kratos::ConstitutiveModelUtilities::VelocityGradientTo3D ( const MatrixType &  rL,
MatrixType &  rL3D 
)
inlinestatic

Takes a matrix 2x2 and transforms it to a 3x3 adding a 3rd row and a 3rd column with a 0 in the diagonal if the matrix passed is 3D is does nothing if the matrix passed is bigger or smaller throws an error

Parameters
rL: the VelocityGradient in 2D / 3D
rL3D: the VelocityGradient in 3D

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