| 66 |  | int i, j, k; | 
| 67 |  | DirectionalAtom* dAtom; | 
| 68 |  | double Tb[3], ji[3]; | 
| 69 | < | double A[3][3], I[3][3]; | 
| 70 | < | double angle, mass; | 
| 69 | > |  | 
| 70 | > | double mass; | 
| 71 |  | double vel[3], pos[3], frc[3]; | 
| 72 |  |  | 
| 73 |  | double rj[3]; | 
| 132 |  | for (j=0; j < 3; j++) | 
| 133 |  | ji[j] += dt2 * (Tb[j] * eConvert - ji[j]*chi); | 
| 134 |  |  | 
| 135 | < | // use the angular velocities to propagate the rotation matrix a | 
| 136 | < | // full time step | 
| 137 | < |  | 
| 138 | < | dAtom->getA(A); | 
| 139 | < | dAtom->getI(I); | 
| 140 | < |  | 
| 141 | < | // rotate about the x-axis | 
| 142 | < | angle = dt2 * ji[0] / I[0][0]; | 
| 143 | < | this->rotate( 1, 2, angle, ji, A ); | 
| 144 | < |  | 
| 145 | < | // rotate about the y-axis | 
| 146 | < | angle = dt2 * ji[1] / I[1][1]; | 
| 147 | < | this->rotate( 2, 0, angle, ji, A ); | 
| 148 | < |  | 
| 149 | < | // rotate about the z-axis | 
| 150 | < | angle = dt * ji[2] / I[2][2]; | 
| 151 | < | this->rotate( 0, 1, angle, ji, A); | 
| 152 | < |  | 
| 153 | < | // rotate about the y-axis | 
| 154 | < | angle = dt2 * ji[1] / I[1][1]; | 
| 155 | < | this->rotate( 2, 0, angle, ji, A ); | 
| 156 | < |  | 
| 157 | < | // rotate about the x-axis | 
| 158 | < | angle = dt2 * ji[0] / I[0][0]; | 
| 159 | < | this->rotate( 1, 2, angle, ji, A ); | 
| 160 | < |  | 
| 135 | > | this->rotationPropagation( dAtom, ji ); | 
| 136 | > |  | 
| 137 |  | dAtom->setJ( ji ); | 
| 162 | – | dAtom->setA( A  ); | 
| 138 |  | } | 
| 139 |  | } | 
| 140 |  |  |