From 83e16610cd8c1a11aeb1e62ccf9fb852455dd097 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene@debian>
Date: Tue, 27 Sep 2016 17:22:13 +0200
Subject: [PATCH] Remove symbol

---
 python/dune/perftool/generation/__init__.py  |  1 -
 python/dune/perftool/generation/cache.py     |  2 +-
 python/dune/perftool/generation/cpp.py       |  1 -
 python/dune/perftool/loopy/transformer.py    |  1 -
 python/dune/perftool/pdelab/__init__.py      |  4 +-
 python/dune/perftool/pdelab/argument.py      | 25 ++-----
 python/dune/perftool/pdelab/basis.py         |  7 --
 python/dune/perftool/pdelab/driver.py        | 71 ++------------------
 python/dune/perftool/pdelab/geometry.py      | 18 -----
 python/dune/perftool/pdelab/localoperator.py |  3 -
 python/dune/perftool/pdelab/parameter.py     |  3 -
 python/dune/perftool/pdelab/quadrature.py    |  7 --
 python/dune/perftool/pdelab/signatures.py    | 10 ---
 13 files changed, 14 insertions(+), 139 deletions(-)

diff --git a/python/dune/perftool/generation/__init__.py b/python/dune/perftool/generation/__init__.py
index 6496c2ca..934208c8 100644
--- a/python/dune/perftool/generation/__init__.py
+++ b/python/dune/perftool/generation/__init__.py
@@ -19,7 +19,6 @@ from dune.perftool.generation.cpp import (base_class,
                                           pre_include,
                                           preamble,
                                           post_include,
-                                          symbol,
                                           template_parameter,
                                           )
 
diff --git a/python/dune/perftool/generation/cache.py b/python/dune/perftool/generation/cache.py
index d204d8cc..5c2b6cc8 100644
--- a/python/dune/perftool/generation/cache.py
+++ b/python/dune/perftool/generation/cache.py
@@ -153,7 +153,7 @@ def generator_factory(**factory_kwargs):
 
 # define a decorator 'cached', which may be used as a standard decorator, if no further
 # magic is to be added to the caching mechanism
-cached = generator_factory(item_tags="default_cached")
+cached = generator_factory(item_tags=("default_cached",))
 
 
 class _ConditionDict(dict):
diff --git a/python/dune/perftool/generation/cpp.py b/python/dune/perftool/generation/cpp.py
index 06934dfc..166dc9fe 100644
--- a/python/dune/perftool/generation/cpp.py
+++ b/python/dune/perftool/generation/cpp.py
@@ -6,7 +6,6 @@ are commonly needed for code generation
 from dune.perftool.generation import generator_factory
 from dune.perftool.cgen.clazz import AccessModifier
 
-symbol = generator_factory(item_tags=("symbol",))
 preamble = generator_factory(item_tags=("preamble",), counted=True)
 
 
diff --git a/python/dune/perftool/loopy/transformer.py b/python/dune/perftool/loopy/transformer.py
index 2e0f3e19..ad12bb57 100644
--- a/python/dune/perftool/loopy/transformer.py
+++ b/python/dune/perftool/loopy/transformer.py
@@ -15,7 +15,6 @@ from dune.perftool.generation import (domain,
                                       globalarg,
                                       iname,
                                       instruction,
-                                      symbol,
                                       temporary_variable,
                                       valuearg,
                                       )
diff --git a/python/dune/perftool/pdelab/__init__.py b/python/dune/perftool/pdelab/__init__.py
index be3efaf4..51d625d9 100644
--- a/python/dune/perftool/pdelab/__init__.py
+++ b/python/dune/perftool/pdelab/__init__.py
@@ -1,12 +1,12 @@
 """ The pdelab specific parts of the code generation process """
 
 from dune.perftool.generation import (preamble,
-                                      symbol,
+                                      cached,
                                       )
 
 
 # Now define some commonly used generators that do not fall into a specific category
-@symbol
+@cached
 def name_index(index):
     from ufl.classes import MultiIndex, Index
     if isinstance(index, Index):
diff --git a/python/dune/perftool/pdelab/argument.py b/python/dune/perftool/pdelab/argument.py
index dc3a508b..7bba657e 100644
--- a/python/dune/perftool/pdelab/argument.py
+++ b/python/dune/perftool/pdelab/argument.py
@@ -1,6 +1,12 @@
 """ Generator functions related to trial and test functions and the accumulation loop"""
 
