diff --git a/python/dune/perftool/blockstructured/basis.py b/python/dune/perftool/blockstructured/basis.py index 9ca4eb08c0c2607b6ba9ecd263e532c80b7ac093..59d55174faa0f9fbc0133bcf6cbd523913477a4f 100644 --- a/python/dune/perftool/blockstructured/basis.py +++ b/python/dune/perftool/blockstructured/basis.py @@ -67,7 +67,7 @@ def name_localbasis(leaf_element): @kernel_cached def evaluate_basis(leaf_element, name, restriction): - temporary_variable(name, shape=(leaf_element.degree(),), decl_method=declare_cache_temporary(leaf_element, restriction, 'Function')) + temporary_variable(name, shape=(leaf_element.degree(), 1), decl_method=declare_cache_temporary(leaf_element, restriction, 'Function')) cache = name_localbasis_cache(leaf_element) qp = pymbolic_quadrature_position_in_cell(restriction) localbasis = name_localbasis(leaf_element) @@ -85,7 +85,7 @@ def pymbolic_basis(leaf_element, restriction, number, context=''): evaluate_basis(leaf_element, name, restriction) iname = lfs_inames(leaf_element, restriction, number, context=context)[0] - return prim.Subscript(prim.Variable(name), (prim.Variable(iname), )) + return prim.Subscript(prim.Variable(name), (prim.Variable(iname), 0)) @kernel_cached diff --git a/python/dune/perftool/pdelab/driver/constraints.py b/python/dune/perftool/pdelab/driver/constraints.py index c0890fd22eb03f54ba69e7497f60f11d6967d0a4..fbb20af4699aaaeb7af9199ff9590377d32a150f 100644 --- a/python/dune/perftool/pdelab/driver/constraints.py +++ b/python/dune/perftool/pdelab/driver/constraints.py @@ -38,19 +38,19 @@ def assemble_constraints(name): def name_bctype_function(element, is_dirichlet): if isinstance(element, (VectorElement, TensorElement)): - subel = element.sub_element()[0] - subgfs = name_bctype_function(subel, is_dirichlet[:subel.value_size()]) - name = "{}_pow{}bctype".format(subgfs, element.num_sub_elements()) - define_power_bctype_function(element, name, subgfs) + subel = element.sub_elements()[0] + child = name_bctype_function(subel, is_dirichlet[:subel.value_size()]) + name = "{}_pow{}bctype".format(child, element.num_sub_elements()) + define_power_bctype_function(element, name, child) return name if isinstance(element, MixedElement): k = 0 - subgfs = [] + childs = [] for subel in element.sub_elements(): - subgfs.append(name_gfs(subel, is_dirichlet[k:k + subel.value_size()])) + childs.append(name_bctype_function(subel, is_dirichlet[k:k + subel.value_size()])) k = k + subel.value_size() - name = "_".join(subgfs) - define_composite_bctype_function(element, is_dirichlet, name, tuple(subgfs)) + name = "{}_bctype".format("_".join(childs)) + define_composite_bctype_function(element, is_dirichlet, name, tuple(childs)) return name else: assert isinstance(element, FiniteElement) diff --git a/python/dune/perftool/pdelab/driver/interpolate.py b/python/dune/perftool/pdelab/driver/interpolate.py index 3cbef4bdbfdeecc7fd149d4255a531b586b2c000..21998b9f45196ed815b97aab116de9de6715b6ec 100644 --- a/python/dune/perftool/pdelab/driver/interpolate.py +++ b/python/dune/perftool/pdelab/driver/interpolate.py @@ -52,7 +52,7 @@ def name_boundary_function(element, func): childs.append(name_boundary_function(subel, func[k:k + subel.value_size()])) k = k + subel.value_size() name = "_".join(childs) - define_composite_parameterfunction(name, tuple(childs)) + define_compositegfs_parameterfunction(name, tuple(childs)) return name else: assert isinstance(element, FiniteElement)