From ffc2d041b95e87717cd5c02418f564a75cf50f83 Mon Sep 17 00:00:00 2001
From: Kaushik Kulkarni <kgk2@illinois.edu>
Date: Sun, 7 Mar 2021 17:28:35 -0600
Subject: [PATCH] do not use CL-specific max, min, sum

---
 grudge/execution.py | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/grudge/execution.py b/grudge/execution.py
index 4b86fcb9..c6d745f3 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -27,7 +27,6 @@ import numpy as np
 from pytools import memoize_in
 
 import loopy as lp
-import pyopencl as cl
 import pyopencl.array  # noqa
 
 from meshmode.dof_array import DOFArray, thaw, flatten, unflatten
@@ -158,25 +157,22 @@ class ExecutionMapper(mappers.Evaluator,
     # {{{ nodal reductions
 
     def map_nodal_sum(self, op, field_expr):
-        # FIXME: Could allow array scalars
-        # FIXME: Fix CL-specific-ness
+        actx = self.array_context
         return sum([
-                cl.array.sum(grp_ary).get()[()]
-                for grp_ary in self.rec(field_expr)
-                ])
+            actx.to_numpy(actx.np.sum(grp_ary))[()]
+            for grp_ary in self.rec(field_expr)
+            ])
 
     def map_nodal_max(self, op, field_expr):
-        # FIXME: Could allow array scalars
-        # FIXME: Fix CL-specific-ness
+        actx = self.array_context
         return np.max([
-            cl.array.max(grp_ary).get()[()]
+            actx.to_numpy(actx.np.max(grp_ary))[()]
             for grp_ary in self.rec(field_expr)])
 
     def map_nodal_min(self, op, field_expr):
-        # FIXME: Could allow array scalars
-        # FIXME: Fix CL-specific-ness
+        actx = self.array_context
         return np.min([
-            cl.array.min(grp_ary).get()[()]
+            actx.to_numpy(actx.np.min(grp_ary))[()]
             for grp_ary in self.rec(field_expr)])
 
     # }}}
-- 
GitLab