diff --git a/grudge/geometry/metrics.py b/grudge/geometry/metrics.py index 3090cd56547cf0b88a1576395367d1883667eec0..40eb0306bd114c369c289826b981ce159ab5a062 100644 --- a/grudge/geometry/metrics.py +++ b/grudge/geometry/metrics.py @@ -552,12 +552,15 @@ def mv_normal( import grudge.dof_desc as dof_desc dd = dof_desc.as_dofdesc(dd) - if not dd.is_trace(): - raise ValueError("may only request normals on boundaries") dim = dcoll.discr_from_dd(dd).dim ambient_dim = dcoll.ambient_dim + if dim == ambient_dim: + raise ValueError("may only request normals on domains whose topological " + f"dimension ({dim}) differs from " + f"their ambient dimension ({ambient_dim})") + if dim == ambient_dim - 1: return rel_mv_normal(actx, dcoll, dd=dd)