| 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 |  | */ | 
| 47 |  | * @version 1.0 | 
| 48 |  | */ | 
| 49 |  |  | 
| 50 | + | #ifdef IS_MPI | 
| 51 | + | #include <mpi.h> | 
| 52 | + | #endif | 
| 53 |  | #include <algorithm> | 
| 54 |  | #include <set> | 
| 55 |  | #include <map> | 
| 64 |  | #include "io/ForceFieldOptions.hpp" | 
| 65 |  | #include "brains/ForceField.hpp" | 
| 66 |  | #include "nonbonded/SwitchingFunction.hpp" | 
| 64 | – | #ifdef IS_MPI | 
| 65 | – | #include <mpi.h> | 
| 66 | – | #endif | 
| 67 |  |  | 
| 68 |  | using namespace std; | 
| 69 |  | namespace OpenMD { | 
| 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); | 
| 418 |  | atomGroups.insert(map<int, set<int> >::value_type(sd->getGlobalIndex(), oneAtomSet)); | 
| 419 |  | } | 
| 420 |  | } | 
| 421 | + |  | 
| 422 |  |  | 
| 423 |  | for (bond= mol->beginBond(bondIter); bond != NULL; | 
| 424 |  | bond = mol->nextBond(bondIter)) { | 
| 788 |  | #endif | 
| 789 |  |  | 
| 790 |  | return atomTypes; | 
| 791 | + | } | 
| 792 | + |  | 
| 793 | + |  | 
| 794 | + | int getGlobalCountOfType(AtomType* atype) { | 
| 795 | + | /* | 
| 796 | + | set<AtomType*> atypes = getSimulatedAtomTypes(); | 
| 797 | + | map<AtomType*, int> counts_; | 
| 798 | + |  | 
| 799 | + | for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { | 
| 800 | + | for(atom = mol->beginAtom(ai); atom != NULL; | 
| 801 | + | atom = mol->nextAtom(ai)) { | 
| 802 | + | atom->getAtomType(); | 
| 803 | + | } | 
| 804 | + | } | 
| 805 | + | */ | 
| 806 | + | return 0; | 
| 807 |  | } | 
| 808 |  |  | 
| 809 |  | void SimInfo::setupSimVariables() { | 
| 939 |  | } | 
| 940 |  | } | 
| 941 |  |  | 
| 942 | < | // Build the identArray_ | 
| 942 | > | // Build the identArray_ and regions_ | 
| 943 |  |  | 
| 944 |  | identArray_.clear(); | 
| 945 | < | identArray_.reserve(getNAtoms()); | 
| 946 | < | for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { | 
| 945 | > | identArray_.reserve(getNAtoms()); | 
| 946 | > | regions_.clear(); | 
| 947 | > | regions_.reserve(getNAtoms()); | 
| 948 | > |  | 
| 949 | > | for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { | 
| 950 | > | int reg = mol->getRegion(); | 
| 951 |  | for(atom = mol->beginAtom(ai); atom != NULL; atom = mol->nextAtom(ai)) { | 
| 952 |  | identArray_.push_back(atom->getIdent()); | 
| 953 | + | regions_.push_back(reg); | 
| 954 |  | } | 
| 955 |  | } | 
| 956 | < |  | 
| 928 | < | //scan topology | 
| 929 | < |  | 
| 930 | < | int* excludeList = excludedInteractions_.getPairList(); | 
| 931 | < | int* oneTwoList = oneTwoInteractions_.getPairList(); | 
| 932 | < | int* oneThreeList = oneThreeInteractions_.getPairList(); | 
| 933 | < | int* oneFourList = oneFourInteractions_.getPairList(); | 
| 934 | < |  | 
| 956 | > |  | 
| 957 |  | topologyDone_ = true; | 
| 958 |  | } | 
| 959 |  |  | 
| 1025 |  |  | 
| 1026 |  |  | 
| 1027 |  | StuntDouble* SimInfo::getIOIndexToIntegrableObject(int index) { | 
| 1028 | < | if (index >= IOIndexToIntegrableObject.size()) { | 
| 1028 | > | if (index >= int(IOIndexToIntegrableObject.size())) { | 
| 1029 |  | sprintf(painCave.errMsg, | 
| 1030 |  | "SimInfo::getIOIndexToIntegrableObject Error: Integrable Object\n" | 
| 1031 |  | "\tindex exceeds number of known objects!\n"); |