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 MatrixTypeDeformationGradientTo3D (const MatrixType &rF, MatrixType &rF3D)
 
static MatrixTypeVelocityGradientTo3D (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 MatrixConstitutiveTensorToMatrix (const BoundedMatrix< double, 6, 6 > &rTensor, Matrix &rMatrix)
 
static MatrixTypeVectorToTensor (const Vector &rVector, MatrixType &rTensor)
 
static VectorTensorToVector (const MatrixType &rTensor, Vector &rVector)
 
static MatrixTypeVectorToSymmetricTensor (const array_1d< double, 6 > &rVector, MatrixType &rMatrix)
 
static void SymmetricTensorToVector (const MatrixType &rMatrix, array_1d< double, 6 > &rVector)
 
static MatrixTypeStrainVectorToTensor (const array_1d< double, 6 > &rVector, MatrixType &rMatrix)
 
static void StrainTensorToVector (const MatrixType &rMatrix, array_1d< double, 6 > &rVector)
 
static MatrixTypeStrainVectorToTensor (const Vector &rStrainVector, MatrixType &rStrainTensor)
 
static VectorStrainTensorToVector (const MatrixType &rStrainTensor, Vector &rStrainVector)
 
static MatrixTypeStressVectorToTensor (const Vector &rStressVector, MatrixType &rStressTensor)
 
static VectorStressTensorToVector (const MatrixType &rStressTensor, Vector &rStressVector)
 
static doubleCalculateStressNorm (const MatrixType &rStressMatrix, double &rStressNorm)
 
static doubleCalculateCharacteristicSize (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 doubleCalculateFourthOrderUnitTensor (double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static doubleCalculateFourthOrderUnitTensor (const MatrixType &rIdentityMatrix, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static doubleCalculateFourthOrderTensor (const MatrixType &rMatrix, double &rValue, const double &a, const double &b, const double &c, const double &d)
 
static doubleCalculateSquareTensorDerivative (const MatrixType &rMatrix, double &rValue, const unsigned int &a, const unsigned int &b, const unsigned int &c, const unsigned int &d)
 
static doubleCalculateSquareTensorDerivative (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 doubleCalculateFourthOrderTensorProduct (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 doubleCalculateFourthOrderTensorProduct (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 doubleCalculateFourthOrderTensorProduct (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 doubleCalculateFourthOrderTensorProduct (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 doubleTransformConstitutiveComponent (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 doubleGetConstitutiveComponent (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: