[overture] Re: Rigidbody Torque / angular acceleration

  • From: Bill Henshaw <henshaw@xxxxxxxx>
  • To: overture@xxxxxxxxxxxxx
  • Date: Fri, 20 Jun 2008 08:23:56 -0700

Hi Dominic,
  These are Euler's equations, see 
http://en.wikipedia.org/wiki/Euler%27s_equations

...Bill

#DOMINIC DENVER JOHN CHANDAR# wrote:
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: