--- trunk/src/brains/SimInfo.cpp 2013/06/16 15:15:42 1879 +++ trunk/src/brains/SimInfo.cpp 2013/08/19 13:12:00 1929 @@ -91,6 +91,13 @@ namespace OpenMD { for (vector::iterator i = components.begin(); i !=components.end(); ++i) { molStamp = (*i)->getMoleculeStamp(); + if ( (*i)->haveRegion() ) { + molStamp->setRegion( (*i)->getRegion() ); + } else { + // set the region to a disallowed value: + molStamp->setRegion( -1 ); + } + nMolWithSameStamp = (*i)->getNMol(); addMoleculeStamp(molStamp, nMolWithSameStamp); @@ -931,16 +938,21 @@ namespace OpenMD { } } - // Build the identArray_ + // Build the identArray_ and regions_ identArray_.clear(); - identArray_.reserve(getNAtoms()); - for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { + identArray_.reserve(getNAtoms()); + regions_.clear(); + regions_.reserve(getNAtoms()); + + for(mol = beginMolecule(mi); mol != NULL; mol = nextMolecule(mi)) { + int reg = mol->getRegion(); for(atom = mol->beginAtom(ai); atom != NULL; atom = mol->nextAtom(ai)) { identArray_.push_back(atom->getIdent()); + regions_.push_back(reg); } } - + topologyDone_ = true; }