39 posTmp[0] = pos_(idx, 0);
40 posTmp[1] = pos_(idx, 1);
41 posTmp[2] = pos_(idx, 2);
43 real_t forceTmp[3] = {0_r, 0_r, 0_r};
45 const auto numNeighbors =
idx_c(HalfNeighborList::numNeighbor(verletList_, idx));
46 for (
idx_t n = 0; n < numNeighbors; ++n)
48 idx_t jdx =
idx_c(HalfNeighborList::getNeighbor(verletList_, idx, n));
51 auto dx = posTmp[0] - pos_(jdx, 0);
52 auto dy = posTmp[1] - pos_(jdx, 1);
53 auto dz = posTmp[2] - pos_(jdx, 2);
55 auto distSqr = dx * dx + dy * dy + dz * dz;
59 forceTmp[0] += dx * force;
60 forceTmp[1] += dy * force;
61 forceTmp[2] += dz * force;
63 force_(jdx, 0) -= dx * force;
64 force_(jdx, 1) -= dy * force;
65 force_(jdx, 2) -= dz * force;
68 force_(idx, 0) += forceTmp[0];
69 force_(idx, 1) += forceTmp[1];
70 force_(idx, 2) += forceTmp[2];