--- trunk/OOPSE/libmdtools/NPTim.cpp 2003/07/15 03:08:00 604 +++ trunk/OOPSE/libmdtools/NPTim.cpp 2003/07/15 03:27:24 605 @@ -37,7 +37,7 @@ void NPTim::moveA() { void NPTim::moveA() { - int i, j; + int i, j, k; DirectionalAtom* dAtom; double Tb[3], ji[3]; double A[3][3], I[3][3]; @@ -82,22 +82,22 @@ void NPTim::moveA() { if(myAtoms[j] != NULL) { - myAtoms[i]->getVel( vel ); - myAtoms[i]->getPos( pos ); - myAtoms[i]->getFrc( frc ); + myAtoms[j]->getVel( vel ); + myAtoms[j]->getPos( pos ); + myAtoms[j]->getFrc( frc ); - mass = myAtoms[i]->getMass(); + mass = myAtoms[j]->getMass(); - for (j=0; j < 3; j++) - vel[j] += dt2 * ((frc[j] / mass ) * eConvert - vel[j]*(chi+eta)); - - myAtoms[i]->setVel( vel ); + for (k=0; k < 3; k++) + vel[k] += dt2 * ((frc[k] / mass ) * eConvert - vel[k]*(chi+eta)); - for (j = 0; j < 3; j++) - pos[j] += dt * (vel[j] + eta*rc[j]); + myAtoms[j]->setVel( vel ); - atoms[i]->setPos( pos ); + for (k = 0; k < 3; k++) + pos[k] += dt * (vel[k] + eta*rc[k]); + myAtoms[j]->setPos( pos ); + if( myAtoms[j]->isDirectional() ){ dAtom = (DirectionalAtom *)myAtoms[j]; @@ -111,8 +111,8 @@ void NPTim::moveA() { dAtom->getJ( ji ); - for (j=0; j < 3; j++) - ji[j] += dt2 * (Tb[j] * eConvert - ji[j]*chi); + for (k=0; k < 3; k++) + ji[k] += dt2 * (Tb[k] * eConvert - ji[k]*chi); // use the angular velocities to propagate the rotation matrix a // full time step