--- trunk/src/constraints/Rattle.cpp 2014/04/15 20:36:19 1983 +++ trunk/src/constraints/Rattle.cpp 2014/09/26 22:22:28 2022 @@ -52,6 +52,8 @@ namespace OpenMD { if (info_->getNGlobalConstraints() > 0) doRattle_ = true; + if (!doRattle_) return; + Globals* simParams = info_->getSimParams(); if (simParams->haveDt()) { @@ -73,9 +75,10 @@ namespace OpenMD { constraintOutputFile_ = getPrefix(info_->getFinalConfigFileName()) + ".constraintForces"; + // create ConstraintWriter constraintWriter_ = new ConstraintWriter(info_, - constraintOutputFile_.c_str()); + constraintOutputFile_.c_str()); if (!constraintWriter_){ sprintf(painCave.errMsg, "Failed to create ConstraintWriter\n"); @@ -220,13 +223,14 @@ namespace OpenMD { RealType rabsq = consPair->getConsDistSquare(); RealType diffsq = rabsq - pabsq; + // the original rattle code from alan tidesley if (fabs(diffsq) > (consTolerance_ * rabsq * 2)){ Vector3d oldPosA = consElem1->getPrevPos(); Vector3d oldPosB = consElem2->getPrevPos(); - Vector3d rab = oldPosA - oldPosB; + Vector3d rab = oldPosA - oldPosB; currentSnapshot_->wrapVector(rab);