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::BeamMathUtils< TDataType > Class Template Reference

#include <beam_math_utilities.hpp>

Collaboration diagram for Kratos::BeamMathUtils< TDataType >:

Public Types

typedef Matrix MatrixType
 
typedef Vector VectorType
 
typedef Quaternion< doubleQuaternionType
 
typedef MathUtils< TDataType > MathUtilsType
 
typedef BeamMathUtils< TDataType > BeamMathUtilsType
 

Static Public Member Functions

template<class TVector3 >
static TVector3 & MapToCurrentLocalFrame (QuaternionType &rQuaternion, TVector3 &rVector)
 
template<class TVector3 >
static TVector3 & MapToReferenceLocalFrame (QuaternionType &rQuaternion, TVector3 &rVector)
 
template<class TVector3 >
static void ExponentialTransform (const TVector3 &rVector, MatrixType &rExponentialTensor)
 
template<class TVector3 >
static void InverseExponentialTransform (const MatrixType &rExponentialTensor, TVector3 &rVector)
 
template<class TVector3 >
static void CayleyTransform (const TVector3 &rVector, MatrixType &rCayleyTensor)
 
template<class TVector3 >
static void InverseCayleyTransform (const MatrixType &rCayleyTensor, TVector3 &rVector)
 
template<class TVector3 , class TMatrix3 >
static void VectorToSkewSymmetricTensor (const TVector3 &rVector, TMatrix3 &rSkewSymmetricTensor)
 
template<class TMatrix3 , class TVector3 >
static void SkewSymmetricTensorToVector (const TMatrix3 &rSkewSymmetricTensor, TVector3 &rVector)
 
static double KroneckerDelta (int i, int j)
 
static double LeviCivitaEpsilon (int i, int j, int k)
 
static void AddVector (const VectorType &rInputVector, VectorType &rOutputVector, const unsigned int InitialRow)
 
static void SubstractVector (const VectorType &rInputVector, VectorType &rOutputVector, const unsigned int InitialRow)
 
template<class TMatrix , class TInputMatrix >
static void AddMatrix (TMatrix &rDestination, const TInputMatrix &rInputMatrix, const unsigned int rInitialRow, const unsigned int rInitialCol)
 
template<class TMatrix , class TInputMatrix >
static void SubtractMatrix (TMatrix &rDestination, const TInputMatrix &rInputMatrix, const unsigned int rInitialRow, const unsigned int rInitialCol)
 
static void MapLocalToGlobal2D (const QuaternionType &rLocalToGlobalQuaternion, MatrixType &rMatrix)
 
static void MapLocalToGlobal2D (const QuaternionType &rLocalToGlobalQuaternion, VectorType &rVector)
 
static void MapLocalToGlobal2D (const MatrixType &rLocalToGlobalMatrix, MatrixType &rMatrix)
 
static void MapLocalToGlobal2D (const MatrixType &rLocalToGlobalMatrix, VectorType &rVector)
 
static void MapLocalToGlobal3D (const QuaternionType &rLocalToGlobalQuaternion, MatrixType &rMatrix)
 
static void MapLocalToGlobal3D (const QuaternionType &rLocalToGlobalQuaternion, VectorType &rVector)
 
static void MapLocalToGlobal3D (const MatrixType &rLocalToGlobalMatrix, MatrixType &rMatrix)
 
static void MapLocalToGlobal3D (const MatrixType &rLocalToGlobalMatrix, VectorType &rVector)
 
template<class TVector3 >
static void CalculateLocalAxesMatrix (const TVector3 &rLocalX, MatrixType &rRotationMatrix)
 
template<class TVector3 >
static void CalculateLocalAxesVectors (TVector3 &rLocalX, TVector3 &rLocalY, TVector3 &rLocalZ)
 
template<class TVector3 >
static void CalculateLocalAxesMatrix (const TVector3 &rLocalX, const TVector3 &rLocalY, MatrixType &rRotationMatrix)
 
template<class TVector3 >
static void CalculateLocalAxisVector (TVector3 &rLocalX, TVector3 &rLocalY, TVector3 &rLocalZ)
 
