| version 1.1067 | version 1.1068 |
|---|
| |
| const Lattice &lattice = patch[0]->lattice; | const Lattice &lattice = patch[0]->lattice; |
| params.offset = lattice.offset(trans[a]) - lattice.offset(trans[b]); | params.offset = lattice.offset(trans[a]) - lattice.offset(trans[b]); |
| | |
| | PatchMap* patchMap = PatchMap::Object(); |
| | params.offset_f = params.offset + lattice.unscale(patchMap->center(patchID[a])) |
| | - lattice.unscale(patchMap->center(patchID[b])); |
| | |
| // Atom Sorting : If we are sorting the atoms along the line connecting | // Atom Sorting : If we are sorting the atoms along the line connecting |
| // the patch centers, then calculate a normalized vector pointing from | // the patch centers, then calculate a normalized vector pointing from |
| // patch a to patch b (i.e. outer loop patch to inner loop patch). | // patch a to patch b (i.e. outer loop patch to inner loop patch). |
| #if NAMD_ComputeNonbonded_SortAtoms != 0 | #if NAMD_ComputeNonbonded_SortAtoms != 0 |
| | |
| // Center of patch a (outer-loop; i-loop) and patch b (inner-loop; j/k-loop) | params.projLineVec = params.offset_f * ( -1. / params.offset_f.length() ); |
| PatchMap* patchMap = PatchMap::Object(); | |
| ScaledPosition p_a_center, p_b_center; | |
| p_a_center.x = patchMap->min_a(patchID[a]); | |
| p_a_center.y = patchMap->min_b(patchID[a]); | |
| p_a_center.z = patchMap->min_c(patchID[a]); | |
| p_b_center.x = patchMap->min_a(patchID[b]); | |
| p_b_center.y = patchMap->min_b(patchID[b]); | |
| p_b_center.z = patchMap->min_c(patchID[b]); | |
| p_a_center.x += patchMap->max_a(patchID[a]); | |
| p_a_center.y += patchMap->max_b(patchID[a]); | |
| p_a_center.z += patchMap->max_c(patchID[a]); | |
| p_b_center.x += patchMap->max_a(patchID[b]); | |
| p_b_center.y += patchMap->max_b(patchID[b]); | |
| p_b_center.z += patchMap->max_c(patchID[b]); | |
| p_a_center *= (BigReal)0.5; | |
| p_b_center *= (BigReal)0.5; | |
| p_a_center = lattice.unscale(p_a_center); | |
| p_b_center = lattice.unscale(p_b_center); | |
| | |
| // Adjust patch a's center by the offset | |
| p_a_center.x += params.offset.x; | |
| p_a_center.y += params.offset.y; | |
| p_a_center.z += params.offset.z; | |
| | |
| // Calculate and fill in the projected line vector | |
| params.projLineVec = p_b_center - p_a_center; | |
| params.projLineVec /= params.projLineVec.length(); // Normalize the vector | |
| | |
| #endif | #endif |
| | |
| |
| params.p[1] = p[b]; | params.p[1] = p[b]; |
| params.pExt[0] = pExt[a]; | params.pExt[0] = pExt[a]; |
| params.pExt[1] = pExt[b]; | params.pExt[1] = pExt[b]; |
| | #ifdef NAMD_KNL |
| | params.pFlt[0] = patch[a]->getCompAtomFlt(); |
| | params.pFlt[1] = patch[b]->getCompAtomFlt(); |
| | #endif |
| // BEGIN LA | // BEGIN LA |
| params.doLoweAndersen = patch[0]->flags.doLoweAndersen; | params.doLoweAndersen = patch[0]->flags.doLoweAndersen; |
| if (params.doLoweAndersen) { | if (params.doLoweAndersen) { |