diff --git a/python/dune/perftool/compile.py b/python/dune/perftool/compile.py index 452aec89be16d2360c51a60b317f8d37ffd75a6b..a40a178227823c199c2a59a6f83baa8cb899d10b 100644 --- a/python/dune/perftool/compile.py +++ b/python/dune/perftool/compile.py @@ -108,3 +108,4 @@ def compile_form(): from dune.perftool.pdelab.localoperator import generate_localoperator_file generate_localoperator_file(kernels, filename) + break diff --git a/python/dune/perftool/pdelab/driver.py b/python/dune/perftool/pdelab/driver.py index d5840e6b7046d9f5cb331967046f187c745263c9..9a3ad1474c8667e1c2e2d1ea4f36d574097ce281 100644 --- a/python/dune/perftool/pdelab/driver.py +++ b/python/dune/perftool/pdelab/driver.py @@ -580,7 +580,12 @@ def name_matrixbackend(): @symbol def type_parameters(): - return "LocalOperatorParams" + from dune.perftool.generation import get_global_context_value + data = get_global_context_value("data") + formdata = get_global_context_value("formdata") + from dune.perftool.pdelab.parameter import parameterclass_basename + name = parameterclass_basename(formdata, data) + return name @preamble @@ -608,7 +613,9 @@ def typedef_localoperator(name): from dune.perftool.pdelab.localoperator import name_localoperator_file filename = name_localoperator_file(formdata, data) include_file(filename, filetag="driver") - return "using {} = LocalOperator<{}, {}>;".format(name, ugfs, vgfs) + from dune.perftool.pdelab.localoperator import localoperator_basename + lopname = localoperator_basename(formdata, data) + return "using {} = {}<{}, {}>;".format(name, lopname, ugfs, vgfs) @symbol diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py index cf5bf30bbb61936538f243596295fe2587620f3a..dde94934766335f1a85d340ca53073b7b14b6911 100644 --- a/python/dune/perftool/pdelab/localoperator.py +++ b/python/dune/perftool/pdelab/localoperator.py @@ -126,8 +126,9 @@ def name_initree_member(): @class_basename("operator") -def localoperator_basename(): - return "LocalOperator" +def localoperator_basename(formdata, data): + form_name = name_form(formdata, data) + return "LocalOperator"+form_name.capitalize() def class_type_from_cache(classtag): @@ -322,11 +323,11 @@ def generate_localoperator_kernels(formdata, data): include_file('dune/pdelab/localoperator/pattern.hh', filetag="operatorfile") # Trigger this one once early on to avoid wrong stuff happening - localoperator_basename() + localoperator_basename(formdata, data) lop_template_ansatz_gfs() lop_template_test_gfs() from dune.perftool.pdelab.parameter import parameterclass_basename - parameterclass_basename() + parameterclass_basename(formdata, data) # Make sure there is always the same constructor arguments (even if parameter class is empty) from dune.perftool.pdelab.localoperator import name_initree_member diff --git a/python/dune/perftool/pdelab/parameter.py b/python/dune/perftool/pdelab/parameter.py index c4e3c5488015445dc954258525370cece2c82d65..cda2494567e0c542a8cd7893157fe42805b63e6c 100644 --- a/python/dune/perftool/pdelab/parameter.py +++ b/python/dune/perftool/pdelab/parameter.py @@ -24,8 +24,8 @@ from dune.perftool.pdelab.localoperator import (class_type_from_cache, @class_basename("parameterclass") -def parameterclass_basename(): - lopbase = localoperator_basename() +def parameterclass_basename(formdata, data): + lopbase = localoperator_basename(formdata, data) return "{}Params".format(lopbase)