static bool CheckOrthogonality (const Matrix &rTensor, const std::string &Name, bool Verbose)
 

Member Typedef Documentation

◆ BeamMathUtilsType

template<class TDataType >
typedef BeamMathUtils<TDataType> Kratos::BeamMathUtils< TDataType >::BeamMathUtilsType

◆ MathUtilsType

template<class TDataType >
typedef MathUtils<TDataType> Kratos::BeamMathUtils< TDataType >::MathUtilsType

◆ MatrixType

template<class TDataType >
typedef Matrix Kratos::BeamMathUtils< TDataType >::MatrixType

name Type Definitions

◆ QuaternionType

template<class TDataType >
typedef Quaternion<double> Kratos::BeamMathUtils< TDataType >::QuaternionType

◆ VectorType

template<class TDataType >
typedef Vector Kratos::BeamMathUtils< TDataType >::VectorType

Member Function Documentation

◆ AddMatrix()

template<class TDataType >
template<class TMatrix , class TInputMatrix >
static void Kratos::BeamMathUtils< TDataType >::AddMatrix ( TMatrix &  rDestination,
const TInputMatrix &  rInputMatrix,
const unsigned int  rInitialRow,
const unsigned int  rInitialCol 
)
inlinestatic

"InputMatrix" is ADDED to "Destination" matrix starting from InitialRow and InitialCol of the destination matrix "Destination" is assumed to be able to contain the "input matrix" (no check is performed on the bounds)

Returns
rDestination: The matric destination
Parameters
rInputMatrixThe input matrix to be computed
rInitialRowThe initial row to compute
rInitialColThe initial column to compute

◆ AddVector()

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::AddVector ( const VectorType rInputVector,
VectorType rOutputVector,
const unsigned int  InitialRow 
)
inlinestatic

Add a Nodal vector to a Elemental vector

Parameters
rInputVectorLocalNodalVector (input parameter)
rOutputVectorLocalElementalVector (output parameter)
InitialRowInitialRowNumber, initial index of the OutputVector note the initialization of the outputvector must be done previously to the call of the method

◆ CalculateLocalAxesMatrix() [1/2]

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::CalculateLocalAxesMatrix ( const TVector3 &  rLocalX,
const TVector3 &  rLocalY,
MatrixType rRotationMatrix 
)
inlinestatic

Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction

Parameters
rLocalXLocal Beam axis vector (input parameter)
rLocalYLocal axis 2 vector (input parameter)
rRotationMatrixtransformation matrix from local to global frame (output parameter)

◆ CalculateLocalAxesMatrix() [2/2]

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::CalculateLocalAxesMatrix ( const TVector3 &  rLocalX,
MatrixType rRotationMatrix 
)
inlinestatic

Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction

Parameters
rLocalXLocal Beam axis vector (input parameter)
rRotationMatrixtransformation matrix from local to global frame (output parameter)

◆ CalculateLocalAxesVectors()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::CalculateLocalAxesVectors ( TVector3 &  rLocalX,
TVector3 &  rLocalY,
TVector3 &  rLocalZ 
)
inlinestatic

Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction

Parameters
rLocalXLocal Beam axis director vector E1 (input parameter) (output parameter)
rLocalYLocal Beam axis director vector E2 (output parameter)
rLocalZLocal Beam axis director vector E3 (output parameter)

◆ CalculateLocalAxisVector()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::CalculateLocalAxisVector ( TVector3 &  rLocalX,
TVector3 &  rLocalY,
TVector3 &  rLocalZ 
)
inlinestatic

Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction

Parameters
rLocalXLocal Beam axis director vector E1 (input parameter) (output parameter)
rLocalYLocal Beam axis director vector E2 (input parameter) (output parameter)
rLocalZLocal Beam axis director vector E3 (output parameter)

◆ CayleyTransform()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::CayleyTransform ( const TVector3 &  rVector,
MatrixType rCayleyTensor 
)
inlinestatic

