PhyStar  v0.0.0 thu24
dmdyn::angular Namespace Reference

basic function of angular dynamics of particle More...

Classes

struct  EulerAngleToee
 

Enumerations

enum class  EulerAngleType {
  kXYZ = 0 , kXZY , kXYX , kXZX ,
  kYXZ , kYZX , kYXY , kYZY ,
  kZXY , kZYX , kZXZ , kZYZ
}
 

Functions

template<typename T_real = double>
void eeToRleft (const T_real e[], T_real R[])
 transfer Euler quaterions to left rotate matrix More...
 
template<typename T_real = double>
void eeToRright (const T_real e[], T_real R[])
 transfer Euler quaterions to right rotate matrix More...
 
template<typename T_real = double>
void eeToRboth (const T_real e[], T_real Rleft[], T_real Rright[])
 transfer Euler quaterions to both left and right rotate matrix More...
 
template<typename T_real = double>
void eeNormalized (T_real e[])
 to keep norm of Euler quaterions equal to one More...
 
template<typename T_real = double>
void eeFromRotateAxisAndAngle (const T_real dir[], const T_real theta, T_real e[])
 get Euler quaterins from a rotate axis and a rotate angle More...
 
template<typename T_real = double>
void Rtranspose3DimSelf (T_real R[])
 transpose of Roation matrix (3x3) itself More...
 
template<typename T_real = double>
void Rtranspose3Dim (const T_real Rin[], T_real Rout[])
 transpose of rotate matrix (3x3) More...
 
template<typename T_real = double>
void RleftToee (const T_real Rleft[], T_real e[])
 transfer left rotate to Euler Quaterions More...
 
template<typename T_real = double>
void RrightToee (const T_real Rleft[], T_real e[])
 transfer right rotate to Euler Quaterions More...
 
template<typename T_real = double>
void Mat3xMat3 (const T_real matleft[], const T_real matright[], T_real matout[])
 dot between two 3x3 matrices More...
 
template<typename T_real = double>
void Mat2xMat2 (const T_real matleft[], const T_real matright[], T_real matout[])
 dot between two 2x2 matrices More...
 
template<typename T_real = double>
void Mat3xVec3 (const T_real mat[], const T_real vec[], T_real vecout[])
 dot between 3x3 matrix and 3x1 vector More...
 
template<typename T_real = double>
void Mat2xVec2 (const T_real mat[], const T_real vec[], T_real vecout[])
 dot between 2x2 matrix and 2x1 vector More...
 
template<typename T_real = double>
void DotVec3 (const T_real vec0[], const T_real vec1[], T_real &out)
 dot between two vectors More...
 
template<typename T_real = double>
void DotVec2 (const T_real vec0[], const T_real vec1[], T_real &out)
 dot between two vectors More...
 
template<typename T_real = double>
void CrossVec3 (const T_real vec0[], const T_real vec1[], T_real out[])
 cross between tow vector More...
 
template<typename T_real = double>
void MatFromPFToIF3Dim (const T_real matin[], const T_real Rleft[], const T_real Rright[], T_real matout[])
 transfer 3x3 matrix from particle frame to inertial frame More...
 
template<typename T_real = double>
void MatFromPFToIF3DimByee (const T_real matin[], const T_real ee[], T_real matout[])
 transfer 3x3 matrix from particle frame to inertial frame, by ee More...
 
template<typename T_real = double>
void VecFromPFToIF3Dim (const T_real vecin[], const T_real Rleft[], const T_real Rright[], T_real vecout[])
 transfer 3x1 vec from particle frame to inertial frame More...
 
template<typename T_real = double>
void VecFromPFToIF3DimByee (const T_real vecin[], const T_real ee[], T_real vecout[])
 transfer 3x1 vec from particle frame to inertial frame by ee More...
 
template<typename T_real = double>
void MatFromIFToPF3Dim (const T_real matin[], const T_real Rleft[], const T_real Rright[], T_real matout[])
 transfer 3x3 matrix from inertial frame to particle frame More...
 
template<typename T_real = double>
void MatFromIFToPF3DimByee (const T_real matin[], const T_real ee[], T_real matout[])
 transfer 3x3 matrix from inertial frame to particle frame by ee More...
 
