MBSVT 1.0
Functions/Subroutines | Variables
restric Module Reference

Module of primitive constraints. It's NOT a user module, it's used by the solver. More...

Functions/Subroutines

subroutine restric_Setup
subroutine deallocfi
subroutine r_UnitEulParam (ir, iEul)
 Primitive constraint of unitary Euler parameters assume ${\bf p}$ is the Euler parameter.the constraint equation is : $ {\bf p}^T{\bf p}-1 $.
subroutine r_dot1GB (ir, iEul2, u, v)
 Primitive dot-1 constraint of a body attached on the ground.
subroutine r_dot1 (ir, iEul1, iEul2, u, v)
 Primitive dot-1 constraint assume $\bf p_1$ and $\bf p_2$ are the Euler parameter of body 1 and body 2 and $\bf u$ and $\bf v$ are two vectors attached on body 1 and body 2 in the body reference frame, the constraint equation is : $ A({\bf p_1}){\bf u}^{T}A({\bf p_2}){\bf v}$.
subroutine r_sphericalGB (ir, irg2, iEul2, pt1, pt2)
 Primitive constraints of a spherical joint of a body attached to the ground The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf s}_1^{P} $.
subroutine r_spherical (ir, irg1, irg2, iEul1, iEul2, pt1, pt2)
 Primitive constraints of a spherical joint between two bodies The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf r}_1-{\bf A}_1{\bf s}_1^{'P} $.
subroutine r_revoluteGB (ir, irg2, iEul2, pt1, pt2, u1, v1, vec2)
 Primitive constraints of a revolute joint of a body attached to the ground The first three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf s}_1^{P} $ The fouth constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf h}_2 $ The fifth constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf h}_2 $.
subroutine r_revolute (ir, irg1, irg2, iEul1, iEul2, pt1, pt2, u1, v1, vec2)
 Primitive constraints of a revolute joint between two bodies The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf r}_1-{\bf A}_1{\bf s}_1^{'P} $ The fouth constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf h}_2 $ The fifth constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf h}_2 $.
subroutine r_transGB (ir, irg2, iEul2, pt1, pt2, vec1y, vec1x, vec2x, vec2z)
 Primitive constraints of a translational joint of a body attached to the ground The first constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf h}_2 $ The second constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf h}_2 $ The third constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf d}_{12} $ The forth constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf d}_{12} $ The fifth constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf f}_2 $.
subroutine r_trans (ir, irg1, irg2, iEul1, iEul2, pt1, pt2, vec1y, vec1x, vec2x, vec2z)
 Primitive constraints of a translational joint between two bodies. The first constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf h}_2 $ The second constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf h}_2 $ The third constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf d}_{12} $ The forth constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf d}_{12} $ The fifth constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf f}_2 $.
subroutine r_Drive_rgEul (ir, ind, i_MOTOR)
 Primitive driving constraints for a generalized coordinate of the system.
subroutine r_Drive_distGB (ir, irg2, iEul2, pt1, pt2_loc, i_MOTOR)
 Primitive driving constraints for a distance between a point in the ground and a point of one body.
subroutine r_Drive_dist (ir, irg1, irg2, iEul1, iEul2, pt1_loc, pt2_loc, i_MOTOR)
 Primitive driving constraints for a distance between two points of two bodies.

Variables

REAL(8), dimension(:), allocatable PROTECTED
REAL(8), dimension(:), allocatable fi

Detailed Description

Module of primitive constraints. It's NOT a user module, it's used by the solver.


Function/Subroutine Documentation

subroutine restric::deallocfi ( )
subroutine restric::r_dot1 ( integer,intent(in)  ir,
integer,dimension(4),intent(in)  iEul1,
integer,dimension(4),intent(in)  iEul2,
real(8),dimension(3),intent(in)  u,
real(8),dimension(3),intent(in)  v 
)

Primitive dot-1 constraint assume $\bf p_1$ and $\bf p_2$ are the Euler parameter of body 1 and body 2 and $\bf u$ and $\bf v$ are two vectors attached on body 1 and body 2 in the body reference frame, the constraint equation is : $ A({\bf p_1}){\bf u}^{T}A({\bf p_2}){\bf v}$.

