--- trunk/src/brains/ForceManager.cpp 2013/07/01 21:09:37 1895 +++ trunk/src/brains/ForceManager.cpp 2013/07/02 20:02:31 1896 @@ -695,7 +695,7 @@ namespace OpenMD { RealType vij; Vector3d fij, fg, f1; tuple3 cuts; - RealType rCutSq; + RealType rCut, rCutSq, rListSq; bool in_switching_region; RealType sw, dswdr, swderiv; vector atomListColumn, atomListRow; @@ -714,6 +714,7 @@ namespace OpenMD { int loopStart, loopEnd; + idat.rcut = &rCut; idat.vdwMult = &vdwMult; idat.electroMult = &electroMult; idat.pot = &workPot; @@ -756,17 +757,16 @@ namespace OpenMD { cg1 = (*it).first; cg2 = (*it).second; - cuts = fDecomp_->getGroupCutoffs(cg1, cg2); + fDecomp_->getGroupCutoffs(cg1, cg2, rCut, rCutSq, rListSq); d_grp = fDecomp_->getIntergroupVector(cg1, cg2); // already wrapped in the getIntergroupVector call: // curSnapshot->wrapVector(d_grp); rgrpsq = d_grp.lengthSquare(); - rCutSq = cuts.second; if (rgrpsq < rCutSq) { - idat.rcut = &cuts.first; + if (iLoop == PAIR_LOOP) { vij = 0.0; fij.zero();