-from dune.perftool.generation import domain, iname, pymbolic_expr, symbol, globalarg, valuearg, get_global_context_value
+from dune.perftool.generation import (domain,
+                                      iname,
+                                      pymbolic_expr,
+                                      globalarg,
+                                      valuearg,
+                                      get_global_context_value
+                                      )
 from dune.perftool.ufl.modified_terminals import ModifiedArgumentDescriptor
 from dune.perftool.pdelab import (name_index,
                                   restricted_name,
@@ -18,12 +24,10 @@ from pymbolic.primitives import Call, Subscript, Variable
 import loopy
 
 
-@symbol
 def name_testfunction_gradient(element, restriction):
     return name_basis_gradient(element, restriction)
 
 
-@symbol
 def name_testfunction(element, restriction):
     it = get_global_context_value("integral_type")
     if it == 'exterior_facet':
@@ -31,7 +35,6 @@ def name_testfunction(element, restriction):
     return name_basis(element, restriction)
 
 
-@symbol
 def name_trialfunction_gradient(element, restriction, component):
     rawname = "gradu" + "_".join(str(c) for c in component)
     name = restricted_name(rawname, restriction)
@@ -40,7 +43,6 @@ def name_trialfunction_gradient(element, restriction, component):
     return name
 
 
-@symbol
 def name_trialfunction(element, restriction, component):
     rawname = "u" + "_".join(str(c) for c in component)
     name = restricted_name(rawname, restriction)
@@ -49,7 +51,6 @@ def name_trialfunction(element, restriction, component):
     return name
 
 
-@symbol
 def name_apply_function_gradient(element, restriction, component):
     rawname = "gradz_func" + "_".join(str(c) for c in component)
     name = restricted_name(rawname, restriction)
@@ -58,7 +59,6 @@ def name_apply_function_gradient(element, restriction, component):
     return name
 
 
-@symbol
 def name_apply_function(element, restriction, component):
     rawname = "z_func" + "_".join(str(c) for c in component)
     name = restricted_name(rawname, restriction)
@@ -67,33 +67,27 @@ def name_apply_function(element, restriction, component):
     return name
 
 
-@symbol
 def name_testfunctionspace(restriction):
     return restricted_name("lfsv", restriction)
 
 
-@symbol
 def name_trialfunctionspace(restriction):
     return restricted_name("lfsu", restriction)
 
 
-@symbol
 def type_testfunctionspace():
     return "LFSV"
 
 
-@symbol
 def type_trialfunctionspace():
     return "LFSU"
 
 
-@symbol
 def name_coefficientcontainer(restriction):
     name = restricted_name("x", restriction)
     return name
 
 
-@symbol
 def name_applycontainer(restriction):
     name = restricted_name("z", restriction)
     return name
@@ -114,7 +108,6 @@ def pymbolic_coefficient(container, lfs, index):
     return Call(CoefficientAccess(container), (lfs, Variable(index),))
 
 
-@symbol
 def type_coefficientcontainer():
     return "X"
 
@@ -143,7 +136,6 @@ def name_argument(ma):
     assert False
 
 
-@symbol
 def name_jacobian(restriction1, restriction2):
     # Restrictions may only differ if NONE
     if (restriction1 == Restriction.NONE) or (restriction2 == Restriction.NONE):
@@ -151,17 +143,14 @@ def name_jacobian(restriction1, restriction2):
     return restricted_name(restricted_name("jac", restriction1), restriction2)
 
 
-@symbol
 def type_jacobian():
     return "J"
 
 
-@symbol
 def name_residual(restriction):
     return restricted_name("r", restriction)
 
 
-@symbol
 def type_residual():
     return "R"
 
diff --git a/python/dune/perftool/pdelab/basis.py b/python/dune/perftool/pdelab/basis.py
index ff7af690..23f0a430 100644
--- a/python/dune/perftool/pdelab/basis.py
+++ b/python/dune/perftool/pdelab/basis.py
@@ -8,7 +8,6 @@ from dune.perftool.generation import (cached,
                                       include_file,
                                       instruction,
                                       preamble,
-                                      symbol,
                                       temporary_variable,
                                       )
 from dune.perftool.pdelab.quadrature import (name_quadrature_position_in_cell,
@@ -28,7 +27,6 @@ from pymbolic.primitives import Product, Subscript, Variable
 from loopy import Reduction
 
 
-@symbol
 def type_localbasis_cache(element):
     return "LocalBasisCacheWithoutReferences<{}>".format(type_gfs(element))
 
@@ -40,7 +38,6 @@ def define_localbasis_cache(element, name):
     return "{} {};".format(t, name)
 
 
-@symbol
 def name_localbasis_cache(element):
     name = "cache_{}".format(FEM_name_mangling(element))
     define_localbasis_cache(element, name)
@@ -52,7 +49,6 @@ def define_lfs_bound(lfs, bound):
     return 'auto {} = {}.size();'.format(bound, lfs)
 
 
-@symbol
 def name_lfs_bound(lfs):
     # LFS might either be given by an UFL element or by a string describig its name
     from ufl import FiniteElementBase
@@ -256,7 +252,6 @@ def evaluate_basis(leaf_element, name, restriction):
                 )
 
 
-@symbol
 def name_basis(leaf_element, restriction):
     assert leaf_element.num_sub_elements() == 0
     # TODO name mangling!
@@ -285,7 +280,6 @@ def evaluate_reference_gradient(leaf_element, name, restriction):
                 )
 
 
