diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py index a1396ff9b86a9b3312484bdab9e388832fe733ea..e1e9091cf0ff61457add2191e42d49ce4b879e25 100644 --- a/grudge/symbolic/operators.py +++ b/grudge/symbolic/operators.py @@ -475,11 +475,18 @@ def stiffness_t(dim): def integral(arg, dd=None): + sym = _sym() + if dd is None: - dd = _sym().DD_VOLUME + dd = sym.DD_VOLUME - from grudge import sym - return sym.NodalSum(dd)(sym.MassOperator()(sym.Ones(dd))*arg) + dd = sym.as_dofdesc(dd) + + return sym.NodalSum(dd)( + arg * sym.cse( + sym.MassOperator(dd_in=dd)(sym.Ones(dd)), + "mass_quad_weights", + sym.cse_scope.DISCRETIZATION)) def norm(p, arg, dd=None): @@ -489,7 +496,9 @@ def norm(p, arg, dd=None): sym = _sym() if dd is None: - dd = _sym().DD_VOLUME + dd = sym.DD_VOLUME + + dd = sym.as_dofdesc(dd) if p == 2: norm_squared = sym.NodalSum(dd_in=dd)(