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 ChVector3d &p, T2 *const cf) |
template<class T1 , class T2 > | |
void | CoeffA (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to a (COEFF_A) | |
template<class T1 , class T2 > | |
void | CoeffB (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to b (COEFF_B) | |
template<class T1 , class T2 > | |
void | CoeffC (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to c (COEFF_C) | |
template<class T1 , class T2 > | |
void | CoeffD (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to d (COEFF_D) | |
template<class T1 , class T2 > | |
void | CoeffE (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to e (COEFF_E) | |
template<class T1 , class T2 > | |
void | CoeffF (const T1 &phi, const ChVector3d &p, T2 *const coeff) |
Coefficients: up to f (COEFF_F) | |
template<class T1 , class T2 > | |
void | CoeffCStar (const T1 &phi, const ChVector3d &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 ChVector3d &p, T2 *const coeff, T2 *const coeffs) |
Starred coefficients: up to e* (COEFF_E_STAR) Coefficients: up to f (COEFF_F) | |
ChMatrix33 | Rot (const ChVector3d &phi) |
Compute the rotation matrix Phi from Euler Rogriguez's parameters phi. | |
ChMatrix33 | DRot (const ChVector3d &phi) |
Compute a G matrix from Euler Rogriguez's parameters Phi. More... | |
void | RotAndDRot (const ChVector3d &phi, ChMatrix33<> &Phi, ChMatrix33<> &Ga) |
Compute rotation matrix Phi and Ga matrix from Euler Rogriguez's parameters Phi. | |
ChMatrix33 | DRot_IT (const ChVector3d &phi) |
Compute the inverse transpose of G matrix from Euler Rogriguez's parameters Phi. | |
ChMatrix33 | DRot_I (const ChVector3d &phi) |
Compute the inverse of G matrix from Euler Rogriguez's parameters Phi. | |
ChVector3d | VecRot (const ChMatrix33<> &Phi) |
Compute Euler Rogriguez's parameters phi from rotation matrix Phi. | |
ChMatrix33 | Elle (const ChVector3d &phi, const ChVector3d &a) |
Compute, given Euler Rogriguez's parameters phi, a L matrix such that dG * a = L(phi, a) * dphi. | |
Function Documentation
◆ DRot()
ChMatrix33 chrono::fea::rotutils::DRot | ( | const ChVector3d & | 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}