| 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 |