diff --git a/arraycontext/impl/pyopencl/__init__.py b/arraycontext/impl/pyopencl/__init__.py index a737428dacba2fe71b04349a797b5d05d630d3f2..585a99eac5279fdeb06f7ef76166c58744837c1d 100644 --- a/arraycontext/impl/pyopencl/__init__.py +++ b/arraycontext/impl/pyopencl/__init__.py @@ -161,7 +161,7 @@ class PyOpenCLArrayContext(ArrayContext): return cl_array.to_device(self.queue, array, allocator=self.allocator) def to_numpy(self, array): - if not self._force_device_scalars and np.isscalar(array): + if np.isscalar(array): return array return array.get(queue=self.queue) diff --git a/arraycontext/impl/pytato/__init__.py b/arraycontext/impl/pytato/__init__.py index 672a2859bfaf8fc58d6233fdb0b2b1e3b40c13dd..a7a0b1b2bbde4118e94d43fc07971992881d2e30 100644 --- a/arraycontext/impl/pytato/__init__.py +++ b/arraycontext/impl/pytato/__init__.py @@ -105,6 +105,9 @@ class PytatoPyOpenCLArrayContext(ArrayContext): return pt.make_data_wrapper(cl_array) def to_numpy(self, array): + if np.isscalar(array): + return array + cl_array = self.freeze(array) return cl_array.get(queue=self.queue)