Parameters:
irindex of the constraint
iEul1,iEul2indexes of the Euler parameters of the bodies.
uvector in the first body given in the body reference frame
vvector in the second body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_dot1GB ( integer,intent(in)  ir,
integer,dimension(4),intent(in)  iEul2,
real(8),dimension(3),intent(in)  u,
real(8),dimension(3),intent(in)  v 
)

Primitive dot-1 constraint of a body attached on the ground.

Parameters:
irindex of the constraint
iEul2indexes of the Euler parameters of the body.
uvector attached on the ground
vvector in the second body given in the body reference frame assume $\bf $ are the Euler parameter of the body the constraint equation is : $ {\bf u}^{T}A({\bf p}){\bf v}$

Here is the call graph for this function:

subroutine restric::r_Drive_dist ( INTEGER,intent(in)  ir,
INTEGER,dimension(3),intent(in)  irg1,
INTEGER,dimension(3),intent(in)  irg2,
INTEGER,dimension(4),intent(in)  iEul1,
INTEGER,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1_loc,
REAL(8),dimension(3),intent(in)  pt2_loc,
INTEGER,intent(in)  i_MOTOR 
)

Primitive driving constraints for a distance between two points of two bodies.

Parameters:
irindex of the constraint.
irg1,irg2index of the center of mass of the body.
iEul1,iEul2index of the Euler parameters of the body.
pt1_loc,pt2_locpoints in the bodies given in the bodies reference frames.
i_MOTORindex in the vector of motors (STATE::pos) to drive the constraint.

Here is the call graph for this function:

subroutine restric::r_Drive_distGB ( INTEGER,intent(in)  ir,
INTEGER,dimension(3),intent(in)  irg2,
INTEGER,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1,
REAL(8),dimension(3),intent(in)  pt2_loc,
INTEGER,intent(in)  i_MOTOR 
)

Primitive driving constraints for a distance between a point in the ground and a point of one body.

Parameters:
irindex of the constraint.
irg2index of the center of mass of the body.
iEul2index of the Euler parameters of the body.
pt1point in the ground given in the global reference frame
pt2_locpoint in the second body given in the body reference frame
i_MOTORindex in the vector of motors (STATE::pos) to drive the constraint.

Here is the call graph for this function:

subroutine restric::r_Drive_rgEul ( INTEGER,intent(in)  ir,
INTEGER,intent(in)  ind,
INTEGER,intent(in)  i_MOTOR 
)

Primitive driving constraints for a generalized coordinate of the system.

Parameters:
irindex of the constraint
indindex of the driven generalized coordinate.
i_MOTORindex in the vector of motors (STATE::pos) to drive the constraint.
subroutine restric::r_revolute ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg1,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul1,
integer,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1,
REAL(8),dimension(3),intent(in)  pt2,
REAL(8),dimension(3),intent(in)  u1,
REAL(8),dimension(3),intent(in)  v1,
REAL(8),dimension(3),intent(in)  vec2 
)

Primitive constraints of a revolute joint between two bodies The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf r}_1-{\bf A}_1{\bf s}_1^{'P} $ The fouth constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf h}_2 $ The fifth constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf h}_2 $.

Parameters:
irindex of the constraint
irg1,irg2indexes of the centers of mass of the bodies.
iEul1,iEul2indexes of the Euler parameters of the bodies.
pt1point in the first body given in the body reference frame
pt2point in the second body given in the body reference frame
u1,v1perpendicular vectors in the first body given in the body reference frame
vec2vector in the second body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_revoluteGB ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1,
REAL(8),dimension(3),intent(in)  pt2,
REAL(8),dimension(3),intent(in)  u1,
REAL(8),dimension(3),intent(in)  v1,
REAL(8),dimension(3),intent(in)  vec2 
)

Primitive constraints of a revolute joint of a body attached to the ground The first three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf s}_1^{P} $ The fouth constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf h}_2 $ The fifth constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf h}_2 $.

