diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index f4e90c6affc8c4276cf4e6d91bfc1a80d5be4521..6d9c1dde8dc5167fa584572e85fa006509f65d25 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -401,9 +401,6 @@ def generate_accumulation_instruction(expr, visitor): accumvar = name_accumulation_variable(test_lfs.get_restriction() + ansatz_lfs.get_restriction()) predicates = boundary_predicates(visitor.measure, visitor.subdomain_id) - if False in predicates: - return - rank = 1 if ansatz_lfs.lfs is None else 2 from dune.perftool.pdelab.argument import PDELabAccumulationFunction @@ -448,6 +445,11 @@ def visit_integral(integral): measure = integral.integral_type() subdomain_id = integral.subdomain_id() + # Avoid even visiting the integral, if it is noop + predicates = boundary_predicates(measure, subdomain_id) + if False in predicates: + return + # Start the visiting process! visitor = get_visitor(measure, subdomain_id) visitor.accumulate(integrand)