26 double dr[
NDIM+1], invWid[
NDIM+1], shift[
NDIM+1], f, fcVal, rr, ri, r, uVal;
27 int c, I, J, m1, m1X, m1Y, m2, m2X, m2Y, n, offset;
28 int iofX[] = {0, 0, 1, 1, 0, -1, -1, -1, 0, 1},
29 iofY[] = {0, 0, 0, 1 ,1, 1, 0, -1, -1, -1};
37 for(n = 1 ; n <=
nAtom ; n ++){
43 for(n = 1 ; n <=
nAtom ; n ++){
54 double vr[
NDIM+1], fd, fdVal, rrinv;
62 for(m1Y = start ; m1Y <= end ; m1Y ++){
63 for(m1X = 1 ; m1X <=
cells[1] ; m1X ++){
65 for(offset = 1 ; offset <= 9 ; offset ++){
66 m2X = m1X + iofX[offset]; shift[1] = 0.;
68 m2X = 1; shift[1] =
region[1];
72 m2Y = m1Y + iofY[offset]; shift[2] = 0.;
74 m2Y = 1; shift[2] =
region[2];
84 dr[1] =
rx[I] -
rx[J] - shift[1];
85 dr[2] =
ry[I] -
ry[J] - shift[2];
86 rr =
Sqr(dr[1]) +
Sqr(dr[2]);
93 vr[1] =
vx[I] -
vx[J];
94 vr[2] =
vy[I] -
vy[J];
98 fdVal = -
gamman * (vr[1]*dr[1] + vr[2]*dr[2]) * rrinv;
111 virSum += 0.5 * fcVal * rr;
112 rfAtom += 0.5 * dr[1] * fcVal * dr[2];
115 dr[1] =
rx[I] -
rx[J] - shift[1];
116 dr[2] =
ry[I] -
ry[J] - shift[2];
117 rr =
Sqr(dr[1]) +
Sqr(dr[2]);
124 vr[1] =
vx[I] -
vx[J];
125 vr[2] =
vy[I] -
vy[J];
129 fdVal = -
gamman * (vr[1]*dr[1] + vr[2]*dr[2]) * rrinv;
142 virSum += 0.5 * fcVal * rr;
143 rfAtom += 0.5 * dr[1] * fcVal * dr[2];