Transform a rotation vector to a rotation matrix with the Cayley transform

Parameters
rVectorrotation vector (input parameter)
rCayleyTensorrotation matrix (output parameter)

◆ CheckOrthogonality()

template<class TDataType >
static bool Kratos::BeamMathUtils< TDataType >::CheckOrthogonality ( const Matrix rTensor,
const std::string &  Name,
bool  Verbose 
)
inlinestatic

Check if a Tensor is orthogonal

Parameters
rTensortransformation matrix to be checked
NameName of the checked tensor to be verbosed
VerboseSet verbosity for the check

◆ ExponentialTransform()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::ExponentialTransform ( const TVector3 &  rVector,
MatrixType rExponentialTensor 
)
inlinestatic

Transform a rotation vector to a rotation matrix with the Exponential transform

Parameters
rVectorrotation vector (input parameter)
rExponentialTensorrotation matrix (output parameter)

◆ InverseCayleyTransform()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::InverseCayleyTransform ( const MatrixType rCayleyTensor,
TVector3 &  rVector 
)
inlinestatic

Transform a rotation tensor to a rotation vector with the inverse of the Cayley transform

Parameters
rCayleyTensorrotation matrix (input parameter)
rVectorrotation vector (output parameter)

◆ InverseExponentialTransform()

template<class TDataType >
template<class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::InverseExponentialTransform ( const MatrixType rExponentialTensor,
TVector3 &  rVector 
)
inlinestatic

Transform a rotation matrix to a rotation vector with the inverse of the Exponential transform

Parameters
rCayleyTensorrotation matrix (input parameter)
rVectorrotation vector (output parameter)

◆ KroneckerDelta()

template<class TDataType >
static double Kratos::BeamMathUtils< TDataType >::KroneckerDelta ( int  i,
int  j 
)
inlinestatic

Get kroneckrDelta :: two order tensor that gives the value of the identity

Parameters
icoefficient i
jcoefficient j Returns a double with the value

◆ LeviCivitaEpsilon()

template<class TDataType >
static double Kratos::BeamMathUtils< TDataType >::LeviCivitaEpsilon ( int  i,
int  j,
int  k 
)
inlinestatic

Get Levi Civita Epsilon :: third order tensor that gives the value of a vectorial product

Parameters
icoefficient i
jcoefficient j
kcoefficient k Returns a double with the sign

