diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py index 91fccdf645862b13233df5e639b4ed02c29cf53d..d0f3823c0b9bb368fa215a7187f39594bb190def 100644 --- a/meshmode/discretization/poly_element.py +++ b/meshmode/discretization/poly_element.py @@ -212,7 +212,11 @@ class PolynomialWarpAndBlendElementGroup(_MassMatrixQuadratureElementGroup): @memoize_method def unit_nodes(self): dim = self.mesh_el_group.dim - result = mp.warp_and_blend_nodes(dim, self.order) + if self.order == 0: + result = mp.warp_and_blend_nodes(dim, 1) + result = np.mean(result, axis=1).reshape(-1, 1) + else: + result = mp.warp_and_blend_nodes(dim, self.order) dim2, nunit_nodes = result.shape assert dim2 == dim diff --git a/meshmode/mesh/generation.py b/meshmode/mesh/generation.py index c4bf260860d533ef39d7f188abd756aa215d97ac..c524292c1fffd741951b5838729014ac38db64b5 100644 --- a/meshmode/mesh/generation.py +++ b/meshmode/mesh/generation.py @@ -321,6 +321,9 @@ def make_group_from_vertices(vertices, vertex_indices, order, group_factory = SimplexElementGroup if issubclass(group_factory, SimplexElementGroup): + if order < 1: + raise ValueError("can't represent simplices with mesh order < 1") + el_origins = el_vertices[:, :, 0][:, :, np.newaxis] # ambient_dim, nelements, nspan_vectors spanning_vectors = (