Commit 61bb8786 authored by Peter Eastman's avatar Peter Eastman
Browse files

Bug fixes

parent 925b00ec
...@@ -90,6 +90,7 @@ void CudaNonbondedUtilities::addInteraction(bool usesCutoff, bool usesPeriodic, ...@@ -90,6 +90,7 @@ void CudaNonbondedUtilities::addInteraction(bool usesCutoff, bool usesPeriodic,
useCutoff = usesCutoff; useCutoff = usesCutoff;
usePeriodic = usesPeriodic; usePeriodic = usesPeriodic;
cutoff = cutoffDistance; cutoff = cutoffDistance;
if (kernel.size() > 0)
kernelSource += kernel+"\n"; kernelSource += kernel+"\n";
nonbondedForceGroup = forceGroup; nonbondedForceGroup = forceGroup;
} }
...@@ -124,8 +125,6 @@ void CudaNonbondedUtilities::requestExclusions(const vector<vector<int> >& exclu ...@@ -124,8 +125,6 @@ void CudaNonbondedUtilities::requestExclusions(const vector<vector<int> >& exclu
} }
void CudaNonbondedUtilities::initialize(const System& system) { void CudaNonbondedUtilities::initialize(const System& system) {
if (cutoff == -1.0)
return; // There are no nonbonded interactions in the System.
string errorMessage = "Error initializing nonbonded utilities"; string errorMessage = "Error initializing nonbonded utilities";
if (atomExclusions.size() == 0) { if (atomExclusions.size() == 0) {
// No exclusions were specifically requested, so just mark every atom as not interacting with itself. // No exclusions were specifically requested, so just mark every atom as not interacting with itself.
......
...@@ -115,6 +115,7 @@ void OpenCLNonbondedUtilities::addInteraction(bool usesCutoff, bool usesPeriodic ...@@ -115,6 +115,7 @@ void OpenCLNonbondedUtilities::addInteraction(bool usesCutoff, bool usesPeriodic
useCutoff = usesCutoff; useCutoff = usesCutoff;
usePeriodic = usesPeriodic; usePeriodic = usesPeriodic;
cutoff = cutoffDistance; cutoff = cutoffDistance;
if (kernel.size() > 0)
kernelSource += kernel+"\n"; kernelSource += kernel+"\n";
nonbondedForceGroup = forceGroup; nonbondedForceGroup = forceGroup;
} }
...@@ -149,9 +150,6 @@ void OpenCLNonbondedUtilities::requestExclusions(const vector<vector<int> >& exc ...@@ -149,9 +150,6 @@ void OpenCLNonbondedUtilities::requestExclusions(const vector<vector<int> >& exc
} }
void OpenCLNonbondedUtilities::initialize(const System& system) { void OpenCLNonbondedUtilities::initialize(const System& system) {
if (cutoff == -1.0)
return; // There are no nonbonded interactions in the System.
if (atomExclusions.size() == 0) { if (atomExclusions.size() == 0) {
// No exclusions were specifically requested, so just mark every atom as not interacting with itself. // No exclusions were specifically requested, so just mark every atom as not interacting with itself.
...@@ -267,6 +265,7 @@ void OpenCLNonbondedUtilities::initialize(const System& system) { ...@@ -267,6 +265,7 @@ void OpenCLNonbondedUtilities::initialize(const System& system) {
// Create kernels. // Create kernels.
if (kernelSource.size() > 0)
forceKernel = createInteractionKernel(kernelSource, parameters, arguments, true, true); forceKernel = createInteractionKernel(kernelSource, parameters, arguments, true, true);
if (useCutoff) { if (useCutoff) {
map<string, string> defines; map<string, string> defines;
...@@ -364,7 +363,7 @@ void OpenCLNonbondedUtilities::prepareInteractions() { ...@@ -364,7 +363,7 @@ void OpenCLNonbondedUtilities::prepareInteractions() {
} }
void OpenCLNonbondedUtilities::computeInteractions() { void OpenCLNonbondedUtilities::computeInteractions() {
if (cutoff != -1.0) { if (kernelSource.size() > 0) {
if (useCutoff) { if (useCutoff) {
setPeriodicBoxSizeArg(context, forceKernel, 10); setPeriodicBoxSizeArg(context, forceKernel, 10);
setInvPeriodicBoxSizeArg(context, forceKernel, 11); setInvPeriodicBoxSizeArg(context, forceKernel, 11);
...@@ -410,7 +409,7 @@ void OpenCLNonbondedUtilities::updateNeighborListSize() { ...@@ -410,7 +409,7 @@ void OpenCLNonbondedUtilities::updateNeighborListSize() {
void OpenCLNonbondedUtilities::setTileRange(int startTileIndex, int numTiles) { void OpenCLNonbondedUtilities::setTileRange(int startTileIndex, int numTiles) {
this->startTileIndex = startTileIndex; this->startTileIndex = startTileIndex;
this->numTiles = numTiles; this->numTiles = numTiles;
if (cutoff == -1.0) if (kernelSource.size() == 0)
return; // There are no nonbonded interactions in the System. return; // There are no nonbonded interactions in the System.
forceKernel.setArg<cl_uint>(6, startTileIndex); forceKernel.setArg<cl_uint>(6, startTileIndex);
forceKernel.setArg<cl_uint>(7, startTileIndex+numTiles); forceKernel.setArg<cl_uint>(7, startTileIndex+numTiles);
......
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