From ee4eb68812ac09adc629faaef58fbc2df79f86b8 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Mon, 4 Jan 2016 01:57:09 -0600 Subject: [PATCH] Fix non-contig transfers in a multi-group setting in opposite-face connections --- meshmode/discretization/connection/opposite_face.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/meshmode/discretization/connection/opposite_face.py b/meshmode/discretization/connection/opposite_face.py index b7b92aba..6509c620 100644 --- a/meshmode/discretization/connection/opposite_face.py +++ b/meshmode/discretization/connection/opposite_face.py @@ -99,8 +99,10 @@ def _make_cross_face_batches( # {{{ invert face map (using Gauss-Newton) to_bdry_nodes = ( - bdry_discr.groups[i_tgt_grp].view(bdry_discr.nodes()) - .get(queue=queue) + # FIXME: This should view-then-transfer (but PyOpenCL doesn't do + # non-contiguous transfers for now). + bdry_discr.groups[i_tgt_grp].view( + bdry_discr.nodes().get(queue=queue)) [:, to_bdry_element_indices]) tol = 1e3 * np.finfo(to_bdry_nodes.dtype).eps @@ -122,8 +124,10 @@ def _make_cross_face_batches( # (ambient_dim, nelements, nfrom_unit_nodes) from_bdry_nodes = ( - bdry_discr.groups[i_src_grp].view(bdry_discr.nodes()) - .get(queue=queue) + # FIXME: This should view-then-transfer (but PyOpenCL doesn't do + # non-contiguous transfers for now). + bdry_discr.groups[i_src_grp].view( + bdry_discr.nodes().get(queue=queue)) [:, from_bdry_element_indices]) def apply_map(unit_nodes): -- GitLab