| 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 |  | /** | 
| 92 |  | * Constructor of SimInfo | 
| 93 |  | * | 
| 94 | < | * @param molStampPairs MoleculeStamp Array. The first element of | 
| 95 | < | * the pair is molecule stamp, the second element is the total | 
| 96 | < | * number of molecules with the same molecule stamp in the system | 
| 94 | > | * @param ff pointer to a concrete ForceField instance | 
| 95 |  | * | 
| 96 | < | * @param ff pointer of a concrete ForceField instance | 
| 99 | < | * | 
| 100 | < | * @param simParams | 
| 96 | > | * @param simParams pointer to the simulation parameters in a Globals object | 
| 97 |  | */ | 
| 98 |  | SimInfo(ForceField* ff, Globals* simParams); | 
| 99 |  | virtual ~SimInfo(); | 
| 104 |  | * @return return true if adding successfully, return false if the | 
| 105 |  | * molecule is already in SimInfo | 
| 106 |  | * | 
| 107 | < | * @param mol molecule to be added | 
| 107 | > | * @param mol Molecule to be added | 
| 108 |  | */ | 
| 109 |  | bool addMolecule(Molecule* mol); | 
| 110 |  |  | 
| 270 |  | SnapshotManager* getSnapshotManager() { | 
| 271 |  | return sman_; | 
| 272 |  | } | 
| 273 | < |  | 
| 273 | > | /** Returns the storage layout (computed by SimCreator) */ | 
| 274 | > | int getStorageLayout() { | 
| 275 | > | return storageLayout_; | 
| 276 | > | } | 
| 277 | > | /** Sets the storage layout (computed by SimCreator) */ | 
| 278 | > | void setStorageLayout(int sl) { | 
| 279 | > | storageLayout_ = sl; | 
| 280 | > | } | 
| 281 | > |  | 
| 282 |  | /** Sets the snapshot manager. */ | 
| 283 |  | void setSnapshotManager(SnapshotManager* sman); | 
| 284 |  |  | 
| 389 |  |  | 
| 390 |  | /** | 
| 391 |  | * Sets GlobalGroupMembership | 
| 388 | – | * @see #SimCreator::setGlobalIndex | 
| 392 |  | */ | 
| 393 |  | void setGlobalGroupMembership(const vector<int>& ggm) { | 
| 394 |  | assert(ggm.size() == static_cast<size_t>(nGlobalAtoms_)); | 
| 397 |  |  | 
| 398 |  | /** | 
| 399 |  | * Sets GlobalMolMembership | 
| 397 | – | * @see #SimCreator::setGlobalIndex | 
| 400 |  | */ | 
| 401 |  | void setGlobalMolMembership(const vector<int>& gmm) { | 
| 402 |  | assert(gmm.size() == (static_cast<size_t>(nGlobalAtoms_ + | 
| 468 |  |  | 
| 469 |  | /** Returns the set of atom types present in this simulation */ | 
| 470 |  | set<AtomType*> getSimulatedAtomTypes(); | 
| 471 | + |  | 
| 472 | + | /** Returns the global count of atoms of a particular type */ | 
| 473 | + | int getGlobalCountOfType(AtomType* atype); | 
| 474 |  |  | 
| 475 |  | friend ostream& operator <<(ostream& o, SimInfo& info); | 
| 476 |  |  | 
| 616 |  |  | 
| 617 |  | PropertyMap properties_;       /**< Generic Properties can be added */ | 
| 618 |  | SnapshotManager* sman_;        /**< SnapshotManager (handles particle positions, etc.) */ | 
| 619 | + | int storageLayout_;            /**< Bits to tell how much data to store on each object */ | 
| 620 |  |  | 
| 621 |  | /** | 
| 622 |  | * The reason to have a local index manager is that when molecule | 
| 636 |  | string dumpFileName_; | 
| 637 |  | string statFileName_; | 
| 638 |  | string restFileName_; | 
| 633 | – |  | 
| 639 |  |  | 
| 640 |  | bool topologyDone_;  /** flag to indicate whether the topology has | 
| 641 |  | been scanned and all the relevant | 
| 673 |  |  | 
| 674 |  | /** | 
| 675 |  | * Set MolToProcMap array | 
| 671 | – | * @see #SimCreator::divideMolecules | 
| 676 |  | */ | 
| 677 |  | void setMolToProcMap(const vector<int>& molToProcMap) { | 
| 678 |  | molToProcMap_ = molToProcMap; |