-@symbol
 def name_reference_gradient(leaf_element, restriction):
     assert leaf_element.num_sub_elements() == 0
     name = "js_{}".format(FEM_name_mangling(leaf_element))
@@ -337,7 +331,6 @@ def evaluate_basis_gradient(leaf_element, name, restriction):
             forced_iname_deps_is_final=True)
 
 
-@symbol
 def name_basis_gradient(leaf_element, restriction):
     assert leaf_element.num_sub_elements() == 0
     name = "gradphi_{}".format(FEM_name_mangling(leaf_element))
diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py
index f413b1f2..119a13d4 100644
--- a/python/dune/perftool/pdelab/driver.py
+++ b/python/dune/perftool/pdelab/driver.py
@@ -8,7 +8,7 @@ gained there.
 """
 from dune.perftool.generation import (generator_factory,
                                       include_file,
-                                      symbol,
+                                      cached,
                                       preamble,
                                       )
 from dune.perftool.options import get_option
@@ -142,7 +142,6 @@ def FEM_name_mangling(fem):
     raise NotImplementedError("FEM NAME MANGLING")
 
 
-@symbol
 def name_inifile():
     # TODO pass some other option here.
     return "argv[1]"
@@ -156,7 +155,6 @@ def parse_initree(varname):
     return ["Dune::ParameterTree initree;", "Dune::ParameterTreeParser::readINITree({}, {});".format(filename, varname)]
 
 
-@symbol
 def name_initree():
     parse_initree("initree")
     # TODO we can get some other ini file here.
@@ -168,7 +166,6 @@ def define_dimension(name):
     return "static const int {} = {};".format(name, _driver_data['form'].ufl_cell().geometric_dimension())
 
 
-@symbol
 def name_dimension():
     define_dimension("dim")
     return "dim"
@@ -195,7 +192,6 @@ def typedef_grid(name):
     return "typedef {} {};".format(gridt, name)
 
 
-@symbol
 def type_grid():
     typedef_grid("Grid")
     return "Grid"
@@ -210,7 +206,6 @@ def define_grid(name):
             "std::shared_ptr<{}> grid = factory.getGrid();".format(_type)]
 
 
-@symbol
 def name_grid():
     define_grid("grid")
     return "grid"
@@ -222,7 +217,6 @@ def typedef_leafview(name):
     return "typedef {}::LeafGridView {};".format(grid, name)
 
 
-@symbol
 def type_leafview():
     typedef_leafview("GV")
     return "GV"
@@ -235,7 +229,6 @@ def define_leafview(name):
     return "{} {} = {}->leafGridView();".format(_type, name, grid)
 
 
-@symbol
 def name_leafview():
     define_leafview("gv")
     return "gv"
@@ -248,7 +241,6 @@ def typedef_vtkwriter(name):
     return "typedef Dune::SubsamplingVTKWriter<{}> {};".format(gv, name)
 
 
-@symbol
 def type_vtkwriter():
     typedef_vtkwriter("VTKWriter")
     return "VTKWriter"
@@ -260,7 +252,6 @@ def define_subsamplinglevel(name):
     return "int {} = {}.get<int>(\"vtk.subsamplinglevel\", 0);".format(name, ini)
 
 
-@symbol
 def name_subsamplinglevel():
     define_subsamplinglevel("sublevel")
     return "sublevel"
@@ -274,7 +265,6 @@ def define_vtkwriter(name):
     return "{} {}({}, {});".format(_type, name, gv, subsamp)
 
 
-@symbol
 def name_vtkwriter():
     define_vtkwriter("vtkwriter")
     return "vtkwriter"
@@ -286,7 +276,6 @@ def typedef_domainfield(name):
     return "typedef {}::ctype {};".format(gridt, name)
 
 
-@symbol
 def type_domainfield():
     typedef_domainfield("DF")
     return "DF"
@@ -297,7 +286,6 @@ def typedef_range(name):
     return "typedef double {};".format(name)
 
 
-@symbol
 def type_range():
     typedef_range("R")
     return "R"
@@ -328,7 +316,6 @@ def typedef_fem(expr, name):
     raise NotImplementedError("FEM not implemented in dune-perftool")
 
 
-@symbol
 def type_fem(expr):
     name = "{}_FEM".format(FEM_name_mangling(expr).upper())
     typedef_fem(expr, name)
@@ -345,7 +332,6 @@ def define_fem(expr, name):
         return "{} {}({});".format(femtype, name, gv)
 
 
-@symbol
 def name_fem(expr):
     name = "{}_fem".format(FEM_name_mangling(expr).lower())
     define_fem(expr, name)
@@ -358,13 +344,11 @@ def typedef_vectorbackend(name):
     return "typedef Dune::PDELab::istl::VectorBackend<Dune::PDELab::istl::Blocking::none, 1> {};".format(name)
 
 
-@symbol
 def type_vectorbackend():
     typedef_vectorbackend("VectorBackend")
     return "VectorBackend"
 
 
-@symbol
 def type_orderingtag():
     return "Dune::PDELab::LexicographicOrderingTag"
 
@@ -380,7 +364,6 @@ def typedef_no_constraintsassembler(name):
     return "typedef Dune::PDELab::NoConstraints {};".format(name)
 
 
-@symbol
 def type_constraintsassembler(dirichlet):
     if dirichlet[1]:
         typedef_dirichlet_constraintsassembler("DirichletConstraintsAssember")
@@ -397,7 +380,6 @@ def typedef_constraintscontainer(element, name):
     return "typedef {}::ConstraintsContainer<{}>::Type {};".format(gfs, r, name)
 
 
-@symbol
 def type_constraintscontainer(element):
     name = "{}_cc".format(FEM_name_mangling(element)).upper()
     typedef_constraintscontainer(element, name)
@@ -428,7 +410,6 @@ def define_intersection_lambda(expression, name):
         return "auto {} = [&](const auto& is, const auto& x){{ {} }};".format(name, expression.c_expr[0])
 
 
-@symbol
 def name_bctype_lambda(name, dirichlet):
     name = name + "_lambda"
     define_intersection_lambda(dirichlet, name)
@@ -460,8 +441,7 @@ def define_compositegfs_constraints(name, *children):
                                                                              ', '.join(c for c in children)
                                                                              )
 
-
-@symbol
+@cached
 def name_bctype_function(expr):
     from ufl import MixedElement, VectorElement, TensorElement
     if isinstance(expr, (VectorElement, TensorElement)):
@@ -500,7 +480,6 @@ def assemble_constraints(name, expr):
                                                            )
 
 
-@symbol
 def name_assembled_constraints(expr):
     name = name_constraintscontainer(expr)
     if has_constraints(expr):
@@ -582,7 +561,6 @@ def define_dofestimate(name):
             "int {} = {}.get<int>(\"istl.number_of_nnz\", generic_dof_estimate);".format(name, ini)]
 
 
-@symbol
 def name_dofestimate():
     define_dofestimate("dofestimate")
     return "dofestimate"
@@ -594,7 +572,6 @@ def typedef_matrixbackend(name):
     return "typedef Dune::PDELab::istl::BCRSMatrixBackend<> {};".format(name)
 
 
-@symbol
 def type_matrixbackend():
     typedef_matrixbackend("MatrixBackend")
     return "MatrixBackend"
@@ -607,13 +584,11 @@ def define_matrixbackend(name):
     return "{} {}({});".format(mbtype, name, dof)
 
 
-@symbol
 def name_matrixbackend():
     define_matrixbackend("mb")
     return "mb"
 
 
-@symbol
 def type_parameters(formdata):
     from dune.perftool.generation import get_global_context_value
     data = get_global_context_value("data")
@@ -628,7 +603,6 @@ def define_parameters(name, formdata):
     return "{} {};".format(partype, name)
 
 
-@symbol
 def name_parameters(formdata):
     name = form_name_suffix("params", formdata)
     define_parameters(name, formdata)
@@ -651,7 +625,6 @@ def typedef_localoperator(name, formdata):
     return "using {} = {}<{}, {}>;".format(name, lopname, ugfs, vgfs)
 
 
-@symbol
 def type_localoperator(formdata):
     name = form_name_suffix("LOP", formdata).upper()
     typedef_localoperator(name, formdata)
@@ -666,7 +639,6 @@ def define_localoperator(name, formdata):
     return "{} {}({}, {});".format(loptype, name, ini, params)
 
 
-@symbol
 def name_localoperator(formdata):
     name = form_name_suffix("lop", formdata)
     define_localoperator(name, formdata)
@@ -687,7 +659,6 @@ def typedef_gridoperator(name, formdata):
     return "typedef Dune::PDELab::GridOperator<{}, {}, {}, {}, {}, {}, {}, {}, {}> {};".format(ugfs, vgfs, lop, mb, df, r, r, ucc, vcc, name)
 
 
-@symbol
 def type_gridoperator(formdata):
     name = form_name_suffix("GO", formdata).upper()
     typedef_gridoperator(name, formdata)
@@ -709,7 +680,6 @@ def define_gridoperator(name, formdata):
             "std::cout << \"cc with \" << {}.size() << \" dofs generated  \"<< std::endl;".format(ucc)]
 
 
-@symbol
 def name_gridoperator(formdata):
     name = form_name_suffix("go", formdata)
     define_gridoperator(name, formdata)
@@ -722,7 +692,6 @@ def typedef_vector(name, formdata):
     return "typedef {}::Traits::Domain {};".format(go_type, name)
 
 
-@symbol
 def type_vector(formdata):
     name = form_name_suffix("V", formdata).upper()
     typedef_vector(name, formdata)
@@ -746,7 +715,6 @@ def define_boundary_lambda(boundary, name):
         return "auto {} = [&](const auto& e, const auto& x){{ {} }};".format(name, boundary.c_expr[0])
 
 
-@symbol
 def name_boundary_lambda(boundary, name):
     define_boundary_lambda(boundary, name + "lambda")
     return name + "lambda"
@@ -785,7 +753,7 @@ def expression_splitter(expr, length):
         return split_expression(expr)
 
 
-@symbol
+@cached
 def _name_boundary_function(element, boundary, name=None):
     from ufl import MixedElement, VectorElement, TensorElement
     if isinstance(element, (VectorElement, TensorElement)):
@@ -815,7 +783,7 @@ def name_boundary_function(expr):
     return _name_boundary_function(element, boundary)
 
 
-@symbol
+@cached
 def name_solution_function(tree_path=()):
     from dune.perftool.generation import get_global_context_value
     expr = get_global_context_value("data").object_by_name[get_option("exact_solution_expression")]
@@ -869,14 +837,12 @@ def maybe_interpolate_vector(name, formdata):
         define_vector(name, formdata)
 
 
-@symbol
 def name_vector(formdata):
     name = form_name_suffix("x", formdata)
     maybe_interpolate_vector(name, formdata)
     return name
 
 
-@symbol
 def name_vector_from_solution_expression():
     interpolate_solution_expression("solution")
     return "solution"
@@ -888,7 +854,6 @@ def typedef_linearsolver(name):
     return "typedef Dune::PDELab::ISTLBackend_SEQ_UMFPack {};".format(name)
 
 
-@symbol
 def type_linearsolver():
     typedef_linearsolver("LinearSolver")
     return "LinearSolver"
@@ -900,7 +865,6 @@ def define_linearsolver(name):
     return "{} {}(false);".format(lstype, name)
 
 
-@symbol
 def name_linearsolver():
     define_linearsolver("ls")
     return "ls"
@@ -912,7 +876,6 @@ def define_reduction(name):
     return "double {} = {}.get<double>(\"reduction\", 1e-12);".format(name, ini)
 
 
-@symbol
 def name_reduction():
     define_reduction("reduction")
     return "reduction"
@@ -927,7 +890,6 @@ def typedef_stationarylinearproblemsolver(name):
     return "typedef Dune::PDELab::StationaryLinearProblemSolver<{}, {}, {}> {};".format(gotype, lstype, xtype, name)
 
 
-@symbol
 def type_stationarylinearproblemsolver():
     typedef_stationarylinearproblemsolver("SLP")
     return "SLP"
@@ -944,7 +906,6 @@ def define_stationarylinearproblemsolver(name):
     return "{} {}({}, {}, {}, {});".format(slptype, name, go, ls, x, red)
 
 
-@symbol
 def name_stationarylinearproblemsolver():
     define_stationarylinearproblemsolver("slp")
     return "slp"
@@ -958,7 +919,6 @@ def typedef_stationarynonlinearproblemsolver(name, go_type):
     return "typedef Dune::PDELab::Newton<{}, {}, {}> {};".format(go_type, ls_type, x_type, name)
 
 
-@symbol
 def type_stationarynonlinearproblemssolver(go_type):
     typedef_stationarynonlinearproblemsolver("SNP", go_type)
     return "SNP"
@@ -972,7 +932,6 @@ def define_stationarynonlinearproblemsolver(name, go_type, go):
     return "{} {}({}, {}, {});".format(snptype, name, go, x, ls)
 
 
-@symbol
 def name_stationarynonlinearproblemsolver(go_type, go):
     define_stationarynonlinearproblemsolver("snp", go_type, go)
     return "snp"
@@ -988,7 +947,6 @@ def typedef_timesteppingmethod(name):
         return "typedef Dune::PDELab::OneStepThetaParameter<{}> {};".format(r_type, name)
 
 
-@symbol
 def type_timesteppingmethod():
     typedef_timesteppingmethod("TSM")
     return "TSM"
@@ -1004,7 +962,6 @@ def define_timesteppingmethod(name):
         return "{} {}(1.0);".format(tsm_type, name)
 
 
-@symbol
 def name_timesteppingmethod():
     define_timesteppingmethod("tsm")
     return "tsm"
@@ -1022,7 +979,6 @@ def typedef_instationarygridoperator(name):
         return "typedef Dune::PDELab::OneStepGridOperator<{},{}> {};".format(go_type, mass_go_type, name)
 
 
-@symbol
 def type_instationarygridoperator():
     typedef_instationarygridoperator("IGO")
     return "IGO"
@@ -1036,7 +992,6 @@ def define_instationarygridoperator(name):
     return "{} {}({}, {});".format(igo_type, name, go, mass_go)
 
 
-@symbol
 def name_instationarygridoperator():
     define_instationarygridoperator("igo")
     return "igo"
@@ -1051,7 +1006,6 @@ def typedef_onestepmethod(name):
     return "typedef Dune::PDELab::OneStepMethod<{}, {}, {}, {}, {}> {};".format(r_type, igo_type, snp_type, vector_type, vector_type, name)
 
 
-@symbol
 def type_onestepmethod():
     typedef_onestepmethod("OSM")
     return "OSM"
@@ -1067,7 +1021,6 @@ def define_onestepmethod(name):
     return "{} {}({},{},{});".format(ilptype, name, tsm, igo, snp)
 
 
-@symbol
 def name_onestepmethod():
     define_onestepmethod("osm")
     return "osm"
@@ -1082,7 +1035,6 @@ def typedef_explicitonestepmethod(name):
     return "typedef Dune::PDELab::ExplicitOneStepMethod<{}, {}, {}, {}> {};".format(r_type, igo_type, ls_type, vector_type, name)
 
 
-@symbol
 def type_explicitonestepmethod():
     typedef_explicitonestepmethod("EOSM")
     return "EOSM"
@@ -1097,7 +1049,6 @@ def define_explicitonestepmethod(name):
     return "{} {}({}, {}, {});".format(eosm_type, name, tsm, igo, ls)
 
 
-@symbol
 def name_explicitonestepmethod():
     define_explicitonestepmethod("eosm")
     return "eosm"
@@ -1114,7 +1065,6 @@ def define_timing_stream(name):
             ]
 
 
-@symbol
 def name_timing_stream():
     name = "timestream"
     define_timing_stream(name)
@@ -1181,7 +1131,6 @@ def define_vtkfile(name):
     return "std::string {} = {}.get<std::string>(\"wrapper.vtkcompare.name\", \"output\");".format(name, ini)
 
 
-@symbol
 def name_vtkfile():
     define_vtkfile("vtkfile")
     return "vtkfile"
@@ -1205,7 +1154,6 @@ def compare_dofs():
             "  {} = true;".format(fail)]
 
 
-@symbol
 def type_discrete_grid_function(gfs):
     return "DGF_{}".format(gfs.upper())
 
@@ -1217,14 +1165,12 @@ def define_discrete_grid_function(gfs, vector_name, dgf_name):
             "{} {}({},{});".format(dgf_type, dgf_name, gfs, vector_name)]
 
 
-@symbol
 def name_discrete_grid_function(gfs, vector_name):
     dgf_name = gfs + "_dgf"
     define_discrete_grid_function(gfs, vector_name, dgf_name)
     return dgf_name
 
 
-@symbol
 def type_subgfs(element, tree_path):
     include_file('dune/pdelab/gridfunctionspace/subspace.hh', filetag='driver')
     gfs = type_gfs(element)
@@ -1239,7 +1185,6 @@ def define_subgfs(name, element, tree_path):
     return '{} {}({});'.format(t, name, gfs)
 
 
-@symbol
 def name_subgfs(element, tree_path):
     gfs = name_gfs(element)
     if len(tree_path) == 0:
@@ -1263,7 +1208,6 @@ def typedef_difference_squared_adapter(name, tree_path):
     return 'typedef DifferenceSquaredAdapter<decltype({}), decltype({})> {};'.format(solution_function, dgf, name)
 
 
-@symbol
 def type_difference_squared_adapter(tree_path):
     t = 'DifferenceSquared_{}'.format('_'.join(tree_path))
     typedef_difference_squared_adapter(t, tree_path)
@@ -1329,7 +1273,6 @@ def define_accumulated_L2_error(name):
     return "double {}(0.0);".format(name)
 
 
-@symbol
 def name_accumulated_L2_error():
     name = 'l2error'
     define_accumulated_L2_error(name)
@@ -1352,7 +1295,6 @@ def define_test_fail_variable(name):
     return 'bool {}(false);'.format(name)
 
 
-@symbol
 def name_test_fail_variable():
     name = "testfail"
     define_test_fail_variable(name)
@@ -1409,7 +1351,6 @@ def define_gfs_name(element, prefix=()):
     return "{}.name(\"data_{}\");".format(gfs, "_".join(str(p) for p in prefix))
 
 
-@symbol
 def type_predicate():
     include_file("dune/perftool/vtkpredicate.hh", filetag="driver")
     return "CuttingPredicate"
@@ -1421,7 +1362,6 @@ def define_predicate(name):
     return "{} {};".format(t, name)
 
 
-@symbol
 def name_predicate():
     define_predicate("predicate")
     return "predicate"
@@ -1456,7 +1396,6 @@ def define_time(name):
     return "double {} = 0.0;".format(name)
 
 
-@symbol
 def name_time():
     define_time("time")
     return "time"
@@ -1469,7 +1408,6 @@ def typedef_vtk_sequence_writer(name):
     return "typedef Dune::VTKSequenceWriter<{}> {};".format(gv_type, name)
 
 
-@symbol
 def type_vtk_sequence_writer():
     typedef_vtk_sequence_writer("VTKSW")
     return "VTKSW"
@@ -1484,7 +1422,6 @@ def define_vtk_sequence_writer(name):
     return "{} {}(std::make_shared<{}>({}), {});".format(vtksw_type, name, vtkw_type, vtkw, vtkfile)
 
 
-@symbol
 def name_vtk_sequence_writer():
     define_vtk_sequence_writer("vtkSequenceWriter")
     return "vtkSequenceWriter"
diff --git a/python/dune/perftool/pdelab/geometry.py b/python/dune/perftool/pdelab/geometry.py
index 33d6e88a..8a27c2e1 100644
--- a/python/dune/perftool/pdelab/geometry.py
+++ b/python/dune/perftool/pdelab/geometry.py
@@ -4,7 +4,6 @@ from dune.perftool.generation import (domain,
                                       get_global_context_value,
                                       iname,
                                       preamble,
-                                      symbol,
                                       temporary_variable,
                                       )
 from dune.perftool.pdelab.quadrature import (name_quadrature_position,
@@ -59,22 +58,18 @@ def dimension_iname(context='', count=0):
     return _dimension_iname(context, count)
 
 
-@symbol
 def name_element_geometry_wrapper():
     return 'eg'
 
 
-@symbol
 def type_element_geometry_wrapper():
     return 'EG'
 
 
-@symbol
 def name_intersection_geometry_wrapper():
     return 'ig'
 
 
-@symbol
 def type_intersection_geometry_wrapper():
     return 'IG'
 
@@ -113,7 +108,6 @@ def define_restricted_cell(name, restriction):
                                               )
 
 
-@symbol
 def name_cell(restriction):
     if restriction == Restriction.NONE:
         eg = name_element_geometry_wrapper()
@@ -133,14 +127,12 @@ def define_cell_geometry(name, restriction):
                                              )
 
 
-@symbol
 def name_cell_geometry(restriction):
     name = restricted_name("cell_geo", restriction)
     define_cell_geometry(name, restriction)
     return name
 
 
-@symbol
 def type_cell_geometry(restriction):
     if restriction == Restriction.NONE:
         eg = type_element_geometry_wrapper()
@@ -158,13 +150,11 @@ def define_intersection_geometry(name):
                                              )
 
 
-@symbol
 def name_intersection_geometry():
     define_intersection_geometry("is_geo")
     return "is_geo"
 
 
-@symbol
 def name_intersection():
     ig = name_intersection_geometry_wrapper()
     return "{}.intersection()".format(ig)
@@ -192,7 +182,6 @@ def define_in_cell_geometry(restriction, name):
                                                      )
 
 
-@symbol
 def name_in_cell_geometry(restriction):
     assert restriction is not Restriction.NONE
 
@@ -212,7 +201,6 @@ def apply_in_cell_transformation(name, local, restriction):
                                )
 
 
-@symbol
 def name_in_cell_coordinates(local, basename, restriction):
     name = "{}_in_{}side".format(basename, "in" if restriction is Restriction.NEGATIVE else "out")
     temporary_variable(name, shape=(name_dimension(),), shape_impl=("fv",))
@@ -233,7 +221,6 @@ def define_dimension(name):
     return 'const int {} = {}::Entity::dimension;'.format(name, geo)
 
 
-@symbol
 def name_dimension():
     define_dimension("dim")
     return "dim"
@@ -245,7 +232,6 @@ def define_intersection_dimension(name):
     return "const int {} = {}::Geometry::mydimension;".format(name, geo)
 
 
-@symbol
 def name_intersection_dimension():
     define_intersection_dimension("idim")
     return "idim"
@@ -266,7 +252,6 @@ def declare_normal(name, shape, shape_impl):
     return "auto {} = {}.centerUnitOuterNormal();".format(name, ig)
 
 
-@symbol
 def name_unit_outer_normal():
     name = "outer_normal"
     temporary_variable(name, shape=(name_dimension(),), decl_method=declare_normal)
@@ -282,7 +267,6 @@ def evaluate_unit_inner_normal(name):
                                )
 
 
-@symbol
 def name_unit_inner_normal():
     name = "inner_normal"
     temporary_variable(name, shape=(name_dimension(),), decl_method=declare_normal)
@@ -290,7 +274,6 @@ def name_unit_inner_normal():
     return "inner_normal"
 
 
-@symbol
 def type_jacobian_inverse_transposed(restriction):
     geo = type_cell_geometry(restriction)
     return "typename {}::JacobianInverseTransposed".format(geo)
@@ -320,7 +303,6 @@ def define_jacobian_inverse_transposed(name, restriction):
                                )
 
 
-@symbol
 def name_jacobian_inverse_transposed(restriction):
     name = restricted_name("jit", restriction)
     define_jacobian_inverse_transposed(name, restriction)
diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index e926b4a8..c0bd10ef 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -12,7 +12,6 @@ from dune.perftool.generation import (base_class,
                                       initializer_list,
                                       post_include,
                                       retrieve_cache_items,
-                                      symbol,
                                       template_parameter,
                                       )
 from dune.perftool.cgen.clazz import (AccessModifier,
@@ -71,7 +70,6 @@ def lop_template_gfs(ma):
     assert False
 
 
-@symbol
 def name_initree_constructor_param():
     return "iniParams"
 
@@ -125,7 +123,6 @@ def enum_alpha():
     return _enum_alpha(ufl_measure_to_pdelab_measure(integral_type))
 
 
-@symbol
 def name_initree_member():
     define_initree("_iniParams")
     return "_iniParams"
diff --git a/python/dune/perftool/pdelab/parameter.py b/python/dune/perftool/pdelab/parameter.py
index 624f82db..a15f52a1 100644
--- a/python/dune/perftool/pdelab/parameter.py
+++ b/python/dune/perftool/pdelab/parameter.py
@@ -7,7 +7,6 @@ from dune.perftool.generation import (cached,
                                       generator_factory,
                                       initializer_list,
                                       preamble,
-                                      symbol,
                                       temporary_variable
                                       )
 from dune.perftool.pdelab.geometry import (name_cell,
@@ -37,7 +36,6 @@ def define_parameterclass(name):
     return "const {}& {};".format(t, name)
 
 
-@symbol
 def name_paramclass():
     define_parameterclass("param")
     return "param"
@@ -49,7 +47,6 @@ def define_time(name):
     return "double {};".format(name)
 
 
-@symbol
 def name_time():
     define_time("t")
     return "t"
diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py
index cf1d2bea..464251fe 100644
--- a/python/dune/perftool/pdelab/quadrature.py
+++ b/python/dune/perftool/pdelab/quadrature.py
@@ -4,7 +4,6 @@ from dune.perftool.generation import (cached,
                                       iname,
                                       include_file,
                                       instruction,
-                                      symbol,
                                       temporary_variable,
                                       )
 
@@ -19,7 +18,6 @@ def quadrature_preamble(code, **kw):
     return instruction(inames=quadrature_iname(), code=code, **kw)
 
 
-@symbol
 def name_quadrature_point():
     return "qp"
 
@@ -31,7 +29,6 @@ def define_quadrature_position(name):
                                )
 
 
-@symbol
 def name_quadrature_position():
     name = "pos"
     # To determine the shape, I do query global information here for lack of good alternatives
@@ -47,7 +44,6 @@ def name_quadrature_position():
     return name
 
 
-@symbol
 def name_quadrature_position_in_cell(restriction):
     if restriction == Restriction.NONE:
         return name_quadrature_position()
@@ -56,7 +52,6 @@ def name_quadrature_position_in_cell(restriction):
         return to_cell_coordinates(name_quadrature_position(), name_quadrature_point(), restriction)
 
 
-@symbol
 def name_quadrature_weight():
     qp = name_quadrature_point()
     return "{}.weight()".format(qp)
@@ -78,14 +73,12 @@ def define_quadrature_factor(fac):
                                )
 
 
-@symbol
 def name_factor():
     temporary_variable("fac", shape=())
     define_quadrature_factor("fac")
     return "fac"
 
 
-@symbol
 def name_order():
     # TODO how to determine integration order in a generic fashion here?
     # Or maybe just read it from the ini file? Or define some mapping from the
diff --git a/python/dune/perftool/pdelab/signatures.py b/python/dune/perftool/pdelab/signatures.py
index e778b595..43ac5373 100644
--- a/python/dune/perftool/pdelab/signatures.py
+++ b/python/dune/perftool/pdelab/signatures.py
@@ -1,7 +1,6 @@
 """ Signatures for PDELab local opreator assembly functions """
 
 from dune.perftool import Restriction
-from dune.perftool.generation import symbol
 from dune.perftool.pdelab.geometry import (name_geometry_wrapper,
                                            type_geometry_wrapper,
                                            )
@@ -17,7 +16,6 @@ from dune.perftool.pdelab.argument import (name_accumulation_variable,
                                            )
 
 
-@symbol
 def alpha_volume_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -49,7 +47,6 @@ def alpha_volume_signature():
             ]
 
 
-@symbol
 def alpha_boundary_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -81,7 +78,6 @@ def alpha_boundary_signature():
             ]
 
 
-@symbol
 def alpha_skeleton_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -125,7 +121,6 @@ def alpha_skeleton_signature():
             ]
 
 
-@symbol
 def jacobian_volume_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -157,7 +152,6 @@ def jacobian_volume_signature():
             ]
 
 
-@symbol
 def jacobian_boundary_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -189,7 +183,6 @@ def jacobian_boundary_signature():
             ]
 
 
-@symbol
 def jacobian_skeleton_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -239,7 +232,6 @@ def jacobian_skeleton_signature():
             ]
 
 
-@symbol
 def jacobian_apply_volume_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -271,7 +263,6 @@ def jacobian_apply_volume_signature():
             ]
 
 
-@symbol
 def jacobian_apply_boundary_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
@@ -303,7 +294,6 @@ def jacobian_apply_boundary_signature():
             ]
 
 
-@symbol
 def jacobian_apply_skeleton_signature():
     geot = type_geometry_wrapper()
     geo = name_geometry_wrapper()
-- 
GitLab