Skip to content
Snippets Groups Projects
Commit c4a0d4ca authored by René Heß's avatar René Heß
Browse files

Pass RF as template parameter to lop

parent 944fa9b4
No related branches found
No related tags found
No related merge requests found
......@@ -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):
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment