--- trunk/OOPSE/libmdtools/Integrator.cpp 2004/05/13 21:08:05 1178 +++ trunk/OOPSE/libmdtools/Integrator.cpp 2004/06/02 14:56:18 1221 @@ -32,7 +32,7 @@ template Integrator::Integrator(SimInfo nAtoms = info->n_atoms; integrableObjects = info->integrableObjects; - + // check for constraints constrainedA = NULL; @@ -45,6 +45,7 @@ template Integrator::Integrator(SimInfo nConstrained = 0; checkConstraints(); + } template Integrator::~Integrator(){ @@ -182,6 +183,11 @@ template void Integrator::integrate(voi // remove center of mass drift velocity (in case we passed in a configuration // that was drifting tStats->removeCOMdrift(); + + // initialize the retraints if necessary + if (info->useSolidThermInt && !info->useLiquidThermInt) { + myFF->initRestraints(); + } // initialize the forces before the first step @@ -271,6 +277,11 @@ template void Integrator::integrate(voi #endif // is_mpi } + // dump out a file containing the omega values for the final configuration + if (info->useSolidThermInt && !info->useLiquidThermInt) + myFF->dumpzAngle(); + + delete dumpOut; delete statOut; } @@ -305,9 +316,7 @@ template void Integrator::integrateStep MPIcheckPoint(); #endif // is_mpi - // calc forces - calcForce(calcPot, calcStress); #ifdef IS_MPI @@ -342,6 +351,7 @@ template void Integrator::moveA(void){ double Tb[3], ji[3]; double vel[3], pos[3], frc[3]; double mass; + double omega; for (i = 0; i < integrableObjects.size() ; i++){ integrableObjects[i]->getVel(vel); @@ -725,6 +735,7 @@ template void Integrator::rotationPropa // rotate about the z-axis angle = dt * ji[2] / I[2][2]; + sd->addZangle(angle); this->rotate( 0, 1, angle, ji, A); // rotate about the y-axis