| 74 |  | nGlobalMols_(0), nGlobalAtoms_(0), nGlobalCutoffGroups_(0), | 
| 75 |  | nGlobalIntegrableObjects_(0), nGlobalRigidBodies_(0), | 
| 76 |  | nGlobalFluctuatingCharges_(0), nGlobalBonds_(0), nGlobalBends_(0), | 
| 77 | < | nGlobalTorsions_(0), nGlobalInversions_(0), nAtoms_(0), nBonds_(0), | 
| 78 | < | nBends_(0), nTorsions_(0), nInversions_(0), nRigidBodies_(0), | 
| 79 | < | nIntegrableObjects_(0), nCutoffGroups_(0), nConstraints_(0), | 
| 80 | < | nFluctuatingCharges_(0), sman_(NULL), topologyDone_(false), | 
| 81 | < | calcBoxDipole_(false), useAtomicVirial_(true) { | 
| 77 | > | nGlobalTorsions_(0), nGlobalInversions_(0), nGlobalConstraints_(0), | 
| 78 | > | nAtoms_(0), nBonds_(0), nBends_(0), nTorsions_(0), nInversions_(0), | 
| 79 | > | nRigidBodies_(0), nIntegrableObjects_(0), nCutoffGroups_(0), | 
| 80 | > | nConstraints_(0), nFluctuatingCharges_(0), sman_(NULL), | 
| 81 | > | topologyDone_(false), calcBoxDipole_(false), useAtomicVirial_(true), | 
| 82 | > | hasNGlobalConstraints_(false) { | 
| 83 |  |  | 
| 84 |  | MoleculeStamp* molStamp; | 
| 85 |  | int nMolWithSameStamp; | 
| 285 |  | MPI_Allreduce(&ndf_local, &ndf_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 286 |  | MPI_Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1, | 
| 287 |  | MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 287 | – | // MPI::COMM_WORLD.Allreduce(&ndf_local, &ndf_, 1, MPI::INT,MPI::SUM); | 
| 288 | – | // MPI::COMM_WORLD.Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1, | 
| 289 | – | //                           MPI::INT, MPI::SUM); | 
| 288 |  | #else | 
| 289 |  | ndf_ = ndf_local; | 
| 290 |  | nGlobalFluctuatingCharges_ = nfq_local; | 
| 299 |  | int SimInfo::getFdf() { | 
| 300 |  | #ifdef IS_MPI | 
| 301 |  | MPI_Allreduce(&fdf_local, &fdf_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 304 | – | // MPI::COMM_WORLD.Allreduce(&fdf_local, &fdf_, 1, MPI::INT, MPI::SUM); | 
| 302 |  | #else | 
| 303 |  | fdf_ = fdf_local; | 
| 304 |  | #endif | 
| 355 |  |  | 
| 356 |  | #ifdef IS_MPI | 
| 357 |  | MPI_Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 361 | – | // MPI::COMM_WORLD.Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI::INT, MPI::SUM); | 
| 358 |  | #else | 
| 359 |  | ndfRaw_ = ndfRaw_local; | 
| 360 |  | #endif | 
| 365 |  |  | 
| 366 |  | ndfTrans_local = 3 * nIntegrableObjects_ - nConstraints_; | 
| 367 |  |  | 
| 372 | – |  | 
| 368 |  | #ifdef IS_MPI | 
| 369 | < | MPI_Allreduce(&ndfTrans_local, &ndfTrans_, 1, | 
| 370 | < | MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 376 | < | // MPI::COMM_WORLD.Allreduce(&ndfTrans_local, &ndfTrans_, 1, | 
| 377 | < | //                           MPI::INT, MPI::SUM); | 
| 369 | > | MPI_Allreduce(&ndfTrans_local, &ndfTrans_, 1, MPI_INT, MPI_SUM, | 
| 370 | > | MPI_COMM_WORLD); | 
| 371 |  | #else | 
| 372 |  | ndfTrans_ = ndfTrans_local; | 
| 373 |  | #endif | 
| 374 |  |  | 
| 375 |  | ndfTrans_ = ndfTrans_ - 3 - nZconstraint_; | 
| 383 | – |  | 
| 376 |  | } | 
| 377 |  |  | 
| 378 |  | void SimInfo::addInteractionPairs(Molecule* mol) { | 
| 709 |  | */ | 
| 710 |  | void SimInfo::update() { | 
| 711 |  | setupSimVariables(); | 
| 712 | + | calcNConstraints(); | 
| 713 |  | calcNdf(); | 
| 714 |  | calcNdfRaw(); | 
| 715 |  | calcNdfTrans(); | 
| 850 |  | temp = usesDirectional; | 
| 851 |  | MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD); | 
| 852 |  | usesDirectionalAtoms_ = (temp == 0) ? false : true; | 
| 860 | – |  | 
| 861 | – | // MPI::COMM_WORLD.Allreduce(&temp, &usesDirectionalAtoms_, 1, MPI::BOOL, | 
| 862 | – | //                           MPI::LOR); | 
| 853 |  |  | 
| 854 |  | temp = usesMetallic; | 
| 855 |  | MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD); | 
| 856 |  | usesMetallicAtoms_ = (temp == 0) ? false : true; | 
| 857 |  |  | 
| 868 | – | // MPI::COMM_WORLD.Allreduce(&temp, &usesMetallicAtoms_, 1, MPI::BOOL, | 
| 869 | – | //                           MPI::LOR); | 
| 870 | – |  | 
| 858 |  | temp = usesElectrostatic; | 
| 859 |  | MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD); | 
| 860 |  | usesElectrostaticAtoms_ = (temp == 0) ? false : true; | 
| 861 |  |  | 
| 875 | – | // MPI::COMM_WORLD.Allreduce(&temp, &usesElectrostaticAtoms_, 1, MPI::BOOL, | 
| 876 | – | //                           MPI::LOR); | 
| 877 | – |  | 
| 862 |  | temp = usesFluctuatingCharges; | 
| 863 |  | MPI_Allreduce(MPI_IN_PLACE, &temp, 1, MPI_INT,  MPI_LOR, MPI_COMM_WORLD); | 
| 864 |  | usesFluctuatingCharges_ = (temp == 0) ? false : true; | 
| 881 | – |  | 
| 882 | – | // MPI::COMM_WORLD.Allreduce(&temp, &usesFluctuatingCharges_, 1, MPI::BOOL, | 
| 883 | – | //                           MPI::LOR); | 
| 884 | – |  | 
| 865 |  | #else | 
| 866 |  |  | 
| 867 |  | usesDirectionalAtoms_ = usesDirectional; | 
| 1076 |  | IOIndexToIntegrableObject= v; | 
| 1077 |  | } | 
| 1078 |  |  | 
| 1079 | < | int SimInfo::getNGlobalConstraints() { | 
| 1100 | < | int nGlobalConstraints; | 
| 1079 | > | void SimInfo::calcNConstraints() { | 
| 1080 |  | #ifdef IS_MPI | 
| 1081 | < | MPI_Allreduce(&nConstraints_, &nGlobalConstraints, 1, | 
| 1082 | < | MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 1104 | < | // MPI::COMM_WORLD.Allreduce(&nConstraints_, &nGlobalConstraints, 1, | 
| 1105 | < | //                           MPI::INT, MPI::SUM); | 
| 1081 | > | MPI_Allreduce(&nConstraints_, &nGlobalConstraints_, 1, | 
| 1082 | > | MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 1083 |  | #else | 
| 1084 | < | nGlobalConstraints =  nConstraints_; | 
| 1084 | > | nGlobalConstraints_ =  nConstraints_; | 
| 1085 |  | #endif | 
| 1109 | – | return nGlobalConstraints; | 
| 1086 |  | } | 
| 1087 |  |  | 
| 1088 |  | }//end namespace OpenMD |