From 95456dcbd80e8f8c572f686af0a4239bb2f753b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de> Date: Fri, 1 Sep 2017 13:18:22 +0200 Subject: [PATCH] Check for MixedElement instead of num_sub_elements --- python/dune/perftool/sumfact/accumulation.py | 4 ++-- python/dune/perftool/sumfact/basis.py | 2 +- python/dune/perftool/ufl/visitor.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/python/dune/perftool/sumfact/accumulation.py b/python/dune/perftool/sumfact/accumulation.py index 1dd62bf2..2baac395 100644 --- a/python/dune/perftool/sumfact/accumulation.py +++ b/python/dune/perftool/sumfact/accumulation.py @@ -41,7 +41,7 @@ import loopy as lp import numpy as np import pymbolic.primitives as prim import ufl.classes as uc -from ufl import FiniteElement, TensorProductElement +from ufl import FiniteElement, MixedElement, TensorProductElement @iname @@ -201,7 +201,7 @@ def generate_accumulation_instruction(expr, visitor): # Number of basis functions per direction leaf_element = test_info.element - if leaf_element.num_sub_elements() > 0 and not isinstance(leaf_element, TensorProductElement): + if isinstance(leaf_element, MixedElement): leaf_element = leaf_element.extract_component(test_info.element_index)[1] degree = leaf_element._degree if isinstance(degree, int): diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py index c73f9afe..4e1237c5 100644 --- a/python/dune/perftool/sumfact/basis.py +++ b/python/dune/perftool/sumfact/basis.py @@ -115,7 +115,7 @@ def _basis_functions_per_direction(element): def pymbolic_coefficient_gradient(element, restriction, index, coeff_func, visitor_indices): sub_element = element grad_index = visitor_indices[0] - if element.num_sub_elements() > 0 and not isinstance(element, TensorProductElement): + if isinstance(element, MixedElement): sub_element = element.extract_component(index)[1] from ufl import FiniteElement diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py index 9b36e9cc..70b95dbc 100644 --- a/python/dune/perftool/ufl/visitor.py +++ b/python/dune/perftool/ufl/visitor.py @@ -99,7 +99,7 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker): leaf_element = o.ufl_element() # Select the correct leaf element in the case of this being a mixed finite element - if o.ufl_element().num_sub_elements() > 0 and not isinstance(o.ufl_element(), TensorProductElement): + if isinstance(o.ufl_element(), MixedElement): index = self.indices[0] assert isinstance(index, int) self.indices = self.indices[1:] @@ -128,7 +128,7 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker): self.interface.initialize_function_spaces(o, self) index = None - if o.ufl_element().num_sub_elements() > 0 and not isinstance(o.ufl_element(), TensorProductElement): + if isinstance(o.ufl_element(), MixedElement): index = self.indices[0] assert isinstance(index, int) self.indices = self.indices[1:] -- GitLab