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