| 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]); |