FEDEM Solver  R8.0
Source code of the dynamics solver
Data Types | Modules | Functions/Subroutines | Variables
rotationModule.f90 File Reference

Utilities for manipulation of finite rotations. More...

Data Types

interface  rotationmodule::eccexpand
 Takes into account possible eccentricity. More...
 
interface  rotationmodule::ffa_eulerzyx
 Computes the EulerZYX angles for a relative rotation. More...
 
interface  rotationmodule::ffa_glbeulerzyx
 Computes the EulerZYX angles for a global rotation. More...
 

Modules

module  rotationmodule
 Module with subroutines for manipulation of finite rotations.
 

Functions/Subroutines

real(dp) function, dimension(3) rotationmodule::mattoeulerxyz (R, eulerIn, err)
 Converts a rotation matrix (tensor) to EulerXYZ angles. More...
 
real(dp) function adjust2pi (a)
 Adjusts an angle such that it is in the interval [0,2π]. More...
 
real(dp) function dist (a, b, g)
 Calculates the distance between the angles a,b,g and euler. More...
 
logical function setisok (a, b, g)
 Checks the consistency of an Euler angle set. More...
 
real(dp) function, dimension(3, 3) rotationmodule::eulertomat (euler)
 Converts a set of EulerXYZ angles into a rotation matrix. More...
 
subroutine rotationmodule::vec_to_mat (rvec, rten, lpu)
 Computes the rotation tensor from a rotation vector. More...
 
subroutine rotationmodule::mat_to_vec (rten, rvec)
 Computes the rotation vector from a rotation tensor. More...
 
subroutine rotationmodule::vec_to_quat (rvec, q, lpu)
 Computes the quaternion representation from a rotation vector. More...
 
subroutine rotationmodule::mat_to_quat (rten, q)
 Computes the quaternion representation from a rotation tensor. More...
 
subroutine rotationmodule::quat_to_mat (q, rten)
 Computes the rotation tensor from a quaternion representation. More...
 
subroutine rotationmodule::quat_to_vec (q, rvec)
 Computes the rotation vector from a quaternion representation. More...
 
real(dp) function, dimension(3) rotationmodule::deltarot (T1, T2)
 Computes the incremental rotation vector rotating tensor T1 to T2. More...
 
subroutine rotationmodule::orthonorm3 (rten)
 Makes a rotation tensor orthonormal through use of quaternions. More...
 
subroutine rotationmodule::spin (vec, mat)
 Computes the spin (skew-symmetric) tensor from the rotation vector. More...
 
subroutine rotationmodule::dtheta_domega (thetaVec, jacobiMat, lpu)
 Computes the variation of a rotation pseudo vector. More...
 
real(dp) function etafunc (th, lpu)
 Evaluates the parameter η. More...
 
subroutine rotationmodule::domega_dtheta (thetaVec, jacobiMat, lpu)
 Computes the inverse of the variation of a rotation pseudo vector. More...
 
subroutine, private rotationmodule::eccexpandvec (e, v, vFull)
 Takes into account possible eccentricity. More...
 
subroutine, private rotationmodule::eccexpandmat (e, M, Mfull)
 Takes into account possible eccentricity. More...
 
subroutine, private rotationmodule::eccexpanddiagmat (e, D, Mfull)
 Takes into account possible eccentricity, for a diagonal matrix D. More...
 

Variables

real(dp), parameter, private rotationmodule::epsth2_p = 0.0005_dp
 Angles zero-tolerance. More...
 

Detailed Description

Utilities for manipulation of finite rotations.

Function/Subroutine Documentation

◆ adjust2pi()

real(dp) function mattoeulerxyz::adjust2pi ( real(dp), intent(in)  a)

Adjusts an angle such that it is in the interval [0,2π].

◆ dist()

real(dp) function mattoeulerxyz::dist ( real(dp), intent(in)  a,
real(dp), intent(in)  b,
real(dp), intent(in)  g 
)

Calculates the distance between the angles a,b,g and euler.

◆ etafunc()

real(dp) function dtheta_domega::etafunc ( real(dp), intent(in)  th,
integer, intent(in), optional  lpu 
)

Evaluates the parameter η.

◆ setisok()

logical function mattoeulerxyz::setisok ( real(dp), intent(in)  a,
real(dp), intent(in)  b,
real(dp), intent(in)  g 
)

Checks the consistency of an Euler angle set.