--- trunk/OOPSE/libmdtools/NVT.cpp 2003/09/19 14:22:29 769 +++ trunk/OOPSE/libmdtools/NVT.cpp 2003/09/19 20:00:27 778 @@ -34,8 +34,7 @@ template void NVT::moveA() { int i, j; DirectionalAtom* dAtom; double Tb[3], ji[3]; - double A[3][3], I[3][3]; - double angle, mass; + double mass; double vel[3], pos[3], frc[3]; double instTemp; @@ -78,34 +77,9 @@ template void NVT::moveA() { for (j=0; j < 3; j++) ji[j] += dt2 * (Tb[j] * eConvert - ji[j]*chi); - // use the angular velocities to propagate the rotation matrix a - // full time step - - dAtom->getA(A); - dAtom->getI(I); - - // rotate about the x-axis - angle = dt2 * ji[0] / I[0][0]; - this->rotate( 1, 2, angle, ji, A ); - - // rotate about the y-axis - angle = dt2 * ji[1] / I[1][1]; - this->rotate( 2, 0, angle, ji, A ); + this->rotationPropagation( dAtom, ji ); - // rotate about the z-axis - angle = dt * ji[2] / I[2][2]; - this->rotate( 0, 1, angle, ji, A); - - // rotate about the y-axis - angle = dt2 * ji[1] / I[1][1]; - this->rotate( 2, 0, angle, ji, A ); - - // rotate about the x-axis - angle = dt2 * ji[0] / I[0][0]; - this->rotate( 1, 2, angle, ji, A ); - dAtom->setJ( ji ); - dAtom->setA( A ); } }