Commit 34b7e213 authored by Peter Eastman's avatar Peter Eastman
Browse files

Part of the Ewald energy was being returned even when that force group wasn't requested

parent 90ddfc31
...@@ -1495,12 +1495,13 @@ public: ...@@ -1495,12 +1495,13 @@ public:
addEnergyKernel(addEnergyKernel), pmeEnergyBuffer(pmeEnergyBuffer), forceGroup(forceGroup) { addEnergyKernel(addEnergyKernel), pmeEnergyBuffer(pmeEnergyBuffer), forceGroup(forceGroup) {
} }
double computeForceAndEnergy(bool includeForces, bool includeEnergy, int groups) { double computeForceAndEnergy(bool includeForces, bool includeEnergy, int groups) {
if ((groups&(1<<forceGroup)) != 0) if ((groups&(1<<forceGroup)) != 0) {
cuStreamWaitEvent(cu.getCurrentStream(), event, 0); cuStreamWaitEvent(cu.getCurrentStream(), event, 0);
if (includeEnergy) { if (includeEnergy) {
int bufferSize = pmeEnergyBuffer.getSize(); int bufferSize = pmeEnergyBuffer.getSize();
void* args[] = {&pmeEnergyBuffer.getDevicePointer(), &cu.getEnergyBuffer().getDevicePointer(), &bufferSize}; void* args[] = {&pmeEnergyBuffer.getDevicePointer(), &cu.getEnergyBuffer().getDevicePointer(), &bufferSize};
cu.executeKernel(addEnergyKernel, args, bufferSize); cu.executeKernel(addEnergyKernel, args, bufferSize);
}
} }
return 0.0; return 0.0;
} }
......
...@@ -1502,9 +1502,9 @@ public: ...@@ -1502,9 +1502,9 @@ public:
events[0] = event; events[0] = event;
event = cl::Event(); event = cl::Event();
cl.getQueue().enqueueWaitForEvents(events); cl.getQueue().enqueueWaitForEvents(events);
if (includeEnergy)
cl.executeKernel(addEnergyKernel, pmeEnergyBuffer.getSize());
} }
if (includeEnergy)
cl.executeKernel(addEnergyKernel, pmeEnergyBuffer.getSize());
return 0.0; return 0.0;
} }
private: private:
......
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