From c9d3f046925058ae8556bc8d09a77c4cbcd91257 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Fri, 25 Aug 2017 15:45:20 +0200
Subject: [PATCH] Fixup rebase

---
 python/dune/perftool/pdelab/driver/__init__.py      |  4 ++++
 .../perftool/pdelab/driver/gridfunctionspace.py     | 13 ++++++++-----
 python/dune/perftool/pdelab/driver/solve.py         |  7 -------
 python/dune/perftool/ufl/visitor.py                 |  3 ++-
 4 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/python/dune/perftool/pdelab/driver/__init__.py b/python/dune/perftool/pdelab/driver/__init__.py
index e246e55e..8021fa41 100644
--- a/python/dune/perftool/pdelab/driver/__init__.py
+++ b/python/dune/perftool/pdelab/driver/__init__.py
@@ -243,6 +243,10 @@ def generate_driver(formdatas, data):
         from dune.perftool.pdelab.driver.instationary import solve_instationary
         solve_instationary()
 
+    from dune.perftool.pdelab.driver.error import compare_L2_squared
+    if get_option("compare_l2errorsquared"):
+        compare_L2_squared()
+
     # Make sure that timestream is declared before retrieving chache items
     if get_option("instrumentation_level") >= 1:
         from dune.perftool.pdelab.driver.timings import setup_timer, name_timing_stream
diff --git a/python/dune/perftool/pdelab/driver/gridfunctionspace.py b/python/dune/perftool/pdelab/driver/gridfunctionspace.py
index affa56e3..f2031274 100644
--- a/python/dune/perftool/pdelab/driver/gridfunctionspace.py
+++ b/python/dune/perftool/pdelab/driver/gridfunctionspace.py
@@ -29,15 +29,18 @@ def type_domainfield():
     typedef_domainfield("DF")
     return "DF"
 
-
-@preamble
-def typedef_range(name):
+def basetype_range():
     if get_option('opcounter'):
         from dune.perftool.pdelab.driver.timings import setup_timer
         setup_timer()
-        return "using {} = oc::OpCounter<double>;".format(name)
+        return "oc::OpCounter<double>"
     else:
-        return "using {} = double;".format(name)
+        return "double"
+
+
+@preamble
+def typedef_range(name):
+    return "using {} = {};".format(name, basetype_range())
 
 
 def type_range():
diff --git a/python/dune/perftool/pdelab/driver/solve.py b/python/dune/perftool/pdelab/driver/solve.py
index 5e602827..0179fe68 100644
--- a/python/dune/perftool/pdelab/driver/solve.py
+++ b/python/dune/perftool/pdelab/driver/solve.py
@@ -48,13 +48,6 @@ def dune_solve():
     print_residual()
     print_matrix()
 
-    from dune.perftool.pdelab.driver.error import compare_dofs, compare_L2_squared
-    if get_option("exact_solution_expression"):
-        if get_option("compare_dofs"):
-            compare_dofs()
-        if get_option("compare_l2errorsquared"):
-            compare_L2_squared()
-
     if get_option('instrumentation_level') >= 2:
         from dune.perftool.pdelab.driver.timings import setup_timer, name_timing_stream
         setup_timer()
diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py
index 2027c303..e7d32af1 100644
--- a/python/dune/perftool/ufl/visitor.py
+++ b/python/dune/perftool/ufl/visitor.py
@@ -31,6 +31,7 @@ from ufl.classes import (FixedIndex,
                          )
 
 import pymbolic.primitives as prim
+import numpy as np
 
 
 class UFL2LoopyVisitor(ModifiedTerminalTracker):
@@ -289,7 +290,7 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
             return self._evaluate_function(abs, "abs", self.call(o.ufl_operands[0]))
 
     def exp(self, o):
-        return self._evaluate_function(exp, "exp", self.call(o.ufl_operands[0]))
+        return self._evaluate_function(np.exp, "exp", self.call(o.ufl_operands[0]))
 
     def sqrt(self, o):
         return self._evaluate_function(sqrt, "sqrt", self.call(o.ufl_operands[0]))
-- 
GitLab