Parameters:
irindex of the constraint
irg2index of the center of mass of the body
iEul2index of the Euler parameters of the body
pt1point in the ground
pt2point in the body given in the body reference frame
u1,v1perpendicular vectors in the ground
vec2vector in the body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_spherical ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg1,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul1,
integer,dimension(4),intent(in)  iEul2,
real(8),dimension(3),intent(in)  pt1,
real(8),dimension(3),intent(in)  pt2 
)

Primitive constraints of a spherical joint between two bodies The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf r}_1-{\bf A}_1{\bf s}_1^{'P} $.

Parameters:
irindex of the constraint
irg1,irg2indexes of the centers of mass of the bodies.
iEul1,iEul2indexes of the Euler parameters of the bodies.
pt1point in the first body given in the body reference frame
pt2point in the second body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_sphericalGB ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul2,
real(8),dimension(3),intent(in)  pt1,
real(8),dimension(3),intent(in)  pt2 
)

Primitive constraints of a spherical joint of a body attached to the ground The three constraint equations are : $ {\bf r}_2+{\bf A}_2{\bf s}_2^{'P}-{\bf s}_1^{P} $.

Parameters:
irindex of the constraint
irg2index of the center of mass of the body
iEul2index of the Euler parameters of the body
pt1point in the ground
pt2point in the body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_trans ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg1,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul1,
integer,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1,
REAL(8),dimension(3),intent(in)  pt2,
REAL(8),dimension(3),intent(in)  vec1y,
REAL(8),dimension(3),intent(in)  vec1x,
REAL(8),dimension(3),intent(in)  vec2x,
REAL(8),dimension(3),intent(in)  vec2z 
)

Primitive constraints of a translational joint between two bodies. The first constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf h}_2 $ The second constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf h}_2 $ The third constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf d}_{12} $ The forth constraint equation is: $ ({\bf A}_1{\bf g}_1)^T{\bf A}_2{\bf d}_{12} $ The fifth constraint equation is: $ ({\bf A}_1{\bf f}_1)^T{\bf A}_2{\bf f}_2 $.

Parameters:
irindex of the constraint
irg1,irg2indexes of the centers of mass of the bodies.
iEul1,iEul2indexes of the Euler parameters of the bodies.
pt1point given in the first body given in the body reference frame
pt2point given in the second body given in the body reference frame
vec1y,vec1xperpendicular vectors in the first body given in the body reference frame
vec2x,vec2zperpendicular vectors in the second body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_transGB ( integer,intent(in)  ir,
integer,dimension(3),intent(in)  irg2,
integer,dimension(4),intent(in)  iEul2,
REAL(8),dimension(3),intent(in)  pt1,
REAL(8),dimension(3),intent(in)  pt2,
REAL(8),dimension(3),intent(in)  vec1y,
REAL(8),dimension(3),intent(in)  vec1x,
REAL(8),dimension(3),intent(in)  vec2x,
REAL(8),dimension(3),intent(in)  vec2z 
)

Primitive constraints of a translational joint of a body attached to the ground The first constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf h}_2 $ The second constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf h}_2 $ The third constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf d}_{12} $ The forth constraint equation is: $ {\bf g}_1^T{\bf A}_2{\bf d}_{12} $ The fifth constraint equation is: $ {\bf f}_1^T{\bf A}_2{\bf f}_2 $.

Parameters:
irindex of the constraint
irg2index of the center of mass of the body
iEul2index of the Euler parameter of the body.
pt1point in the ground
pt2point in the body given in the body reference frame
vec1y,vec1xperpendicular vectors in the ground
vec2x,vec2zperpendicular vectors in the body given in the body reference frame

Here is the call graph for this function:

subroutine restric::r_UnitEulParam ( integer,intent(in)  ir,
integer,dimension(4),intent(in)  iEul 
)

Primitive constraint of unitary Euler parameters assume ${\bf p}$ is the Euler parameter.the constraint equation is : $ {\bf p}^T{\bf p}-1 $.

Parameters:
irindex of the constraint
iEulindexes of the Euler parameters
subroutine restric::restric_Setup ( )

Here is the call graph for this function:


Variable Documentation

REAL(8),dimension(:),allocatable restric::fi
REAL(8),dimension(:),allocatable restric::PROTECTED