From d487d365dd17d5051ea78715cfc8e41ac017b229 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Tue, 17 Jan 2017 15:10:01 +0100
Subject: [PATCH] Switch test and ansatz indices around!

Funnily, we were only able to calculate symmetric problems so far.
---
 python/dune/perftool/pdelab/localoperator.py | 4 ++--
 python/dune/perftool/sumfact/sumfact.py      | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/python/dune/perftool/pdelab/localoperator.py b/python/dune/perftool/pdelab/localoperator.py
index 50f4b2a0..f6ffbec8 100644
--- a/python/dune/perftool/pdelab/localoperator.py
+++ b/python/dune/perftool/pdelab/localoperator.py
@@ -336,7 +336,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
     ansatz_lfs = determine_accumulation_space(accterm.term, 1, measure)
 
     from dune.perftool.pdelab.argument import name_accumulation_variable
-    accumvar = name_accumulation_variable((ansatz_lfs.get_restriction() + test_lfs.get_restriction()))
+    accumvar = name_accumulation_variable((test_lfs.get_restriction() + ansatz_lfs.get_restriction()))
 
     predicates = boundary_predicates(accterm.term, measure, subdomain_id, visitor)
 
@@ -345,7 +345,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
     from dune.perftool.pdelab.argument import PDELabAccumulationFunction
     from pymbolic.primitives import Call
     expr = Call(PDELabAccumulationFunction(accumvar, rank),
-                (ansatz_lfs.get_args() + test_lfs.get_args() + (pymbolic_expr,))
+                (test_lfs.get_args() + ansatz_lfs.get_args() + (pymbolic_expr,))
                 )
 
     from dune.perftool.generation import instruction
diff --git a/python/dune/perftool/sumfact/sumfact.py b/python/dune/perftool/sumfact/sumfact.py
index ea22fd5d..d56e080b 100644
--- a/python/dune/perftool/sumfact/sumfact.py
+++ b/python/dune/perftool/sumfact/sumfact.py
@@ -249,7 +249,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
                                              )
 
         # Construct the expression representing "{r,jac}.accumulate(..)"
-        accum = name_accumulation_variable(ansatz_lfs.get_restriction() + test_lfs.get_restriction())
+        accum = name_accumulation_variable(test_lfs.get_restriction() + ansatz_lfs.get_restriction())
 
         # Determine the expression to accumulate with. This depends on the vectorization strategy!
         result = prim.Subscript(result, tuple(prim.Variable(i) for i in inames))
@@ -287,7 +287,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
                 accum = accum + ".data()"
                 size = basis_functions_per_direction() ** world_dimension()
                 globalarg(accum, dtype=np.float64, shape=(size, size), managed=True)
-                assignee = prim.Subscript(prim.Variable(accum), (ansatz_lfs.index, test_lfs.index))
+                assignee = prim.Subscript(prim.Variable(accum), (test_lfs.index, ansatz_lfs.index))
                 expression = prim.Sum((assignee, result))
                 instruction(assignee=assignee,
                             expression=expression,
@@ -298,8 +298,8 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
         # Default: Generate accumulation instructions
         else:
             expr = Call(PDELabAccumulationFunction(accum, rank),
-                        (ansatz_lfs.get_args() +
-                         test_lfs.get_args() +
+                        (test_lfs.get_args() +
+                         ansatz_lfs.get_args() +
                          (result,)
                          )
                         )
-- 
GitLab