--- trunk/OOPSE/libmdtools/Integrator.cpp 2003/10/28 22:25:46 836 +++ trunk/OOPSE/libmdtools/Integrator.cpp 2003/10/29 00:19:10 837 @@ -25,7 +25,7 @@ template Integrator::Integrator(SimInfo if (info->the_integrator != NULL){ delete info->the_integrator; } - + nAtoms = info->n_atoms; // check for constraints @@ -158,7 +158,7 @@ template void Integrator::integrate(voi double currThermal; double currStatus; double currReset; - + int calcPot, calcStress; tStats = new Thermo(info); @@ -179,10 +179,10 @@ template void Integrator::integrate(voi if (nConstrained){ preMove(); constrainA(); - calcForce(1, 1); + calcForce(1, 1); constrainB(); } - + if (info->setTemp){ thermalize(); } @@ -227,11 +227,11 @@ template void Integrator::integrate(voi } if (info->getTime() >= currStatus){ - statOut->writeStat(info->getTime()); - calcPot = 0; + statOut->writeStat(info->getTime()); + calcPot = 0; calcStress = 0; currStatus += statusTime; - } + } if (info->resetIntegrator){ if (info->getTime() >= currReset){ @@ -366,7 +366,7 @@ template void Integrator::moveB(void){ if (atoms[i]->isDirectional()){ dAtom = (DirectionalAtom *) atoms[i]; - // get and convert the torque to body frame + // get and convert the torque to body frame dAtom->getTrq(Tb); dAtom->lab2Body(Tb); @@ -658,28 +658,28 @@ template void Integrator::rotationPropa dAtom->getA(A); dAtom->getI(I); - - // rotate about the x-axis + + // rotate about the x-axis angle = dt2 * ji[0] / I[0][0]; - this->rotate( 1, 2, angle, ji, A ); - + 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 ); - + // 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->setA( A ); + + dAtom->setA( A ); } template void Integrator::rotate(int axes1, int axes2, @@ -747,7 +747,7 @@ template void Integrator::rotate(int ax } } - // rotate the Rotation matrix acording to: + // rotate the Rotation matrix acording to: // A[][] = A[][] * transpose(rot[][]) @@ -776,3 +776,9 @@ template double Integrator::getConserve template double Integrator::getConservedQuantity(void){ return tStats->getTotalE(); } +template string Integrator::getAdditionalParameters(void){ + //By default, return a null string + //The reason we use string instead of char* is that if we use char*, we will + //return a pointer point to local variable which might cause problem + return string(); +}