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_); |
1175 |
|
idat.excluded = excludeAtomPair(atom1, atom2); |
1176 |
|
|
1177 |
|
#ifdef IS_MPI |
1178 |
< |
idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]); |
1178 |
> |
//idat.atypes = make_pair( atypesRow[atom1], atypesCol[atom2]); |
1179 |
|
idat.atid1 = identsRow[atom1]; |
1180 |
|
idat.atid2 = identsCol[atom2]; |
1181 |
< |
//idat.atypes = make_pair( ff_->getAtomType(identsRow[atom1]), |
1182 |
< |
// ff_->getAtomType(identsCol[atom2]) ); |
1183 |
< |
|
1181 |
> |
|
1182 |
> |
if (regionsRow[atom1] >= 0 && regionsCol[atom2] >= 0) |
1183 |
> |
idat.sameRegion = (regionsRow[atom1] == regionsCol[atom2]); |
1184 |
> |
|
1185 |
|
if (storageLayout_ & DataStorage::dslAmat) { |
1186 |
|
idat.A1 = &(atomRowData.aMat[atom1]); |
1187 |
|
idat.A2 = &(atomColData.aMat[atom2]); |
1234 |
|
|
1235 |
|
#else |
1236 |
|
|
1237 |
< |
idat.atypes = make_pair( atypesLocal[atom1], atypesLocal[atom2]); |
1237 |
> |
//idat.atypes = make_pair( atypesLocal[atom1], atypesLocal[atom2]); |
1238 |
|
idat.atid1 = idents[atom1]; |
1239 |
|
idat.atid2 = idents[atom2]; |
1240 |
|
|
1241 |
+ |
if (regions[atom1] >= 0 && regions[atom2] >= 0) |
1242 |
+ |
idat.sameRegion = (regions[atom1] == regions[atom2]); |
1243 |
+ |
|
1244 |
|
if (storageLayout_ & DataStorage::dslAmat) { |
1245 |
|
idat.A1 = &(snap_->atomData.aMat[atom1]); |
1246 |
|
idat.A2 = &(snap_->atomData.aMat[atom2]); |