From e284a28a2c7e953ffadab68cbda47e5de1a7102b Mon Sep 17 00:00:00 2001
From: Matt Wala <wala1@illinois.edu>
Date: Mon, 19 Sep 2016 23:00:29 -0500
Subject: [PATCH] Ensure unit_nodes has the right shape for the 1d case of
 QuadratureSimplexElementGroup

---
 meshmode/discretization/connection/refinement.py | 2 ++
 meshmode/discretization/poly_element.py          | 8 +++++++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/meshmode/discretization/connection/refinement.py b/meshmode/discretization/connection/refinement.py
index 4477a9bf..5ef91fe7 100644
--- a/meshmode/discretization/connection/refinement.py
+++ b/meshmode/discretization/connection/refinement.py
@@ -51,6 +51,8 @@ def _map_unit_nodes_to_children(unit_nodes, tesselation):
     """
     ref_vertices = np.array(tesselation.ref_vertices, dtype=np.float)
 
+    assert len(unit_nodes.shape) == 2
+
     for child_element in tesselation.children:
         center = np.vstack(ref_vertices[child_element[0]])
         # Scale by 1/2 since sides in the tesselation have length 2.
diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py
index a5319bc8..54aaabef 100644
--- a/meshmode/discretization/poly_element.py
+++ b/meshmode/discretization/poly_element.py
@@ -144,7 +144,13 @@ class QuadratureSimplexElementGroup(PolynomialSimplexElementGroupBase):
     @property
     @memoize_method
     def unit_nodes(self):
-        return self._quadrature_rule().nodes
+        result = self._quadrature_rule().nodes
+        if len(result.shape) == 1:
+            result = np.array([result])
+
+        dim2, nunit_nodes = result.shape
+        assert dim2 == self.mesh_el_group.dim
+        return result
 
     @property
     @memoize_method
-- 
GitLab