[overture] Rigidbody Torque / angular acceleration

  • From: "#DOMINIC DENVER JOHN CHANDAR#" <DOMI0002@xxxxxxxxxx>
  • To: <overture@xxxxxxxxxxxxx>
  • Date: Fri, 20 Jun 2008 14:20:55 +0800

Hi Bill,
 
   In OverBlown v21, the code RigidBodyMotion.C had the following lines
to compute the angular acceleration from the torque as :
 
  for( axis=0; axis<3; axis++ )
                 {
           omegaDot(axis)=( 
             (1.-alpha)*(
                      g(0,ip1)*e(0,axis,ip1)
                    +g(1,ip1)*e(1,axis,ip1)
                    +g(2,ip1)*e(2,axis,ip1))
                
                   +alpha *(
                      g(0,i)*e(0,axis,i)
                    +g(1,i)*e(1,axis,i)
                    +g(2,i)*e(2,axis,i))
                      )/mI(axis);
                 }
 
So this is equivalent to  the statement  G  dot  e_i = mI_i  \omegaDot_i
(From Newtons Laws). 
 
whereas in cg.v22, the same code is as follows :
 
   for( axis=0; axis<3; axis++ )
    {
      const int axisp1=(axis+1) % 3;
      const int axisp2=(axis+2) % 3;
     
      omegaDot(axis)=( 
                             (1.-alpha)*(
(mI(axisp1)-mI(axisp2))*w(axisp1,ip1)*w(axisp2,ip1)+
                            g(0,ip1)*e(0,axis,ip1)+
                            g(1,ip1)*e(1,axis,ip1)+
                            g(2,ip1)*e(2,axis,ip1))

                            +alpha *(
(mI(axisp1)-mI(axisp2))*w(axisp1,i)*w(axisp2,i)+
                              g(0,i)*e(0,axis,i)+
                              g(1,i)*e(1,axis,i)+
                              g(2,i)*e(2,axis,i))
                           )/mI(axis);
    }
 
 
Now, both versions look alike except for the additional term in cg.v22 -
"  (mI(axisp1)-mI(axisp2))*w(axisp1,ip1)*w(axisp2,ip1) "  ~
(I2-I3)*w2*w3 .. 
I'd like to know the basis for adding this term...
 
Regards,
Dominic
 

Other related posts: