| 1042 |
|
* the parallel decomposition. |
| 1043 |
|
*/ |
| 1044 |
|
bool ForceMatrixDecomposition::skipAtomPair(int atom1, int atom2, int cg1, int cg2) { |
| 1045 |
< |
int unique_id_1, unique_id_2, group1, group2; |
| 1045 |
> |
int unique_id_1, unique_id_2; |
| 1046 |
|
|
| 1047 |
|
#ifdef IS_MPI |
| 1048 |
|
// in MPI, we have to look up the unique IDs for each atom |
| 1049 |
|
unique_id_1 = AtomRowToGlobal[atom1]; |
| 1050 |
|
unique_id_2 = AtomColToGlobal[atom2]; |
| 1051 |
< |
group1 = cgRowToGlobal[cg1]; |
| 1052 |
< |
group2 = cgColToGlobal[cg2]; |
| 1051 |
> |
// group1 = cgRowToGlobal[cg1]; |
| 1052 |
> |
// group2 = cgColToGlobal[cg2]; |
| 1053 |
|
#else |
| 1054 |
|
unique_id_1 = AtomLocalToGlobal[atom1]; |
| 1055 |
|
unique_id_2 = AtomLocalToGlobal[atom2]; |
| 1056 |
< |
group1 = cgLocalToGlobal[cg1]; |
| 1057 |
< |
group2 = cgLocalToGlobal[cg2]; |
| 1056 |
> |
int group1 = cgLocalToGlobal[cg1]; |
| 1057 |
> |
int group2 = cgLocalToGlobal[cg2]; |
| 1058 |
|
#endif |
| 1059 |
|
|
| 1060 |
|
if (unique_id_1 == unique_id_2) return true; |
| 1295 |
|
#endif |
| 1296 |
|
|
| 1297 |
|
RealType rList_ = (largestRcut_ + skinThickness_); |
| 1298 |
– |
RealType rl2 = rList_ * rList_; |
| 1298 |
|
Snapshot* snap_ = sman_->getCurrentSnapshot(); |
| 1299 |
|
Mat3x3d Hmat = snap_->getHmat(); |
| 1300 |
|
Vector3d Hx = Hmat.getColumn(0); |
| 1338 |
|
for (int j = 0; j < 3; j++) { |
| 1339 |
|
scaled[j] -= roundMe(scaled[j]); |
| 1340 |
|
scaled[j] += 0.5; |
| 1341 |
+ |
// Handle the special case when an object is exactly on the |
| 1342 |
+ |
// boundary (a scaled coordinate of 1.0 is the same as |
| 1343 |
+ |
// scaled coordinate of 0.0) |
| 1344 |
+ |
if (scaled[j] >= 1.0) scaled[j] -= 1.0; |
| 1345 |
|
} |
| 1346 |
|
|
| 1347 |
|
// find xyz-indices of cell that cutoffGroup is in. |
| 1366 |
|
for (int j = 0; j < 3; j++) { |
| 1367 |
|
scaled[j] -= roundMe(scaled[j]); |
| 1368 |
|
scaled[j] += 0.5; |
| 1369 |
+ |
// Handle the special case when an object is exactly on the |
| 1370 |
+ |
// boundary (a scaled coordinate of 1.0 is the same as |
| 1371 |
+ |
// scaled coordinate of 0.0) |
| 1372 |
+ |
if (scaled[j] >= 1.0) scaled[j] -= 1.0; |
| 1373 |
|
} |
| 1374 |
|
|
| 1375 |
|
// find xyz-indices of cell that cutoffGroup is in. |
| 1396 |
|
for (int j = 0; j < 3; j++) { |
| 1397 |
|
scaled[j] -= roundMe(scaled[j]); |
| 1398 |
|
scaled[j] += 0.5; |
| 1399 |
+ |
// Handle the special case when an object is exactly on the |
| 1400 |
+ |
// boundary (a scaled coordinate of 1.0 is the same as |
| 1401 |
+ |
// scaled coordinate of 0.0) |
| 1402 |
+ |
if (scaled[j] >= 1.0) scaled[j] -= 1.0; |
| 1403 |
|
} |
| 1404 |
|
|
| 1405 |
|
// find xyz-indices of cell that cutoffGroup is in. |