Commit 70099528 authored by Mark Friedrichs's avatar Mark Friedrichs
Browse files

Accumulation of Born force was incorrect in USE_OUTPUT_BUFFER_PER_WARP block...

Accumulation of Born force was incorrect in USE_OUTPUT_BUFFER_PER_WARP block w/ cell coordinates  x != y
parent 0a5680a7
...@@ -124,6 +124,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -124,6 +124,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
#endif #endif
#else #else
float factorX = apos.w * psA[j].q * invR; float factorX = apos.w * psA[j].q * invR;
dEdR += factorX; dEdR += factorX;
/* E */ /* E */
CDLJObcGbsa_energy += factorX; CDLJObcGbsa_energy += factorX;
...@@ -214,6 +215,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -214,6 +215,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
#endif #endif
#else #else
float factorX = apos.w * psA[j].q * invR; float factorX = apos.w * psA[j].q * invR;
dEdR += factorX; dEdR += factorX;
/* E */ /* E */
CDLJObcGbsa_energy += factorX; CDLJObcGbsa_energy += factorX;
...@@ -361,6 +363,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -361,6 +363,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
#endif #endif
#else #else
float factorX = apos.w * psA[tj].q * invR; float factorX = apos.w * psA[tj].q * invR;
dEdR += factorX; dEdR += factorX;
/* E */ /* E */
CDLJObcGbsa_energy += factorX; CDLJObcGbsa_energy += factorX;
...@@ -449,6 +452,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -449,6 +452,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
#endif #endif
#else #else
float factorX = apos.w * psA[j].q * invR; float factorX = apos.w * psA[j].q * invR;
dEdR += factorX; dEdR += factorX;
/* E */ /* E */
CDLJObcGbsa_energy += factorX; CDLJObcGbsa_energy += factorX;
...@@ -664,7 +668,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -664,7 +668,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
of.z += af.z; of.z += af.z;
of.w += af.w; of.w += af.w;
cSim.pForce4a[offset] = of; cSim.pForce4a[offset] = of;
cSim.pBornForce[offset] = af.w; cSim.pBornForce[offset] = of.w;
offset = y + tgx + warp*cSim.stride; offset = y + tgx + warp*cSim.stride;
of = cSim.pForce4a[offset]; of = cSim.pForce4a[offset];
of.x += sA[threadIdx.x].fx; of.x += sA[threadIdx.x].fx;
...@@ -672,7 +676,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int* ...@@ -672,7 +676,7 @@ __global__ void METHOD_NAME(kCalculateCDLJObcGbsa, Forces1_kernel)(unsigned int*
of.z += sA[threadIdx.x].fz; of.z += sA[threadIdx.x].fz;
of.w += sA[threadIdx.x].fb; of.w += sA[threadIdx.x].fb;
cSim.pForce4a[offset] = of; cSim.pForce4a[offset] = of;
cSim.pBornForce[offset] = af.w; cSim.pBornForce[offset] = of.w;
#else #else
unsigned int offset = x + tgx + (y >> GRIDBITS) * cSim.stride; unsigned int offset = x + tgx + (y >> GRIDBITS) * cSim.stride;
cSim.pForce4a[offset] = af; cSim.pForce4a[offset] = af;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment