From 51cc7b1c2bda36c958066b9fcbd437710293a066 Mon Sep 17 00:00:00 2001 From: Marcel Koch <marcel.koch@uni-muenster.de> Date: Wed, 26 Jul 2017 11:37:38 +0200 Subject: [PATCH] Moves setting/removing of degree to the right place --- python/dune/perftool/pdelab/driver.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py index 1e92e67c..e2993aea 100644 --- a/python/dune/perftool/pdelab/driver.py +++ b/python/dune/perftool/pdelab/driver.py @@ -1785,6 +1785,26 @@ def return_statement(): return "return {};".format(fail) +def _blockstructured_degree_helper(element, op): + element._degree = op(element._degree, get_option("number_of_blocks")) + from ufl import MixedElement, VectorElement, TensorElement + if isinstance(element, VectorElement) or isinstance(element, TensorElement): + _blockstructured_degree_helper(element.sub_elements()[0], op) + elif isinstance(element, MixedElement): + for e in element.sub_elements(): + _blockstructured_degree_helper(e, op) + + +def set_blockstructured_degree(): + from operator import mul + _blockstructured_degree_helper(_driver_data["form"].coefficients()[0].ufl_element(), mul) + + +def unset_blockstructured_degree(): + from operator import floordiv + _blockstructured_degree_helper(_driver_data["form"].coefficients()[0].ufl_element(), floordiv) + + def generate_driver(formdatas, data): # The driver module uses a global dictionary for storing necessary data set_driver_data(formdatas, data) -- GitLab