◆ MapLocalToGlobal2D() [1/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal2D ( const MatrixType rLocalToGlobalMatrix,
MatrixType rMatrix 
)
inlinestatic

Map a Matrix expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalMatrixtransformation matrix from local to global frame
rMatrixmatrix to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method return value : A = Q * A' * QT

◆ MapLocalToGlobal2D() [2/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal2D ( const MatrixType rLocalToGlobalMatrix,
VectorType rVector 
)
inlinestatic

Map a Vector expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalMatrixtransformation matrix from local to global frame
rVectorvector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method

◆ MapLocalToGlobal2D() [3/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal2D ( const QuaternionType rLocalToGlobalQuaternion,
MatrixType rMatrix 
)
inlinestatic

Map a Matrix expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalQuaterniontransformation quaternion from local to global frame
rMatrixmatrix to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method return value : A = Q * A' * QT

◆ MapLocalToGlobal2D() [4/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal2D ( const QuaternionType rLocalToGlobalQuaternion,
VectorType rVector 
)
inlinestatic

Map a Vector expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalQuaterniontransformation quaternion from local to global frame
rVectorvector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method

◆ MapLocalToGlobal3D() [1/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal3D ( const MatrixType rLocalToGlobalMatrix,
MatrixType rMatrix 
)
inlinestatic

Map a Matrix expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalMatrixtransformation matrix from local to global frame
rMatrixmatrix to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method return value : A = Q * A' * QT

◆ MapLocalToGlobal3D() [2/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal3D ( const MatrixType rLocalToGlobalMatrix,
VectorType rVector 
)
inlinestatic

Map a Vector expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalMatrixtransformation matrix from local to global frame
rVectorvector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method

◆ MapLocalToGlobal3D() [3/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal3D ( const QuaternionType rLocalToGlobalQuaternion,
MatrixType rMatrix 
)
inlinestatic

Map a Matrix expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalQuaterniontransformation quaternion from local to global frame
rMatrixmatrix to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method return value : A = Q * A' * QT

◆ MapLocalToGlobal3D() [4/4]

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::MapLocalToGlobal3D ( const QuaternionType rLocalToGlobalQuaternion,
VectorType rVector 
)
inlinestatic

Map a Vector expressed on the Local frame of an element to a Global frame expression

Parameters
rLocalToGlobalQuaterniontransformation quaternion from local to global frame
rVectorvector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method

◆ MapToCurrentLocalFrame()

template<class TDataType >
template<class TVector3 >
static TVector3& Kratos::BeamMathUtils< TDataType >::MapToCurrentLocalFrame ( QuaternionType rQuaternion,
TVector3 &  rVector 
)
inlinestatic

name Math Utilities for beams Transform a vector from the reference to the current local frame (MATERIAL frame for a beam)

Parameters
rQuaternionQuaternion representing the rotation from the reference to the current local frames
rVectorVector to be rotated the rotated vector rVector is returned.

◆ MapToReferenceLocalFrame()

template<class TDataType >
template<class TVector3 >
static TVector3& Kratos::BeamMathUtils< TDataType >::MapToReferenceLocalFrame ( QuaternionType rQuaternion,
TVector3 &  rVector 
)
inlinestatic

Transform a vector from the current to the reference local frame (SPATIAL frame for a beam)

Parameters
rQuaternionQuaternion representing the rotation from the reference to the current local frames
rVectorVector to be rotated the rotated vector rVariable is returned.

◆ SkewSymmetricTensorToVector()

template<class TDataType >
template<class TMatrix3 , class TVector3 >
static void Kratos::BeamMathUtils< TDataType >::SkewSymmetricTensorToVector ( const TMatrix3 &  rSkewSymmetricTensor,
TVector3 &  rVector 
)
inlinestatic

Transform a skew symmetric matrix to a rotation vector

Parameters
rSkewSymmetricTensorskew symmetric matrix (input parameter)
rVectorrotation vector (output parameter)

◆ SubstractVector()

template<class TDataType >
static void Kratos::BeamMathUtils< TDataType >::SubstractVector ( const VectorType rInputVector,
VectorType rOutputVector,
const unsigned int  InitialRow 
)
inlinestatic

Substract a Nodal vector from an Elemental vector

Parameters
rInputVectorLocalNodalVector (input parameter)
rOutputVectorLocalElementalVector (output parameter)
InitialRowInitialRowNumber, initial index of the OutputVector note the initialization of the outputvector must be done previously to the call of the method

◆ SubtractMatrix()

template<class TDataType >
template<class TMatrix , class TInputMatrix >
static void Kratos::BeamMathUtils< TDataType >::SubtractMatrix ( TMatrix &  rDestination,
const TInputMatrix &  rInputMatrix,
const unsigned int  rInitialRow,
const unsigned int  rInitialCol 
)
inlinestatic

"InputMatrix" is SUBTRACTED to "Destination" matrix starting from InitialRow and InitialCol of the destination matrix "Destination" is assumed to be able to contain the "input matrix" (no check is performed on the bounds)

Returns
rDestination: The matric destination
Parameters
rInputMatrixThe input matrix to be computed
rInitialRowThe initial row to compute
rInitialColThe initial column to compute

◆ VectorToSkewSymmetricTensor()

template<class TDataType >
template<class TVector3 , class TMatrix3 >
static void Kratos::BeamMathUtils< TDataType >::VectorToSkewSymmetricTensor ( const TVector3 &  rVector,
TMatrix3 &  rSkewSymmetricTensor 
)
inlinestatic

Transform a rotation vector to a skew symmetric matrix

Parameters
rVectorrotation vector (input parameter)
rSkewSymmetricTensorskew symmetric matrix (output parameter)

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