From c412ba7fea5d405430ddb18ef1c90273c628b279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de> Date: Tue, 10 Jul 2018 10:42:25 +0200 Subject: [PATCH] Make quadrature_preamble a backend function --- python/dune/perftool/pdelab/geometry.py | 46 ++++++++++++----------- python/dune/perftool/pdelab/quadrature.py | 1 + 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/python/dune/perftool/pdelab/geometry.py b/python/dune/perftool/pdelab/geometry.py index 80ab0387..e3026745 100644 --- a/python/dune/perftool/pdelab/geometry.py +++ b/python/dune/perftool/pdelab/geometry.py @@ -204,14 +204,14 @@ def name_in_cell_geometry(restriction): # TODO is it always necessary to add quadrature inames? def apply_in_cell_transformation(name, local, restriction): geo = name_in_cell_geometry(restriction) - return quadrature_preamble("{} = {}.global({});".format(name, - geo, - str(local), - ), - assignees=frozenset({name}), - read_variables=frozenset({get_pymbolic_basename(local)}), - depends_on=frozenset({Writes(get_pymbolic_basename(local))}), - ) + return get_backend("quadrature_preamble")("{} = {}.global({});".format(name, + geo, + str(local), + ), + assignees=frozenset({name}), + read_variables=frozenset({get_pymbolic_basename(local)}), + depends_on=frozenset({Writes(get_pymbolic_basename(local))}), + ) def pymbolic_in_cell_coordinates(local, restriction): @@ -339,14 +339,15 @@ def define_jacobian_inverse_transposed(name, restriction): temporary_variable(name, decl_method=define_jacobian_inverse_transposed_temporary(restriction), shape=(dim, dim)) geo = name_cell_geometry(restriction) pos = get_backend("qp_in_cell", selector=option_switch(("blockstructured", "sumfact")))(restriction) - return quadrature_preamble("{} = {}.jacobianInverseTransposed({});".format(name, - geo, - str(pos), - ), - assignees=frozenset({name}), - read_variables=frozenset({get_pymbolic_basename(pos)}), - depends_on=frozenset({Writes(get_pymbolic_basename(pos))}), - ) + + return get_backend("quadrature_preamble")("{} = {}.jacobianInverseTransposed({});".format(name, + geo, + str(pos), + ), + assignees=frozenset({name}), + read_variables=frozenset({get_pymbolic_basename(pos)}), + depends_on=frozenset({Writes(get_pymbolic_basename(pos))}), + ) @backend(interface="name_jit", name="default") @@ -390,16 +391,17 @@ def define_constant_jacobian_determinant(name): def define_jacobian_determinant(name): temporary_variable(name, shape=()) geo = name_geometry() - pos = get_backend("quad_pos", selector=option_switch("blockstructured"))() + pos = get_backend("quad_pos", selector=option_switch(("blockstructured", "sumfact")))() code = "{} = {}.integrationElement({});".format(name, geo, str(pos), ) - return quadrature_preamble(code, - assignees=frozenset({name}), - read_variables=frozenset({get_pymbolic_basename(pos)}), - depends_on=frozenset({Writes(get_pymbolic_basename(pos))}), - ) + + return get_backend("quadrature_preamble")(code, + assignees=frozenset({name}), + read_variables=frozenset({get_pymbolic_basename(pos)}), + depends_on=frozenset({Writes(get_pymbolic_basename(pos))}), + ) @backend(interface="fdetjac", name="constant_transformation_matrix") diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py index 031d97b0..61008799 100644 --- a/python/dune/perftool/pdelab/quadrature.py +++ b/python/dune/perftool/pdelab/quadrature.py @@ -61,6 +61,7 @@ def quadrature_inames(): return (quadrature_iname(),) +@backend(interface="quadrature_preamble") def quadrature_preamble(code, **kw): kw['tags'] = kw.get('tags', frozenset({})).union(frozenset({"quad"})) return instruction(inames=get_backend(interface="quad_inames")(), code=code, **kw) -- GitLab