From de4f2cabf477feea61adcb7bc5cc09fae2789ced Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20He=C3=9F?= <rene.hess@iwr.uni-heidelberg.de>
Date: Mon, 31 Oct 2016 14:03:35 +0100
Subject: [PATCH] No temporary for quadrature position

---
 python/dune/perftool/pdelab/quadrature.py | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/python/dune/perftool/pdelab/quadrature.py b/python/dune/perftool/pdelab/quadrature.py
index c4bfa744..23ab380e 100644
--- a/python/dune/perftool/pdelab/quadrature.py
+++ b/python/dune/perftool/pdelab/quadrature.py
@@ -65,6 +65,7 @@ def quadrature_preamble(code, **kw):
 
 
 def name_quadrature_point():
+    # Note: Used for qp_in_inside/qp_in_outside
     return "qp"
 
 
@@ -118,29 +119,15 @@ def name_quadrature_points():
     return name
 
 
-def define_quadrature_position(name):
-    # TODO
-    # qp = name_quadrature_point()
+def pymbolic_quadrature_position():
     quad_points = name_quadrature_points()
     quad_iname = quadrature_iname()
-    return quadrature_preamble(code="{} = {}[{}];".format(name, quad_points, quad_iname),
-                               assignees=frozenset({name}),
-                               )
+    from pymbolic.primitives import Subscript, Variable
+    return Subscript(Variable(quad_points), (Variable(quad_iname),))
 
 
 def name_quadrature_position():
-    name = "pos"
-    # To determine the shape, I do query global information here for lack of good alternatives
-    from dune.perftool.generation import get_global_context_value
-    it = get_global_context_value("integral_type")
-    from dune.perftool.pdelab.geometry import name_dimension, name_intersection_dimension
-    if it == 'cell':
-        shape = (name_dimension(),)
-    else:
-        shape = (name_intersection_dimension(),)
-    temporary_variable(name, shape=shape, shape_impl=("fv",))
-    define_quadrature_position(name)
-    return name
+    return str(pymbolic_quadrature_position())
 
 
 def name_quadrature_position_in_cell(restriction):
-- 
GitLab