From 90ba88f3b47cf89d4232ea8e0fc3139fd434e2bd Mon Sep 17 00:00:00 2001 From: Lester Hedges Date: Wed, 5 Aug 2026 12:01:03 +0100 Subject: [PATCH] Backport fix from PR #39. [ci skip] --- src/loch/_sampler.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/loch/_sampler.py b/src/loch/_sampler.py index 921c90d..e2f99c9 100644 --- a/src/loch/_sampler.py +++ b/src/loch/_sampler.py @@ -1134,6 +1134,8 @@ def delete_waters(self, context: _openmm.Context) -> None: """ Delete any waters within the GCMC sphere. (Convert to ghosts.) + This does nothing when there is no sphere. + Parameters ---------- @@ -1141,6 +1143,10 @@ def delete_waters(self, context: _openmm.Context) -> None: The OpenMM context to use. """ + # There is no sphere to empty. + if self._reference is None: + return + # Set the NonBondedForce(s). self._set_nonbonded_forces(context) @@ -1162,7 +1168,7 @@ def delete_waters(self, context: _openmm.Context) -> None: self._kernels["deletion"]( _np.int32(self._num_waters), self._deletion_candidates, - self._backend.to_gpu(target.astype(_np.float32)), + target, _np.float32(self._radius.value()), self._gpu_position, self._gpu_water_idx, @@ -1259,7 +1265,7 @@ def num_waters(self, context=None) -> int: self._kernels["deletion"]( _np.int32(self._num_waters), self._deletion_candidates, - self._backend.to_gpu(target.astype(_np.float32)), + target, _np.float32(self._radius.value()), self._gpu_position, self._gpu_water_idx,