template<typename T_real = double>
void VecFromIFToPF3Dim (const T_real vecin[], const T_real Rleft[], const T_real Rright[], T_real vecout[])
 transfer 3x1 vec from particle frame to inertial frame More...
 
template<typename T_real = double>
void VecFromIFToPF3DimByee (const T_real vecin[], const T_real ee[], T_real vecout[])
 
template<typename T_real = double>
void DirToee (const T_real dir[], const T_real base[], T_real e[])
 get euler quaterions from a director More...
 
template<typename T_real = double>
void eeToDir (const T_real ee[], const T_real base[], T_real dir[])
 get director from euler quaterions More...
 
template<typename T_real = double>
void RandomR (T_real R[])
 generate a random rotate matrix More...
 
template<typename T_real = double>
void RandomDir (T_real vec[])
 generate a random direction More...
 
template<typename T_real = double>
void MatFromIFToPF2Dim (const T_real matin[], const T_real Rleft[], const T_real Rright[], T_real matout[])
 transfer 2x2 matrix from inertial frame to particle frame More...
 
template<typename T_real = double>
void MatFromIFToPF2DimByee (const T_real matin[], const T_real ee[], T_real matout[])
 transfer 2x2 matrix from inertial frame to particle frame by ee More...
 
template<typename T_real = double>
void AngvelTodee (const T_real angvel[], const T_real ee[], T_real dee[])
 obtain the difference in ee from angular velocity More...
 
template<typename T_real >
T_real DotVec3 (const Vec3< T_real > vec0, const Vec3< T_real > vec1)
 
template<typename T_real >
T_real DotVec2 (const Vec2< T_real > &vec0, const Vec2< T_real > &vec1)
 
template<typename T_real >
void MatFromIFToPF2DimByee (const T_real matin[], const T_real ee, T_real matout[])
 
template<typename T_real = double>
void eeToRleft (Vec4< T_real > &e, Mat3< T_real > &R)
 
template<typename T_real = double>
Mat3< T_real > eeToRleft (Vec4< T_real > &e)
 
template<typename T_real = double>
void eeToRright (Vec4< T_real > &e, Mat3< T_real > &R)
 
template<typename T_real = double>
Mat3< T_real > eeToRright (Vec4< T_real > &e)
 
template<typename T_real = double>
void Mat3xMat3 (Mat3< T_real > &matleft, Mat3< T_real > &matright, Mat3< T_real > &matout)
 
template<typename T_real = double>
Mat3< T_real > Mat3xMat3 (Mat3< T_real > &matleft, Mat3< T_real > &matright)
 
template<typename T_real = double>
void Mat2xMat2 (Mat2< T_real > &matleft, Mat2< T_real > &matright, Mat2< T_real > &matout)
 
template<typename T_real = double>
Mat2< T_real > Mat2xMat2 (Mat2< T_real > &matleft, Mat2< T_real > &matright)
 
template<typename T_real = double>
void Mat3xVec3 (Mat3< T_real > &matleft, Vec3< T_real > &matright, Vec3< T_real > &matout)
 
template<typename T_real = double>
Vec3< T_real > Mat3xVec3 (Mat3< T_real > &matleft, Vec3< T_real > &matright)
 
template<typename T_real = double>
void Mat2xVec2 (Mat2< T_real > &matleft, Vec2< T_real > &matright, Vec2< T_real > &matout)
 
template<typename T_real = double>
Vec2< T_real > Mat2xVec2 (Mat2< T_real > &matleft, Vec2< T_real > &matright)
 
template<typename T_real >
void CrossVec3 (Vec3< T_real > &vec0, Vec3< T_real > &vec1, Vec3< T_real > &out)
 
template<typename T_real >
Vec3< T_real > CrossVec3 (Vec3< T_real > &vec0, Vec3< T_real > &vec1)
 
template<typename T_real >
void VecFromPFToIF3Dim (Vec3< T_real > &vecin, Mat3< T_real > &Rleft, Mat3< T_real > &Rright, Vec3< T_real > &vecout)
 
template<typename T_real >
Vec3< T_real > VecFromPFToIF3Dim (Vec3< T_real > &vecin, Mat3< T_real > &Rleft, Mat3< T_real > &Rright)
 
template<typename T_real >
void VecFromPFToIF3DimByee (Vec3< T_real > &vecin, Vec4< T_real > &ee, Vec3< T_real > &vecout)
 
