ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Integrator.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/Integrator.cpp (file contents):
Revision 1113 by tim, Thu Apr 15 16:18:26 2004 UTC vs.
Revision 1118 by tim, Mon Apr 19 03:52:27 2004 UTC

# Line 687 | Line 687 | template<typename T> void Integrator<T>::rotationPropa
687  
688    double angle;
689    double A[3][3], I[3][3];
690 +  int i, j, k;
691  
692    // use the angular velocities to propagate the rotation matrix a
693    // full time step
# Line 694 | Line 695 | template<typename T> void Integrator<T>::rotationPropa
695    sd->getA(A);
696    sd->getI(I);
697  
698 +  if (sd->isLinear()) {
699 +    i = sd->linearAxis();
700 +    j = (i+1)%3;
701 +    k = (i+2)%3;
702 +    
703 +    angle = dt2 * ji[j] / I[j][j];
704 +    this->rotate( k, i, angle, ji, A );
705 +
706 +    angle = dt * ji[k] / I[k][k];
707 +    this->rotate( i, j, angle, ji, A);
708 +
709 +    angle = dt2 * ji[j] / I[j][j];
710 +    this->rotate( k, i, angle, ji, A );
711 +
712 +  } else {
713    // rotate about the x-axis
714    angle = dt2 * ji[0] / I[0][0];
715    this->rotate( 1, 2, angle, ji, A );
# Line 714 | Line 730 | template<typename T> void Integrator<T>::rotationPropa
730    angle = dt2 * ji[0] / I[0][0];
731    this->rotate( 1, 2, angle, ji, A );
732  
733 +  }
734    sd->setA( A  );
735   }
736  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines