diff --git a/python/dune/perftool/pdelab/driver/__init__.py b/python/dune/perftool/pdelab/driver/__init__.py index e246e55e5658db25d017d6c306d3cf4c8d11c6c5..8021fa41e3b0954d17721c0a17581d01f88e2f26 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 affa56e39b2de93e51f6e9b7affa9ddab95e3e9f..f20312744da75b37cfbed0cb40d7c84f29793af9 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 5e6028271a292bb7c7726f595b859ee05c03a748..0179fe68905f6c1890a517657d345c35b235a845 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 2027c303bf7af76cf2a94a97b7bea738ece6b80a..e7d32af11f8271d78b5cce100397bb7b6602c3f0 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]))