Skip to content
Snippets Groups Projects
Commit d487d365 authored by Dominic Kempf's avatar Dominic Kempf
Browse files

Switch test and ansatz indices around!

Funnily, we were only able to calculate symmetric problems so far.
parent de673222
No related branches found
No related tags found
No related merge requests found
...@@ -336,7 +336,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id): ...@@ -336,7 +336,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
ansatz_lfs = determine_accumulation_space(accterm.term, 1, measure) ansatz_lfs = determine_accumulation_space(accterm.term, 1, measure)
from dune.perftool.pdelab.argument import name_accumulation_variable 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) predicates = boundary_predicates(accterm.term, measure, subdomain_id, visitor)
...@@ -345,7 +345,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id): ...@@ -345,7 +345,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
from dune.perftool.pdelab.argument import PDELabAccumulationFunction from dune.perftool.pdelab.argument import PDELabAccumulationFunction
from pymbolic.primitives import Call from pymbolic.primitives import Call
expr = Call(PDELabAccumulationFunction(accumvar, rank), 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 from dune.perftool.generation import instruction
......
...@@ -249,7 +249,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id): ...@@ -249,7 +249,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
) )
# Construct the expression representing "{r,jac}.accumulate(..)" # 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! # Determine the expression to accumulate with. This depends on the vectorization strategy!
result = prim.Subscript(result, tuple(prim.Variable(i) for i in inames)) 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): ...@@ -287,7 +287,7 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
accum = accum + ".data()" accum = accum + ".data()"
size = basis_functions_per_direction() ** world_dimension() size = basis_functions_per_direction() ** world_dimension()
globalarg(accum, dtype=np.float64, shape=(size, size), managed=True) 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)) expression = prim.Sum((assignee, result))
instruction(assignee=assignee, instruction(assignee=assignee,
expression=expression, expression=expression,
...@@ -298,8 +298,8 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id): ...@@ -298,8 +298,8 @@ def generate_accumulation_instruction(visitor, accterm, measure, subdomain_id):
# Default: Generate accumulation instructions # Default: Generate accumulation instructions
else: else:
expr = Call(PDELabAccumulationFunction(accum, rank), expr = Call(PDELabAccumulationFunction(accum, rank),
(ansatz_lfs.get_args() + (test_lfs.get_args() +
test_lfs.get_args() + ansatz_lfs.get_args() +
(result,) (result,)
) )
) )
......
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