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.
|
#include <beam_math_utilities.hpp>
Public Types | |
typedef Matrix | MatrixType |
typedef Vector | VectorType |
typedef Quaternion< double > | QuaternionType |
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) |
typedef BeamMathUtils<TDataType> Kratos::BeamMathUtils< TDataType >::BeamMathUtilsType |
typedef MathUtils<TDataType> Kratos::BeamMathUtils< TDataType >::MathUtilsType |
typedef Matrix Kratos::BeamMathUtils< TDataType >::MatrixType |
name Type Definitions
typedef Quaternion<double> Kratos::BeamMathUtils< TDataType >::QuaternionType |
typedef Vector Kratos::BeamMathUtils< TDataType >::VectorType |
|
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)
rInputMatrix | The input matrix to be computed |
rInitialRow | The initial row to compute |
rInitialCol | The initial column to compute |
|
inlinestatic |
Add a Nodal vector to a Elemental vector
rInputVector | LocalNodalVector (input parameter) |
rOutputVector | LocalElementalVector (output parameter) |
InitialRow | InitialRowNumber, initial index of the OutputVector note the initialization of the outputvector must be done previously to the call of the method |
|
inlinestatic |
Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction
rLocalX | Local Beam axis vector (input parameter) |
rLocalY | Local axis 2 vector (input parameter) |
rRotationMatrix | transformation matrix from local to global frame (output parameter) |
|
inlinestatic |
Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction
rLocalX | Local Beam axis vector (input parameter) |
rRotationMatrix | transformation matrix from local to global frame (output parameter) |
|
inlinestatic |
Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction
rLocalX | Local Beam axis director vector E1 (input parameter) (output parameter) |
rLocalY | Local Beam axis director vector E2 (output parameter) |
rLocalZ | Local Beam axis director vector E3 (output parameter) |
|
inlinestatic |
Deffault expression for GID local beam axes:: E1 is considered the local beam axial direction
rLocalX | Local Beam axis director vector E1 (input parameter) (output parameter) |
rLocalY | Local Beam axis director vector E2 (input parameter) (output parameter) |
rLocalZ | Local Beam axis director vector E3 (output parameter) |
|
inlinestatic |
Transform a rotation vector to a rotation matrix with the Cayley transform
rVector | rotation vector (input parameter) |
rCayleyTensor | rotation matrix (output parameter) |
|
inlinestatic |
Check if a Tensor is orthogonal
rTensor | transformation matrix to be checked |
Name | Name of the checked tensor to be verbosed |
Verbose | Set verbosity for the check |
|
inlinestatic |
Transform a rotation vector to a rotation matrix with the Exponential transform
rVector | rotation vector (input parameter) |
rExponentialTensor | rotation matrix (output parameter) |
|
inlinestatic |
Transform a rotation tensor to a rotation vector with the inverse of the Cayley transform
rCayleyTensor | rotation matrix (input parameter) |
rVector | rotation vector (output parameter) |
|
inlinestatic |
Transform a rotation matrix to a rotation vector with the inverse of the Exponential transform
rCayleyTensor | rotation matrix (input parameter) |
rVector | rotation vector (output parameter) |
|
inlinestatic |
Get kroneckrDelta :: two order tensor that gives the value of the identity
i | coefficient i |
j | coefficient j Returns a double with the value |
|
inlinestatic |
Get Levi Civita Epsilon :: third order tensor that gives the value of a vectorial product
i | coefficient i |
j | coefficient j |
k | coefficient k Returns a double with the sign |
|
inlinestatic |
Map a Matrix expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalMatrix | transformation matrix from local to global frame |
rMatrix | matrix 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 |
|
inlinestatic |
Map a Vector expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalMatrix | transformation matrix from local to global frame |
rVector | vector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method |
|
inlinestatic |
Map a Matrix expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalQuaternion | transformation quaternion from local to global frame |
rMatrix | matrix 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 |
|
inlinestatic |
Map a Vector expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalQuaternion | transformation quaternion from local to global frame |
rVector | vector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method |
|
inlinestatic |
Map a Matrix expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalMatrix | transformation matrix from local to global frame |
rMatrix | matrix 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 |
|
inlinestatic |
Map a Vector expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalMatrix | transformation matrix from local to global frame |
rVector | vector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method |
|
inlinestatic |
Map a Matrix expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalQuaternion | transformation quaternion from local to global frame |
rMatrix | matrix 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 |
|
inlinestatic |
Map a Vector expressed on the Local frame of an element to a Global frame expression
rLocalToGlobalQuaternion | transformation quaternion from local to global frame |
rVector | vector to be transformed (output parameter) note the initialization of the Matrices must be done previously to the call of the method |
|
inlinestatic |
name Math Utilities for beams Transform a vector from the reference to the current local frame (MATERIAL frame for a beam)
rQuaternion | Quaternion representing the rotation from the reference to the current local frames |
rVector | Vector to be rotated the rotated vector rVector is returned. |
|
inlinestatic |
Transform a vector from the current to the reference local frame (SPATIAL frame for a beam)
rQuaternion | Quaternion representing the rotation from the reference to the current local frames |
rVector | Vector to be rotated the rotated vector rVariable is returned. |
|
inlinestatic |
Transform a skew symmetric matrix to a rotation vector
rSkewSymmetricTensor | skew symmetric matrix (input parameter) |
rVector | rotation vector (output parameter) |
|
inlinestatic |
Substract a Nodal vector from an Elemental vector
rInputVector | LocalNodalVector (input parameter) |
rOutputVector | LocalElementalVector (output parameter) |
InitialRow | InitialRowNumber, initial index of the OutputVector note the initialization of the outputvector must be done previously to the call of the method |
|
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)
rInputMatrix | The input matrix to be computed |
rInitialRow | The initial row to compute |
rInitialCol | The initial column to compute |
|
inlinestatic |
Transform a rotation vector to a skew symmetric matrix
rVector | rotation vector (input parameter) |
rSkewSymmetricTensor | skew symmetric matrix (output parameter) |