diff --git a/grudge/execution.py b/grudge/execution.py index c6d745f390b3a3b8c7db561600335a21d10fec15..cd136758895fb24ded0476b962d0272b689aef28 100644 --- a/grudge/execution.py +++ b/grudge/execution.py @@ -158,22 +158,18 @@ class ExecutionMapper(mappers.Evaluator, def map_nodal_sum(self, op, field_expr): actx = self.array_context - return sum([ - actx.to_numpy(actx.np.sum(grp_ary))[()] - for grp_ary in self.rec(field_expr) - ]) + return actx.np.sum(actx.np.stack([actx.np.sum(grp_ary) + for grp_ary in self.rec(field_expr)])) def map_nodal_max(self, op, field_expr): actx = self.array_context - return np.max([ - actx.to_numpy(actx.np.max(grp_ary))[()] - for grp_ary in self.rec(field_expr)]) + return actx.np.max(actx.np.stack([actx.np.max(grp_ary) + for grp_ary in self.rec(field_expr)])) def map_nodal_min(self, op, field_expr): actx = self.array_context - return np.min([ - actx.to_numpy(actx.np.min(grp_ary))[()] - for grp_ary in self.rec(field_expr)]) + return actx.np.min(actx.np.stack([actx.np.min(grp_ary) + for grp_ary in self.rec(field_expr)])) # }}}