| 225 |  | evaluator.loadScriptString(objectSelection); | 
| 226 |  | seleMan.setSelectionSet(evaluator.evaluate()); | 
| 227 |  | int selectionCount = seleMan.getSelectionCount(); | 
| 228 | < |  | 
| 228 | > |  | 
| 229 | > | #ifdef IS_MPI | 
| 230 | > | MPI_Allreduce(MPI_IN_PLACE, &selectionCount, 1, MPI_INT, MPI_SUM, | 
| 231 | > | MPI_COMM_WORLD); | 
| 232 | > | #endif | 
| 233 | > |  | 
| 234 |  | sprintf(painCave.errMsg, | 
| 235 |  | "Restraint Info: The specified restraint objectSelection,\n" | 
| 236 |  | "\t\t%s\n" | 
| 319 |  | void RestraintForceManager::calcForces(){ | 
| 320 |  |  | 
| 321 |  | ForceManager::calcForces(); | 
| 322 | < | RealType restPot_local, restPot; | 
| 322 | > | RealType restPot(0.0); | 
| 323 |  |  | 
| 324 | < | restPot_local = doRestraints(1.0); | 
| 324 | > | restPot = doRestraints(1.0); | 
| 325 |  |  | 
| 326 |  | #ifdef IS_MPI | 
| 327 | < | MPI_Allreduce(&restPot_local, &restPot, 1, | 
| 328 | < | MPI_REALTYPE, MPI_SUM, MPI_COMM_WORLD); | 
| 324 | < | #else | 
| 325 | < | restPot = restPot_local; | 
| 327 | > | MPI_Allreduce(MPI_IN_PLACE, &restPot, 1, MPI_REALTYPE, MPI_SUM, | 
| 328 | > | MPI_COMM_WORLD); | 
| 329 |  | #endif | 
| 330 | + |  | 
| 331 |  | currSnapshot_ = info_->getSnapshotManager()->getCurrentSnapshot(); | 
| 328 | – | RealType pot = currSnapshot_->getLongRangePotential(); | 
| 329 | – | pot += restPot; | 
| 330 | – | currSnapshot_->setLongRangePotential(pot); | 
| 332 |  | currSnapshot_->setRestraintPotential(restPot); | 
| 333 |  |  | 
| 334 |  | //write out forces and current positions of restrained molecules | 
| 412 |  | index++; | 
| 413 |  | } | 
| 414 |  |  | 
| 415 | < | unscaledPotential_ += mRest->getUnscaledPotential(); | 
| 415 | > | unscaledPotential_ += mRest->getUnscaledPotential(); | 
| 416 |  |  | 
| 416 | – | restInfo = mRest->getRestraintInfo(); | 
| 417 | – |  | 
| 417 |  | // only collect data on restraints that we're going to print: | 
| 418 |  | if (mRest->getPrintRestraint()) | 
| 419 | + | restInfo = mRest->getRestraintInfo(); | 
| 420 |  | restInfo_.push_back(restInfo); | 
| 421 |  | } | 
| 422 |  |  | 
| 476 |  |  | 
| 477 |  | unscaledPotential_ += oRest->getUnscaledPotential(); | 
| 478 |  |  | 
| 479 | – | restInfo = oRest->getRestraintInfo(); | 
| 480 | – |  | 
| 479 |  | // only collect data on restraints that we're going to print: | 
| 480 |  | if (oRest->getPrintRestraint()) | 
| 481 | + | restInfo = oRest->getRestraintInfo(); | 
| 482 |  | restInfo_.push_back(restInfo); | 
| 483 |  | } | 
| 484 |  |  |