| 53 |  | // surrounding cells (not just the 14 upper triangular blocks that | 
| 54 |  | // are used when the processor can see all pairs) | 
| 55 |  | #ifdef IS_MPI | 
| 56 | < | cellOffsets_.push_back( Vector3i(-1, 0, 0) ); | 
| 57 | < | cellOffsets_.push_back( Vector3i(-1,-1, 0) ); | 
| 58 | < | cellOffsets_.push_back( Vector3i( 0,-1, 0) ); | 
| 59 | < | cellOffsets_.push_back( Vector3i( 1,-1, 0) ); | 
| 60 | < | cellOffsets_.push_back( Vector3i( 0, 0,-1) ); | 
| 61 | < | cellOffsets_.push_back( Vector3i(-1, 0, 1) ); | 
| 56 | > | cellOffsets_.clear(); | 
| 57 |  | cellOffsets_.push_back( Vector3i(-1,-1,-1) ); | 
| 58 |  | cellOffsets_.push_back( Vector3i( 0,-1,-1) ); | 
| 59 | < | cellOffsets_.push_back( Vector3i( 1,-1,-1) ); | 
| 59 | > | cellOffsets_.push_back( Vector3i( 1,-1,-1) ); | 
| 60 | > | cellOffsets_.push_back( Vector3i(-1, 0,-1) ); | 
| 61 | > | cellOffsets_.push_back( Vector3i( 0, 0,-1) ); | 
| 62 |  | cellOffsets_.push_back( Vector3i( 1, 0,-1) ); | 
| 66 | – | cellOffsets_.push_back( Vector3i( 1, 1,-1) ); | 
| 67 | – | cellOffsets_.push_back( Vector3i( 0, 1,-1) ); | 
| 63 |  | cellOffsets_.push_back( Vector3i(-1, 1,-1) ); | 
| 64 | + | cellOffsets_.push_back( Vector3i( 0, 1,-1) ); | 
| 65 | + | cellOffsets_.push_back( Vector3i( 1, 1,-1) ); | 
| 66 | + | cellOffsets_.push_back( Vector3i(-1,-1, 0) ); | 
| 67 | + | cellOffsets_.push_back( Vector3i( 0,-1, 0) ); | 
| 68 | + | cellOffsets_.push_back( Vector3i( 1,-1, 0) ); | 
| 69 | + | cellOffsets_.push_back( Vector3i(-1, 0, 0) ); | 
| 70 | + | cellOffsets_.push_back( Vector3i( 0, 0, 0) ); | 
| 71 | + | cellOffsets_.push_back( Vector3i( 1, 0, 0) ); | 
| 72 | + | cellOffsets_.push_back( Vector3i(-1, 1, 0) ); | 
| 73 | + | cellOffsets_.push_back( Vector3i( 0, 1, 0) ); | 
| 74 | + | cellOffsets_.push_back( Vector3i( 1, 1, 0) ); | 
| 75 | + | cellOffsets_.push_back( Vector3i(-1,-1, 1) ); | 
| 76 | + | cellOffsets_.push_back( Vector3i( 0,-1, 1) ); | 
| 77 | + | cellOffsets_.push_back( Vector3i( 1,-1, 1) ); | 
| 78 | + | cellOffsets_.push_back( Vector3i(-1, 0, 1) ); | 
| 79 | + | cellOffsets_.push_back( Vector3i( 0, 0, 1) ); | 
| 80 | + | cellOffsets_.push_back( Vector3i( 1, 0, 1) ); | 
| 81 | + | cellOffsets_.push_back( Vector3i(-1, 1, 1) ); | 
| 82 | + | cellOffsets_.push_back( Vector3i( 0, 1, 1) ); | 
| 83 | + | cellOffsets_.push_back( Vector3i( 1, 1, 1) ); | 
| 84 |  | #endif | 
| 85 |  | } | 
| 86 |  |  | 
| 1106 |  | // add this cutoff group to the list of groups in this cell; | 
| 1107 |  | cellListCol_[cellIndex].push_back(i); | 
| 1108 |  | } | 
| 1109 | + |  | 
| 1110 |  | #else | 
| 1111 |  | for (int i = 0; i < nGroups_; i++) { | 
| 1112 |  | rs = snap_->cgData.position[i]; | 
| 1132 |  | // add this cutoff group to the list of groups in this cell; | 
| 1133 |  | cellList_[cellIndex].push_back(i); | 
| 1134 |  | } | 
| 1135 | + |  | 
| 1136 |  | #endif | 
| 1137 |  |  | 
| 1138 |  | for (int m1z = 0; m1z < nCells_.z(); m1z++) { | 
| 1145 |  | os != cellOffsets_.end(); ++os) { | 
| 1146 |  |  | 
| 1147 |  | Vector3i m2v = m1v + (*os); | 
| 1148 | < |  | 
| 1148 | > |  | 
| 1149 | > |  | 
| 1150 |  | if (m2v.x() >= nCells_.x()) { | 
| 1151 |  | m2v.x() = 0; | 
| 1152 |  | } else if (m2v.x() < 0) { | 
| 1164 |  | } else if (m2v.z() < 0) { | 
| 1165 |  | m2v.z() = nCells_.z() - 1; | 
| 1166 |  | } | 
| 1167 | < |  | 
| 1167 | > |  | 
| 1168 |  | int m2 = Vlinear (m2v, nCells_); | 
| 1169 |  |  | 
| 1170 |  | #ifdef IS_MPI | 
| 1173 |  | for (vector<int>::iterator j2 = cellListCol_[m2].begin(); | 
| 1174 |  | j2 != cellListCol_[m2].end(); ++j2) { | 
| 1175 |  |  | 
| 1176 | < | // In parallel, we need to visit *all* pairs of row & | 
| 1177 | < | // column indicies and will truncate later on. | 
| 1176 | > | // In parallel, we need to visit *all* pairs of row | 
| 1177 | > | // & column indicies and will divide labor in the | 
| 1178 | > | // force evaluation later. | 
| 1179 |  | dr = cgColData.position[(*j2)] - cgRowData.position[(*j1)]; | 
| 1180 |  | snap_->wrapVector(dr); | 
| 1181 |  | cuts = getGroupCutoffs( (*j1), (*j2) ); |