chrono::fea::rotutils Namespace Reference

Description

Utility functions for rotations in 3D and their derivatives.

Adapted from the MBDyn library.

Functions

template<class T1 , class T2 >
void RotCo (const int cid, const T1 &phi, const ChVector<> &p, T2 *const cf)
 
template<class T1 , class T2 >
void CoeffA (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to a (COEFF_A)
 
template<class T1 , class T2 >
void CoeffB (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to b (COEFF_B)
 
template<class T1 , class T2 >
void CoeffC (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to c (COEFF_C)
 
template<class T1 , class T2 >
void CoeffD (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to d (COEFF_D)
 
template<class T1 , class T2 >
void CoeffE (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to e (COEFF_E)
 
template<class T1 , class T2 >
void CoeffF (const T1 &phi, const ChVector<> &p, T2 *const coeff)
 Coefficients: up to f (COEFF_F)
 
template<class T1 , class T2 >
void CoeffCStar (const T1 &phi, const ChVector<> &p, T2 *const coeff, T2 *const coeffs)
 Starred coefficients: up to c* (COEFF_C_STAR) Coefficients: up to d (COEFF_D)
 
template<class T1 , class T2 >
void CoeffEStar (const T1 &phi, const ChVector<> &p, T2 *const coeff, T2 *const coeffs)
 Starred coefficients: up to e* (COEFF_E_STAR) Coefficients: up to f (COEFF_F)
 
ChMatrix33 Rot (const ChVector<> &phi)
 Compute the rotation matrix Phi from Euler Rogriguez's parameters phi.
 
ChMatrix33 DRot (const ChVector<> &phi)
 Compute a G matrix from Euler Rogriguez's parameters Phi. More...
 
void RotAndDRot (const ChVector<> &phi, ChMatrix33<> &Phi, ChMatrix33<> &Ga)
 Compute rotation matrix Phi and Ga matrix from Euler Rogriguez's parameters Phi.
 
ChMatrix33 DRot_IT (const ChVector<> &phi)
 Compute the inverse transpose of G matrix from Euler Rogriguez's parameters Phi.
 
ChMatrix33 DRot_I (const ChVector<> &phi)
 Compute the inverse of G matrix from Euler Rogriguez's parameters Phi.
 
ChVector VecRot (const ChMatrix33<> &Phi)
 Compute Euler Rogriguez's parameters phi from rotation matrix Phi.
 
ChMatrix33 Elle (const ChVector<> &phi, const ChVector<> &a)
 Compute, given Euler Rogriguez's parameters phi, a L matrix such that dG * a = L(phi, a) * dphi.
 

Variables

const int COEFF_A = 1
 
const int COEFF_B = 2
 
const int COEFF_C = 3
 
const int COEFF_D = 4
 
const int COEFF_E = 5
 
const int COEFF_F = 6
 
const int COEFF_C_STAR = 1
 
const int COEFF_E_STAR = 2
 
const double SerCoeff [6][9]
 
const double SerTrunc [6]
 
const double SerThrsh [6]
 

Function Documentation

◆ DRot()

ChMatrix33 chrono::fea::rotutils::DRot ( const ChVector<> &  phi)

Compute a G matrix from Euler Rogriguez's parameters Phi.

G is defined in such a way that dPhi * PhiT = G * dphi.

Variable Documentation

◆ SerCoeff

const double chrono::fea::rotutils::SerCoeff[6][9]
Initial value:
= {
{1.,
-6., 120., -5040., 362880., -39916800., 6227020800., -1307674368000., 355687428096000.},
{2.,
-24., 720., -40320., 3628800., -479001600., 87178291200., -20922789888000., 6402373705728000.},
{6.,
-120., 5040., -362880., 39916800., -6227020800., 1307674368000., -355687428096000., 121645100408832000.},
{-12.,
180., -6720., 453600., -47900160., 7264857600., -1494484992000., 400148356608000., -135161222676480000.},
{-60.,
1260., -60480., 4989600., -622702080., 108972864000., -25406244864000., 7602818775552000., -2838385676206080000.},
{90.,
-1680., 75600., -5987520., 726485760., -124540416000., 28582025472000., -8447576417280000., 3122224243826688000.}}

◆ SerThrsh

const double chrono::fea::rotutils::SerThrsh[6]
Initial value:
= {1.1,
1.3,
1.5,
1.6,
1.7,
1.8}

◆ SerTrunc

const double chrono::fea::rotutils::SerTrunc[6]
Initial value:
= {9,
9,
9,
9,
9,
9}