MBSVT 1.0
Modules | Functions/Subroutines | Variables
D:/Mis_Documentos/investigacion/proyectos/VT optimization project/MBSVT/trunk/math_oper.f90 File Reference

Modules

module  math_oper
 

Module of non-intrinsic mathematical operations. Contains all the operations necessary for multi body dynamics computations not supported by the Fortran 2003 standard.


Functions/Subroutines

REAL(8) math_oper::norm (r)
 Calculate the standard $ \left|{\bf r}\right| $ of a vector $ \bf r $.
REAL(8), dimension(size(r)) math_oper::normalize (r)
 Normalize an vector ${\bf normalize(r)}=\frac{\bf r}{\left|{\bf r}\right|}$.
REAL(8), dimension(3) math_oper::pvect (u, v)
 Calculates the cross product of two vectors.
subroutine math_oper::PerpVectors (nfl, u, v)
 Given a vector, calculates two perpendicular vectors to the given one.
real(8) math_oper::MREulerParam (e)
 Given the vector of Euler parameters $ {\bf p}$, it returns the rotation transformation matrix $ {\bf A}$.
real(8) math_oper::Atp_v (p, v)
 Given the vector of Euler parameters $ {\bf p}$, it returns the matrix $ {\bf A}$.
real(8) math_oper::Gmatrix (e)
 Given the vector of Euler parameters $e$, it returns the G matrix $G$.
real(8) math_oper::Gtp_v (v)
 Given the vector of Euler parameters $ {\bf p}$ and a vector $ {\bf v}$, it returns the ${\bf G}^{\rm T}{\bf v}$ matrix.
real(8) math_oper::dMREulerParam_v (e, v)
 Given the vector of Euler parameters $e$ and a vecter $v$, it returns $\frac{\partial Av}{\partial e}$.
real(8) math_oper::dMREulerParam_t (p, pd, t)
 Given the vector of Euler parameters $e$, the velocity vector of Euler parameters $\dot e$ and a vector $v$, it returns $\frac{\mathrm{d} Av}{\mathrm{d} t}$.
real(8) math_oper::d2MREulerParam_t2 (p, pd, ps, t)
 Given the vector of Euler parameters $e$, the velocity vector of Euler parameters $\dot e$ and a vector $v$, it returns $\frac{\mathrm{d}^2 Av}{\mathrm{d} t^2}$.
real(8) math_oper::dMREulerParam_t_e1 (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{e_0}$.
real(8) math_oper::dMREulerParam_t_e2 (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{e_1}$.
real(8) math_oper::dMREulerParam_t_e3 (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{e_2}$.
real(8) math_oper::dMREulerParam_t_e4 (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{e_3}$.
real(8) math_oper::dMREulerParam_t_e1d (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{\dot e_0}$.
real(8) math_oper::dMREulerParam_t_e2d (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{\dot e_1}$.
real(8) math_oper::dMREulerParam_t_e3d (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{\dot e_2}$.
real(8) math_oper::dMREulerParam_t_e4d (p, pd, t)
 Given the vector of Euler parameters, the velocity vector of Euler parameters and a vector, it returns $\partial{\frac{\mathrm{d} Av}{\mathrm{d} t}}\partial{\dot e_3}$.
real(8) math_oper::dMREulerParam_v_e1 (e, v)
 Given the vector of Euler parameters $e$ and a vecter $v$, it returns $\partial (\frac{\partial Av}{\partial e})\partial e_0$.
real(8) math_oper::dMREulerParam_v_e2 (e, v)
 Given the vector of Euler parameters $e$ and a vecter $v$, it returns $\partial (\frac{\partial Av}{\partial e})\partial e_1$.
real(8) math_oper::dMREulerParam_v_e3 (e, v)
 Given the vector of Euler parameters $e$ and a vecter $v$, it returns $\partial (\frac{\partial Av}{\partial e})\partial e_2$.
real(8) math_oper::dMREulerParam_v_e4 (e, v)
 Given the vector of Euler parameters $e$ and a vecter $v$, it returns $\partial (\frac{\partial Av}{\partial e})\partial e_3$.
real(8) math_oper::MREulerParam_e1 (e)
 Given the vector of Euler parameters $e$, it returns the derivative of the rotation matrix with respect to $e_0$.
real(8) math_oper::MREulerParam_e2 (e)
 Given the vector of Euler parameters $e$, it returns the derivative of the rotation matrix with respect to $e_1$.
real(8) math_oper::MREulerParam_e3 (e)
 Given the vector of Euler parameters $e$, it returns the derivative of the rotation matrix with respect to $e_2$.
real(8) math_oper::MREulerParam_e4 (e)
 Given the vector of Euler parameters $e$, it returns the derivative of the rotation matrix with respect to $e_3$.
real(8), dimension(size(u),
size(v)) 
math_oper::tensor_product (u, v)
 Given the two vectors, find the tensor product between these two vectors.
real(8), dimension(3, 3) math_oper::skew (a)
 Given one vector, find the skew symmetric matrix for this vector.

Variables

REAL(8), dimension(3, 3), parameter math_oper::EYE3 = RESHAPE(SOURCE=(/ 1.d0,0.d0,0.d0, 0.d0,1.d0,0.d0, 0.d0,0.d0,1.d0/), SHAPE=(/3,3/))
REAL(8), dimension(3, 3), parameter math_oper::ZEROS3 = 0.d0
REAL(8), dimension(4, 4), parameter math_oper::EYE4 = RESHAPE(SOURCE=(/ 1.d0,0.d0,0.d0,0.d0, 0.d0,1.d0,0.d0,0.d0, 0.d0,0.d0,1.d0,0.d0, 0.d0,0.d0,0.d0,1.d0/), SHAPE=(/4,4/))
REAL(8), dimension(3, 4), parameter math_oper::Gmatrix_p1 = reshape([0.d0, 0.d0, 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, 1.d0], [3, 4])
REAL(8), dimension(3, 4), parameter math_oper::Gmatrix_p2 = reshape([-1.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0, -1.d0, 0.d0, 1.d0, 0.d0], [3, 4])
REAL(8), dimension(3, 4), parameter math_oper::Gmatrix_p3 = reshape([0.d0, -1.d0, 0.d0, 0.d0, 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, -1.d0, 0.d0, 0.d0], [3, 4])
REAL(8), dimension(3, 4), parameter math_oper::Gmatrix_p4 = reshape([0.d0, 0.d0, -1.d0, 0.d0, -1.d0, 0.d0, 1.d0, 0.d0, 0.d0, 0.d0, 0.d0, 0.d0], [3, 4])