| 35 | 
  | 
 *                                                                       | 
| 36 | 
  | 
 * [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).              | 
| 37 | 
  | 
 * [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).           | 
| 38 | 
< | 
 * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).           | 
| 38 | 
> | 
 * [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008).           | 
| 39 | 
  | 
 * [4]  Kuang & Gezelter,  J. Chem. Phys. 133, 164101 (2010). | 
| 40 | 
  | 
 * [5]  Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). | 
| 41 | 
  | 
 */ | 
| 91 | 
  | 
    for (vector<Component*>::iterator i = components.begin();  | 
| 92 | 
  | 
         i !=components.end(); ++i) { | 
| 93 | 
  | 
      molStamp = (*i)->getMoleculeStamp(); | 
| 94 | 
+ | 
      if ( (*i)->haveRegion() ) {         | 
| 95 | 
+ | 
        molStamp->setRegion( (*i)->getRegion() ); | 
| 96 | 
+ | 
      } else { | 
| 97 | 
+ | 
        // set the region to a disallowed value: | 
| 98 | 
+ | 
        molStamp->setRegion( -1 ); | 
| 99 | 
+ | 
      } | 
| 100 | 
+ | 
 | 
| 101 | 
  | 
      nMolWithSameStamp = (*i)->getNMol(); | 
| 102 | 
  | 
       | 
| 103 | 
  | 
      addMoleculeStamp(molStamp, nMolWithSameStamp); | 
| 275 | 
  | 
    ndf_local -= nConstraints_; | 
| 276 | 
  | 
 | 
| 277 | 
  | 
#ifdef IS_MPI | 
| 278 | 
< | 
    MPI_Allreduce(&ndf_local,&ndf_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); | 
| 279 | 
< | 
    MPI_Allreduce(&nfq_local,&nGlobalFluctuatingCharges_,1, MPI_INT, MPI_SUM, MPI_COMM_WORLD); | 
| 278 | 
> | 
    MPI::COMM_WORLD.Allreduce(&ndf_local, &ndf_, 1, MPI::INT,MPI::SUM); | 
| 279 | 
> | 
    MPI::COMM_WORLD.Allreduce(&nfq_local, &nGlobalFluctuatingCharges_, 1, | 
| 280 | 
> | 
                              MPI::INT, MPI::SUM); | 
| 281 | 
  | 
#else | 
| 282 | 
  | 
    ndf_ = ndf_local; | 
| 283 | 
  | 
    nGlobalFluctuatingCharges_ = nfq_local; | 
| 291 | 
  | 
 | 
| 292 | 
  | 
  int SimInfo::getFdf() { | 
| 293 | 
  | 
#ifdef IS_MPI | 
| 294 | 
< | 
    MPI_Allreduce(&fdf_local,&fdf_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); | 
| 294 | 
> | 
    MPI::COMM_WORLD.Allreduce(&fdf_local, &fdf_, 1, MPI::INT, MPI::SUM); | 
| 295 | 
  | 
#else | 
| 296 | 
  | 
    fdf_ = fdf_local; | 
| 297 | 
  | 
#endif | 
| 347 | 
  | 
    } | 
| 348 | 
  | 
     | 
| 349 | 
  | 
#ifdef IS_MPI | 
| 350 | 
< | 
    MPI_Allreduce(&ndfRaw_local,&ndfRaw_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); | 
| 350 | 
> | 
    MPI::COMM_WORLD.Allreduce(&ndfRaw_local, &ndfRaw_, 1, MPI::INT, MPI::SUM); | 
| 351 | 
  | 
#else | 
| 352 | 
  | 
    ndfRaw_ = ndfRaw_local; | 
| 353 | 
  | 
#endif | 
| 360 | 
  | 
 | 
| 361 | 
  | 
 | 
| 362 | 
  | 
#ifdef IS_MPI | 
| 363 | 
< | 
    MPI_Allreduce(&ndfTrans_local,&ndfTrans_,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD); | 
| 363 | 
> | 
    MPI::COMM_WORLD.Allreduce(&ndfTrans_local, &ndfTrans_, 1,  | 
| 364 | 
> | 
                              MPI::INT, MPI::SUM); | 
| 365 | 
  | 
#else | 
| 366 | 
  | 
    ndfTrans_ = ndfTrans_local; | 
| 367 | 
  | 
#endif | 
| 372 | 
  | 
 | 
| 373 | 
  | 
  void SimInfo::addInteractionPairs(Molecule* mol) { | 
| 374 | 
  | 
    ForceFieldOptions& options_ = forceField_->getForceFieldOptions(); | 
| 375 | 
+ | 
    vector<Atom*>::iterator atomIter; | 
| 376 | 
  | 
    vector<Bond*>::iterator bondIter; | 
| 377 | 
  | 
    vector<Bend*>::iterator bendIter; | 
| 378 | 
  | 
    vector<Torsion*>::iterator torsionIter; | 
| 379 | 
  | 
    vector<Inversion*>::iterator inversionIter; | 
| 380 | 
+ | 
    Atom* atom; | 
| 381 | 
  | 
    Bond* bond; | 
| 382 | 
  | 
    Bend* bend; | 
| 383 | 
  | 
    Torsion* torsion; | 
| 420 | 
  | 
        atomGroups.insert(map<int, set<int> >::value_type(sd->getGlobalIndex(), oneAtomSet));         | 
| 421 | 
  | 
      } | 
| 422 | 
  | 
    }   | 
| 423 | 
+ | 
 | 
| 424 | 
  | 
            | 
