From 433e3262cecaf6763d37ea95b4375cdf62abbed6 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Mon, 14 Aug 2017 15:33:43 +0200
Subject: [PATCH] Small fixes needed in dune-perftool-hyperbolic

---
 python/dune/perftool/compile.py       |  2 +-
 python/dune/perftool/pdelab/spaces.py | 16 +++-------------
 2 files changed, 4 insertions(+), 14 deletions(-)

diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py
index cd5344c0..c2acf843 100644
--- a/python/dune/perftool/compile.py
+++ b/python/dune/perftool/compile.py
@@ -100,7 +100,7 @@ def read_ufl(uflfile):
         data.object_by_name[name] = namespace.get(name, None)
 
     formdatas = []
-    forms = data.forms
+    forms = list(data.forms)
     for index, form in enumerate(forms):
         formdatas.append(preprocess_form(form))
         forms[index] = formdatas[index].preprocessed_form
diff --git a/python/dune/perftool/pdelab/spaces.py b/python/dune/perftool/pdelab/spaces.py
index 068672ba..e69583ce 100644
--- a/python/dune/perftool/pdelab/spaces.py
+++ b/python/dune/perftool/pdelab/spaces.py
@@ -6,7 +6,6 @@ from dune.perftool.generation import (class_member,
                                       generator_factory,
                                       include_file,
                                       preamble,
-                                      backend,
                                       )
 from dune.perftool.pdelab.restriction import restricted_name
 from dune.perftool.ufl.modified_terminals import Restriction
@@ -20,19 +19,8 @@ from functools import partial
 import numpy
 
 
-@preamble
-def define_lfs_bound(lfs, bound):
-    return 'auto {} = {}.size();'.format(bound, lfs)
-
-
 def name_lfs_bound(lfs):
-    # LFS might either be given by an UFL element or by a string describing its name
-    from ufl import FiniteElementBase
-    if isinstance(lfs, FiniteElementBase):
-        return name_lfs_bound(name_lfs(lfs))
-
     bound = '{}_size'.format(lfs)
-    define_lfs_bound(lfs, bound)
     return bound
 
 
@@ -78,7 +66,9 @@ def available_gfs_names(element, restriction, name=None):
 @preamble
 def define_lfs(name, father, child):
     using_indices()
-    return "auto {} = child({}, _{});".format(name, father, child)
+    bound = name_lfs_bound(name)
+    return ["auto {} = child({}, _{});".format(name, father, child),
+            "auto {} = {}.size();".format(bound, name)]
 
 
 @class_member(classtag="operator")
-- 
GitLab