diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py
index bc76d54bb196d781df1f9f12617fd2eb0cf6524d..5bf9b95c949e46abf6e88c9e982d0879c3ecedb2 100644
--- a/python/dune/perftool/pdelab/driver.py
+++ b/python/dune/perftool/pdelab/driver.py
@@ -623,7 +623,8 @@ def typedef_localoperator(name, formdata):
     include_file(filename, filetag="driver")
     from dune.perftool.pdelab.localoperator import localoperator_basename
     lopname = localoperator_basename(formdata, data)
-    return "using {} = {}<{}, {}>;".format(name, lopname, ugfs, vgfs)
+    range_type = type_range()
+    return "using {} = {}<{}, {}, {}>;".format(name, lopname, ugfs, vgfs, range_type)
 
 
 def type_localoperator(formdata):
diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index ed4d5a45aa3f68efe288c3dc6204f76b86844224..c0701b397ba1c4b8dd91c07aa4459bbefa45a9d2 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -56,6 +56,24 @@ def lop_template_test_gfs():
     return "GFSV"
 
 
+@template_parameter("operator")
+def lop_template_range_field():
+    return "RF"
+
+
+@class_member("operator")
+def lop_domain_field(name):
+    # TODO: Rethink for not Galerkin Method
+    gfs = lop_template_ansatz_gfs()
+    return "using {} = typename {}::Traits::GridView::ctype;".format(name, gfs)
+
+
+def name_domain_field():
+    name = "DF"
+    lop_domain_field(name)
+    return name
+
+
 def lop_template_gfs(ma):
     from ufl.classes import Argument, Coefficient
     if isinstance(ma.argexpr, Argument):
@@ -414,6 +432,7 @@ def generate_localoperator_kernels(formdata, data):
     localoperator_basename(formdata, data)
     lop_template_ansatz_gfs()
     lop_template_test_gfs()
+    lop_template_range_field()
     from dune.perftool.pdelab.parameter import parameterclass_basename
     parameterclass_basename(formdata, data)
 
@@ -426,8 +445,8 @@ def generate_localoperator_kernels(formdata, data):
     base_class('Dune::PDELab::LocalOperatorDefaultFlags', classtag="operator")
     from dune.perftool.pdelab.driver import is_stationary
     if not is_stationary():
-        # TODO replace double with clever typename stuff
-        base_class('Dune::PDELab::InstationaryLocalOperatorDefaultMethods<double>', classtag="operator")
+        rf = lop_template_range_field()
+        base_class('Dune::PDELab::InstationaryLocalOperatorDefaultMethods<{}>'.format(rf), classtag="operator")
 
         # Create set time method in parameter class
         from dune.perftool.pdelab.parameter import define_set_time_method