| 425 | 
  | 
    for (bond= mol->beginBond(bondIter); bond != NULL;  | 
| 426 | 
  | 
         bond = mol->nextBond(bondIter)) { | 
| 790 | 
  | 
#endif | 
| 791 | 
  | 
 | 
| 792 | 
  | 
    return atomTypes;         | 
| 793 | 
+ | 
  } | 
| 794 | 
+ | 
 | 
| 795 | 
+ | 
 | 
| 796 | 
+ | 
  int getGlobalCountOfType(AtomType* atype) { | 
| 797 | 
+ | 
    /* | 
| 798 | 
+ | 
    set<AtomType*> atypes = getSimulatedAtomTypes(); | 
| 799 | 
+ | 
    map<AtomType*, int> counts_; | 
| 800 | 
+ | 
 | 
| 801 | 
+ | 
    for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { | 
| 802 | 
+ | 
      for(atom = mol->beginAtom(ai); atom != NULL; | 
| 803 | 
+ | 
          atom = mol->nextAtom(ai)) { | 
| 804 | 
+ | 
        atom->getAtomType(); | 
| 805 | 
+ | 
      }       | 
| 806 | 
+ | 
    }     | 
| 807 | 
+ | 
    */ | 
| 808 | 
+ | 
    return 0; | 
| 809 | 
  | 
  } | 
| 810 | 
  | 
 | 
| 811 | 
  | 
  void SimInfo::setupSimVariables() { | 
| 905 | 
  | 
 | 
| 906 | 
  | 
 | 
| 907 | 
  | 
  void SimInfo::prepareTopology() { | 
| 880 | 
– | 
    int nExclude, nOneTwo, nOneThree, nOneFour; | 
| 908 | 
  | 
 | 
| 909 | 
  | 
    //calculate mass ratio of cutoff group | 
| 910 | 
  | 
    SimInfo::MoleculeIterator mi; | 
| 941 | 
  | 
      }        | 
| 942 | 
  | 
    } | 
| 943 | 
  | 
 | 
| 944 | 
< | 
    // Build the identArray_ | 
| 944 | 
> | 
    // Build the identArray_ and regions_ | 
| 945 | 
  | 
 | 
| 946 | 
  | 
    identArray_.clear(); | 
| 947 | 
< | 
    identArray_.reserve(getNAtoms());     | 
| 948 | 
< | 
    for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) {         | 
| 947 | 
> | 
    identArray_.reserve(getNAtoms());    | 
| 948 | 
> | 
    regions_.clear(); | 
| 949 | 
> | 
    regions_.reserve(getNAtoms()); | 
| 950 | 
> | 
  | 
| 951 | 
> | 
    for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) {       | 
| 952 | 
> | 
      int reg = mol->getRegion();       | 
| 953 | 
  | 
      for(atom = mol->beginAtom(ai); atom != NULL; atom = mol->nextAtom(ai)) { | 
| 954 | 
  | 
        identArray_.push_back(atom->getIdent()); | 
| 955 | 
+ | 
        regions_.push_back(reg); | 
| 956 | 
  | 
      } | 
| 957 | 
  | 
    }     | 
| 958 | 
< | 
     | 
| 927 | 
< | 
    //scan topology  | 
| 928 | 
< | 
 | 
| 929 | 
< | 
    nExclude = excludedInteractions_.getSize(); | 
| 930 | 
< | 
    nOneTwo = oneTwoInteractions_.getSize(); | 
| 931 | 
< | 
    nOneThree = oneThreeInteractions_.getSize(); | 
| 932 | 
< | 
    nOneFour = oneFourInteractions_.getSize(); | 
| 933 | 
< | 
 | 
| 934 | 
< | 
    int* excludeList = excludedInteractions_.getPairList(); | 
| 935 | 
< | 
    int* oneTwoList = oneTwoInteractions_.getPairList(); | 
| 936 | 
< | 
    int* oneThreeList = oneThreeInteractions_.getPairList(); | 
| 937 | 
< | 
    int* oneFourList = oneFourInteractions_.getPairList(); | 
| 938 | 
< | 
 | 
| 958 | 
> | 
        | 
| 959 | 
  | 
    topologyDone_ = true; | 
| 960 | 
  | 
  } | 
| 961 | 
  | 
 | 
| 1027 | 
  | 
    | 
| 1028 | 
  | 
   | 
| 1029 | 
  | 
  StuntDouble* SimInfo::getIOIndexToIntegrableObject(int index) { | 
| 1030 | 
< | 
    if (index >= IOIndexToIntegrableObject.size()) { | 
| 1030 | 
> | 
    if (index >= int(IOIndexToIntegrableObject.size())) { | 
| 1031 | 
  | 
      sprintf(painCave.errMsg, | 
| 1032 | 
  | 
              "SimInfo::getIOIndexToIntegrableObject Error: Integrable Object\n" | 
| 1033 | 
  | 
              "\tindex exceeds number of known objects!\n"); | 
| 1045 | 
  | 
  int SimInfo::getNGlobalConstraints() { | 
| 1046 | 
  | 
    int nGlobalConstraints; | 
| 1047 | 
  | 
#ifdef IS_MPI | 
| 1048 | 
< | 
    MPI_Allreduce(&nConstraints_, &nGlobalConstraints, 1, MPI_INT, MPI_SUM, | 
| 1049 | 
< | 
                  MPI_COMM_WORLD);     | 
| 1048 | 
> | 
    MPI::COMM_WORLD.Allreduce(&nConstraints_, &nGlobalConstraints, 1,  | 
| 1049 | 
> | 
                              MPI::INT, MPI::SUM); | 
| 1050 | 
  | 
#else | 
| 1051 | 
  | 
    nGlobalConstraints =  nConstraints_; | 
| 1052 | 
  | 
#endif |