99 |
|
nGroups_ = info_->getNLocalCutoffGroups(); |
100 |
|
// gather the information for atomtype IDs (atids): |
101 |
|
idents = info_->getIdentArray(); |
102 |
+ |
regions = info_->getRegions(); |
103 |
|
AtomLocalToGlobal = info_->getGlobalAtomIndices(); |
104 |
|
cgLocalToGlobal = info_->getGlobalGroupIndices(); |
105 |
|
vector<int> globalGroupMembership = info_->getGlobalGroupMembership(); |
164 |
|
|
165 |
|
AtomPlanIntRow->gather(idents, identsRow); |
166 |
|
AtomPlanIntColumn->gather(idents, identsCol); |
167 |
+ |
|
168 |
+ |
regionsRow.resize(nAtomsInRow_); |
169 |
+ |
regionsCol.resize(nAtomsInCol_); |
170 |
+ |
|
171 |
+ |
AtomPlanIntRow->gather(regions, regionsRow); |
172 |
+ |
AtomPlanIntColumn->gather(regions, regionsCol); |
173 |
|
|
174 |
|
// allocate memory for the parallel objects |
175 |
|
atypesRow.resize(nAtomsInRow_); |
1178 |
|
idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]); |
1179 |
|
idat.atid1 = identsRow[atom1]; |
1180 |
|
idat.atid2 = identsCol[atom2]; |
1181 |
+ |
|
1182 |
+ |
if (regionsRow[atom1] >= 0 && regionsCol[atom2] >= 0) |
1183 |
+ |
idat.sameRegion = (regionsRow[atom1] == regionsCol[atom2]); |
1184 |
+ |
|
1185 |
|
//idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]), |
1186 |
|
// ff_->getAtomType(identsCol[atom2]) ); |
1187 |
|
|
1241 |
|
idat.atid1 = idents[atom1]; |
1242 |
|
idat.atid2 = idents[atom2]; |
1243 |
|
|
1244 |
+ |
if (regions[atom1] >= 0 && regions[atom2] >= 0) |
1245 |
+ |
idat.sameRegion = (regions[atom1] == regions[atom2]); |
1246 |
+ |
|
1247 |
|
if (storageLayout_ & DataStorage::dslAmat) { |
1248 |
|
idat.A1 = &(snap_->atomData.aMat[atom1]); |
1249 |
|
idat.A2 = &(snap_->atomData.aMat[atom2]); |