Skip to content
Snippets Groups Projects
Commit 3da16eda authored by Marcel Koch's avatar Marcel Koch
Browse files

use custom to_global only for volume integrals

parent 0eeb1a7d
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,8 @@ from dune.perftool.pdelab.restriction import restricted_name ...@@ -2,7 +2,8 @@ from dune.perftool.pdelab.restriction import restricted_name
from dune.perftool.generation import (get_backend, from dune.perftool.generation import (get_backend,
temporary_variable, temporary_variable,
instruction) instruction,
get_global_context_value)
from dune.perftool.tools import get_pymbolic_basename from dune.perftool.tools import get_pymbolic_basename
from dune.perftool.options import (get_form_option, from dune.perftool.options import (get_form_option,
option_switch, get_option) option_switch, get_option)
...@@ -375,8 +376,18 @@ def apply_constant_to_global_transformation(name, local): ...@@ -375,8 +376,18 @@ def apply_constant_to_global_transformation(name, local):
def to_global(local): def to_global(local):
macro = name_point_in_macro(local) macro = name_point_in_macro(local)
name = macro + "_global" name = macro + "_global"
if get_form_option("constant_transformation_matrix"):
apply_constant_to_global_transformation(name, prim.Variable(macro)) it = get_global_context_value("integral_type")
if it == 'cell':
if get_form_option("constant_transformation_matrix"):
apply_constant_to_global_transformation(name, prim.Variable(macro))
else:
apply_default_to_global_transformation(name, prim.Variable(macro))
elif it == 'exterior_facet' or it == 'interior_facet':
from dune.perftool.pdelab.geometry import apply_to_global_transformation
apply_to_global_transformation(name, prim.Variable(macro))
else: else:
apply_default_to_global_transformation(name, prim.Variable(macro)) raise NotImplementedError
return prim.Variable(name) return prim.Variable(name)
...@@ -507,7 +507,7 @@ def define_element_corners(name): ...@@ -507,7 +507,7 @@ def define_element_corners(name):
iname = "i_corner" iname = "i_corner"
domain(iname, n_corners) domain(iname, n_corners)
from dune.perftool.generation import instruction from dune.perftool.generation import instruction
instruction(code="{0}[{1}] = {2}.corner({3});".format(name, iname, name_cell_geometry(Restriction.NONE), iname), instruction(code="{0}[{1}] = {2}.corner({3});".format(name, iname, name_geometry(), iname),
assignees=frozenset({name}), assignees=frozenset({name}),
within_inames=frozenset({iname}), within_inames_is_final=True) within_inames=frozenset({iname}), within_inames_is_final=True)
......
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