template<typename T_real >
Vec3< T_real > VecFromPFToIF3DimByee (Vec3< T_real > &vecin, Vec4< T_real > &ee)
 
template<typename T_real >
void VecFromIFToPF3DimByee (Vec3< T_real > &vecin, Vec4< T_real > &ee, Vec3< T_real > &vecout)
 
template<typename T_real >
Vec3< T_real > VecFromIFToPF3DimByee (Vec3< T_real > &vecin, Vec4< T_real > &ee)
 
template<typename T_real = double>
void EulerAngleToee_XYZ (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_XZY (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_XYX (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_XZX (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_YXZ (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_YZX (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_YXY (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_YZY (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_ZXY (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_ZYX (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_ZXZ (const T_real theta[], T_real e[])
 
template<typename T_real = double>
void EulerAngleToee_ZYZ (const T_real theta[], T_real e[])
 

Detailed Description

basic function of angular dynamics of particle

transformation between different Euler angles and Euler quaterions

Enumeration Type Documentation

◆ EulerAngleType

Enumerator
kXYZ 
kXZY 
kXYX 
kXZX 
kYXZ 
kYZX 
kYXY 
kYZY 
kZXY 
kZYX 
kZXZ 
kZYZ 

Function Documentation

◆ AngvelTodee()

template<typename T_real = double>
void dmdyn::angular::AngvelTodee ( const T_real  angvel[],
const T_real  ee[],
T_real  dee[] 
)

obtain the difference in ee from angular velocity

Template Parameters
T_real
Parameters
angvel3x1 vector, angular velocity
ee4x1 vector, current ee
dee4x1 vector, difference in ee

◆ CrossVec3() [1/3]

template<typename T_real = double>
void dmdyn::angular::CrossVec3 ( const T_real  vec0[],
const T_real  vec1[],
T_real  out[] 
)

cross between tow vector

Template Parameters
T_real
Parameters
[in]vec03x1 vector
[in]vec13x1 vector
[out]out3x1 vector
Here is the caller graph for this function:

◆ CrossVec3() [2/3]

template<typename T_real >
Vec3<T_real> dmdyn::angular::CrossVec3 ( Vec3< T_real > &  vec0,
Vec3< T_real > &  vec1 
)

References CrossVec3().

Here is the call graph for this function:

◆ CrossVec3() [3/3]

template<typename T_real >
void dmdyn::angular::CrossVec3 ( Vec3< T_real > &  vec0,
Vec3< T_real > &  vec1,
Vec3< T_real > &  out 
)

References CrossVec3().

Here is the call graph for this function:

◆ DirToee()

template<typename T_real = double>
void dmdyn::angular::DirToee ( const T_real  dir[],
const T_real  base[],
T_real  e[] 
)

get euler quaterions from a director

Template Parameters
T_real
Parameters
[in]dirdirector,3x1
[in]basebase vector,3x1
  • [1,0,0]: base on x axis in particle frame
  • [0,1,0]: base on y axis in particle frame
  • [0,0,1]: base on z axis in particle frame
[out]eEuler quaterions, 4x1
Here is the caller graph for this function:

◆ DotVec2() [1/2]

template<typename T_real = double>
void dmdyn::angular::DotVec2 ( const T_real  vec0[],
const T_real  vec1[],
T_real &  out 
)

dot between two vectors

Template Parameters
T_real
Parameters
[in]vec02x1 vector
[in]vec12x1 vector
[out]out1 scalar

◆ DotVec2() [2/2]

template<typename T_real >
T_real dmdyn::angular::DotVec2 ( const Vec2< T_real > &  vec0,
const Vec2< T_real > &  vec1 
)

◆ DotVec3() [1/2]

template<typename T_real = double>
void dmdyn::angular::DotVec3 ( const T_real  vec0[],
const T_real  vec1[],
T_real &  out 
)

dot between two vectors

Template Parameters
T_real
Parameters
[in]vec03x1 vector
[in]vec13x1 vector
[out]out1 scalar

◆ DotVec3() [2/2]

template<typename T_real >
T_real dmdyn::angular::DotVec3 ( const Vec3< T_real >  vec0,
const Vec3< T_real >  vec1 
)

◆ eeFromRotateAxisAndAngle()

template<typename T_real = double>
void dmdyn::angular::eeFromRotateAxisAndAngle ( const T_real  dir[],
const T_real  theta,
T_real  e[] 
)

get Euler quaterins from a rotate axis and a rotate angle

Template Parameters
T_real
Parameters
[in]dirdirection of rotate axis
[in]thetarotate angle about roatation axis
[out]eEuler quaterions, 4-length array

◆ eeNormalized()

template<typename T_real = double>
void dmdyn::angular::eeNormalized ( T_real  e[])

to keep norm of Euler quaterions equal to one

Template Parameters
T_real
Parameters
eEuler quaterions, 4-length array
Here is the caller graph for this function:

◆ eeToDir()

template<typename T_real = double>
void dmdyn::angular::eeToDir ( const T_real  ee[],
const T_real  base[],
T_real  dir[] 
)

get director from euler quaterions

Template Parameters
T_real
Parameters
[in]eeEuler quaterions, 4x1
[in]basebase vector,3x1
  • [1,0,0]: base on x axis in particle frame
  • [0,1,0]: base on y axis in particle frame
  • [0,0,1]: base on z axis in particle frame
[out]dirdirector, 3x1

◆ eeToRboth()

template<typename T_real = double>
void dmdyn::angular::eeToRboth ( const T_real  e[],
T_real  Rleft[],
T_real  Rright[] 
)

transfer Euler quaterions to both left and right rotate matrix

Template Parameters
T_realdefault: double
Parameters
[in]eEuler quaterions, 4-length array
[out]Rleftleft rotate matrix, 3x3 matrix
[out]Rrightright rotate matrix, 3x3 matrix

◆ eeToRleft() [1/3]

template<typename T_real = double>
void dmdyn::angular::eeToRleft ( const T_real  e[],
T_real  R[] 
)

transfer Euler quaterions to left rotate matrix

calculate left rotation matrix from euler quaternion

Template Parameters
T_realdefault: double
Parameters
[in]eEuler quaterions, 4-length array
[out]Rleft rotate matrix, 3x3 matrix
Template Parameters
T_real
Parameters
eeuler quaternion
Rleft rotation matrix, R11 = R[0], R12 = R[1], ... R33 = R[8]
Here is the caller graph for this function:

◆ eeToRleft() [2/3]

template<typename T_real = double>
Mat3<T_real> dmdyn::angular::eeToRleft ( Vec4< T_real > &  e)
inline

References eeToRleft().

Here is the call graph for this function:

◆ eeToRleft() [3/3]

template<typename T_real = double>
void dmdyn::angular::eeToRleft ( Vec4< T_real > &  e,
Mat3< T_real > &  R 
)
inline

References eeToRleft().

Here is the call graph for this function:

◆ eeToRright() [1/3]

template<typename T_real = double>
void dmdyn::angular::eeToRright ( const T_real  e[],
T_real  R[] 
)

transfer Euler quaterions to right rotate matrix

Template Parameters
T_realdefault: double
Parameters
[in]eEuler quaterions, 4-length array
[out]Rright rotate matrix, 3x3 matrix
Here is the caller graph for this function:

◆ eeToRright() [2/3]

template<typename T_real = double>
Mat3<T_real> dmdyn::angular::eeToRright ( Vec4< T_real > &  e)
inline

References eeToRright().

Here is the call graph for this function:

◆ eeToRright() [3/3]

template<typename T_real = double>
void dmdyn::angular::eeToRright ( Vec4< T_real > &  e,
Mat3< T_real > &  R 
)
inline

References eeToRright().

Here is the call graph for this function:

◆ EulerAngleToee_XYX()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_XYX ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_XYZ()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_XYZ ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_XZX()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_XZX ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_XZY()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_XZY ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_YXY()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_YXY ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_YXZ()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_YXZ ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_YZX()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_YZX ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_YZY()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_YZY ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_ZXY()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_ZXY ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_ZXZ()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_ZXZ ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_ZYX()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_ZYX ( const T_real  theta[],
T_real  e[] 
)

◆ EulerAngleToee_ZYZ()

template<typename T_real = double>
void dmdyn::angular::EulerAngleToee_ZYZ ( const T_real  theta[],
T_real  e[] 
)

◆ Mat2xMat2() [1/3]

template<typename T_real = double>
void dmdyn::angular::Mat2xMat2 ( const T_real  matleft[],
const T_real  matright[],
T_real  matout[] 
)

dot between two 2x2 matrices

Template Parameters
T_real
Parameters
[in]matleft
[in]matright
[out]matout
Here is the caller graph for this function:

◆ Mat2xMat2() [2/3]

template<typename T_real = double>
Mat2<T_real> dmdyn::angular::Mat2xMat2 ( Mat2< T_real > &  matleft,
Mat2< T_real > &  matright 
)
inline

References Mat2xMat2().

Here is the call graph for this function:

◆ Mat2xMat2() [3/3]

template<typename T_real = double>
void dmdyn::angular::Mat2xMat2 ( Mat2< T_real > &  matleft,
Mat2< T_real > &  matright,
Mat2< T_real > &  matout 
)
inline

References Mat2xMat2().

Here is the call graph for this function:

◆ Mat2xVec2() [1/3]

template<typename T_real = double>
void dmdyn::angular::Mat2xVec2 ( const T_real  mat[],
const T_real  vec[],
T_real  vecout[] 
)

dot between 2x2 matrix and 2x1 vector

Template Parameters
T_real
Parameters
[in]mat2x2 matrix
[in]vec2x1 vector
[out]vecout2x1 vector
Here is the caller graph for this function:

◆ Mat2xVec2() [2/3]

template<typename T_real = double>
Vec2<T_real> dmdyn::angular::Mat2xVec2 ( Mat2< T_real > &  matleft,
Vec2< T_real > &  matright 
)
inline

References Mat2xVec2().

Here is the call graph for this function:

◆ Mat2xVec2() [3/3]

template<typename T_real = double>
void dmdyn::angular::Mat2xVec2 ( Mat2< T_real > &  matleft,
Vec2< T_real > &  matright,
Vec2< T_real > &  matout 
)
inline

References Mat2xVec2().

Here is the call graph for this function:

◆ Mat3xMat3() [1/3]

template<typename T_real = double>
void dmdyn::angular::Mat3xMat3 ( const T_real  matleft[],
const T_real  matright[],
T_real  matout[] 
)

dot between two 3x3 matrices

Template Parameters
T_real
Parameters
[in]matleft
[in]matright
[out]matout
Here is the caller graph for this function:

◆ Mat3xMat3() [2/3]

template<typename T_real = double>
Mat3<T_real> dmdyn::angular::Mat3xMat3 ( Mat3< T_real > &  matleft,
Mat3< T_real > &  matright 
)
inline

References Mat3xMat3().

Here is the call graph for this function:

◆ Mat3xMat3() [3/3]

template<typename T_real = double>
void dmdyn::angular::Mat3xMat3 ( Mat3< T_real > &  matleft,
Mat3< T_real > &  matright,
Mat3< T_real > &  matout 
)
inline

References Mat3xMat3().

Here is the call graph for this function:

◆ Mat3xVec3() [1/3]

template<typename T_real = double>
void dmdyn::angular::Mat3xVec3 ( const T_real  mat[],
const T_real  vec[],
T_real  vecout[] 
)

dot between 3x3 matrix and 3x1 vector

Template Parameters
T_real
Parameters
[in]mat3x3 matrix
[in]vec3x1 vector
[out]vecout3x1 vector
Here is the caller graph for this function:

◆ Mat3xVec3() [2/3]

template<typename T_real = double>
Vec3<T_real> dmdyn::angular::Mat3xVec3 ( Mat3< T_real > &  matleft,
Vec3< T_real > &  matright 
)
inline

References Mat3xVec3().

Here is the call graph for this function:

◆ Mat3xVec3() [3/3]

template<typename T_real = double>
void dmdyn::angular::Mat3xVec3 ( Mat3< T_real > &  matleft,
Vec3< T_real > &  matright,
Vec3< T_real > &  matout 
)
inline

References Mat3xVec3().

Here is the call graph for this function:

◆ MatFromIFToPF2Dim()

template<typename T_real = double>
void dmdyn::angular::MatFromIFToPF2Dim ( const T_real  matin[],
const T_real  Rleft[],
const T_real  Rright[],
T_real  matout[] 
)

transfer 2x2 matrix from inertial frame to particle frame

Template Parameters
T_real
Parameters
[in]matin2x2, matrix in inertial frame
[in]Rleft2x2, left rotate matrix
[in]Rright2x2, right rotate matrix
[out]matout2x2, matrix in particle frame

◆ MatFromIFToPF2DimByee() [1/2]

template<typename T_real >
void dmdyn::angular::MatFromIFToPF2DimByee ( const T_real  matin[],
const T_real  ee,
T_real  matout[] 
)

◆ MatFromIFToPF2DimByee() [2/2]

template<typename T_real = double>
void dmdyn::angular::MatFromIFToPF2DimByee ( const T_real  matin[],
const T_real  ee[],
T_real  matout[] 
)

transfer 2x2 matrix from inertial frame to particle frame by ee

Template Parameters
T_real
Parameters
[in]matin2x2, matrix in inertial frame
[in]ee4, Euler quaterions
[out]matout2x2, matrix in particle frame

◆ MatFromIFToPF3Dim()

template<typename T_real = double>
void dmdyn::angular::MatFromIFToPF3Dim ( const T_real  matin[],
const T_real  Rleft[],
const T_real  Rright[],
T_real  matout[] 
)

transfer 3x3 matrix from inertial frame to particle frame

Template Parameters
T_real
Parameters
[in]matin3x3, matrix in inertial frame
[in]Rleft3x3, left rotate matrix
[in]Rright3x3, right rotate matrix
[out]matout3x3, matrix in particle frame

◆ MatFromIFToPF3DimByee()

template<typename T_real = double>
void dmdyn::angular::MatFromIFToPF3DimByee ( const T_real  matin[],
const T_real  ee[],
T_real  matout[] 
)

transfer 3x3 matrix from inertial frame to particle frame by ee

Template Parameters
T_real
Parameters
[in]matin3x3, matrix in inertial frame
[in]ee4, Euler quaterions
[out]matout3x3, matrix in particle frame
Here is the caller graph for this function:

◆ MatFromPFToIF3Dim()

template<typename T_real = double>
void dmdyn::angular::MatFromPFToIF3Dim ( const T_real  matin[],
const T_real  Rleft[],
const T_real  Rright[],
T_real  matout[] 
)

transfer 3x3 matrix from particle frame to inertial frame

Template Parameters
T_real
Parameters
[in]matin3x3, matrix in particle frame
[in]Rleft3x3, left rotate matrix
[in]Rright3x3, right rotate matrix
[out]matout3x3, matrix in inertial frame

◆ MatFromPFToIF3DimByee()

template<typename T_real = double>
void dmdyn::angular::MatFromPFToIF3DimByee ( const T_real  matin[],
const T_real  ee[],
T_real  matout[] 
)

transfer 3x3 matrix from particle frame to inertial frame, by ee

Template Parameters
T_real
Parameters
[in]matin3x3, matrix in particle frame
[in]ee4, Euler quaterions
[out]matout3x3, matrix in inertial frame

◆ RandomDir()

template<typename T_real = double>
void dmdyn::angular::RandomDir ( T_real  vec[])

generate a random direction

Template Parameters
T_real
Parameters
vec3x1 vector

References mathconst::PI, and RandomNumber< T_real >::randr().

Here is the call graph for this function:

◆ RandomR()

template<typename T_real = double>
void dmdyn::angular::RandomR ( T_real  R[])

generate a random rotate matrix

Template Parameters
T_real
Parameters
Rrotate matrix,3x3

References mathconst::PI, and RandomNumber< T_real >::randr().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RleftToee()

template<typename T_real = double>
void dmdyn::angular::RleftToee ( const T_real  Rleft[],
T_real  e[] 
)

transfer left rotate to Euler Quaterions

Template Parameters
T_real
Parameters
[in]Rleftleft rotate matrix, 3x3 array
[out]eEuler quaterions, 4-length array

References quadpack::max().

Here is the call graph for this function:

◆ RrightToee()

template<typename T_real = double>
void dmdyn::angular::RrightToee ( const T_real  Rleft[],
T_real  e[] 
)

transfer right rotate to Euler Quaterions

Template Parameters
T_real
Parameters
[in]Rrightright rotate matrix, 3x3 array
[out]eEuler quaterions, 4-length array

References quadpack::max().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Rtranspose3Dim()

template<typename T_real = double>
void dmdyn::angular::Rtranspose3Dim ( const T_real  Rin[],
T_real  Rout[] 
)

transpose of rotate matrix (3x3)

Template Parameters
T_real
Parameters
[in]Rinin, rotate materix,3x3 array
[out]Routout, rotate materix,3x3 array

◆ Rtranspose3DimSelf()

template<typename T_real = double>
void dmdyn::angular::Rtranspose3DimSelf ( T_real  R[])

transpose of Roation matrix (3x3) itself

Template Parameters
T_real
Parameters
Rrotate materix,3x3 array

◆ VecFromIFToPF3Dim()

template<typename T_real = double>
void dmdyn::angular::VecFromIFToPF3Dim ( const T_real  vecin[],
const T_real  Rleft[],
const T_real  Rright[],
T_real  vecout[] 
)

transfer 3x1 vec from particle frame to inertial frame

Template Parameters
T_real
Parameters
[in]vecin3x1, matrix in inertial frame
[in]Rleft3x3, left rotate matrix
[in]Rright3x3, right rotate matrix
[out]vecout3x1, matrix in particle frame

◆ VecFromIFToPF3DimByee() [1/3]

template<typename T_real = double>
void dmdyn::angular::VecFromIFToPF3DimByee ( const T_real  vecin[],
const T_real  ee[],
T_real  vecout[] 
)
Template Parameters
T_real
Parameters
[in]vecin3x3, matrix in inertial frame
[in]ee4, Euler quaterions
[out]vecout3x3, matrix in particle frame

References eeToRright().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VecFromIFToPF3DimByee() [2/3]

template<typename T_real >
Vec3<T_real> dmdyn::angular::VecFromIFToPF3DimByee ( Vec3< T_real > &  vecin,
Vec4< T_real > &  ee 
)

References eeToRright().

Here is the call graph for this function:

◆ VecFromIFToPF3DimByee() [3/3]

template<typename T_real >
void dmdyn::angular::VecFromIFToPF3DimByee ( Vec3< T_real > &  vecin,
Vec4< T_real > &  ee,
Vec3< T_real > &  vecout 
)

References eeToRright().

Here is the call graph for this function:

◆ VecFromPFToIF3Dim() [1/3]

template<typename T_real = double>
void dmdyn::angular::VecFromPFToIF3Dim ( const T_real  vecin[],
const T_real  Rleft[],
const T_real  Rright[],
T_real  vecout[] 
)

transfer 3x1 vec from particle frame to inertial frame

Template Parameters
T_real
Parameters
[in]vecin3x1, matrix in particle frame
[in]Rleft3x3, left rotate matrix
[in]Rright3x3, right rotate matrix
[out]vecout3x1, matrix in inertial frame

◆ VecFromPFToIF3Dim() [2/3]

template<typename T_real >
Vec3<T_real> dmdyn::angular::VecFromPFToIF3Dim ( Vec3< T_real > &  vecin,
Mat3< T_real > &  Rleft,
Mat3< T_real > &  Rright 
)

◆ VecFromPFToIF3Dim() [3/3]

template<typename T_real >
void dmdyn::angular::VecFromPFToIF3Dim ( Vec3< T_real > &  vecin,
Mat3< T_real > &  Rleft,
Mat3< T_real > &  Rright,
Vec3< T_real > &  vecout 
)

◆ VecFromPFToIF3DimByee() [1/3]

template<typename T_real = double>
void dmdyn::angular::VecFromPFToIF3DimByee ( const T_real  vecin[],
const T_real  ee[],
T_real  vecout[] 
)

transfer 3x1 vec from particle frame to inertial frame by ee

Template Parameters
T_real
Parameters
[in]vecin3x1, matrix in particle frame
[in]ee4, Euler quaterions
[out]vecout3x1, matrix in inertial frame

References eeToRleft().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VecFromPFToIF3DimByee() [2/3]

template<typename T_real >
Vec3<T_real> dmdyn::angular::VecFromPFToIF3DimByee ( Vec3< T_real > &  vecin,
Vec4< T_real > &  ee 
)

References eeToRleft().

Here is the call graph for this function:

◆ VecFromPFToIF3DimByee() [3/3]

template<typename T_real >
void dmdyn::angular::VecFromPFToIF3DimByee ( Vec3< T_real > &  vecin,
Vec4< T_real > &  ee,
Vec3< T_real > &  vecout 
)

References eeToRleft().

Here is the call graph for this function: