From 38c62d75f291aee1251773ea35460f56faee769d Mon Sep 17 00:00:00 2001 From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de> Date: Wed, 24 Oct 2018 11:43:33 +0200 Subject: [PATCH] Avoid visiting No-op integrals I have a case where visiting has a side effect that I want to avoid. Also spares work. --- python/dune/perftool/pdelab/localoperator.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index f4e90c6a..6d9c1dde 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) -- GitLab