From ed87961392764fda852e0182ed06237311e072a2 Mon Sep 17 00:00:00 2001 From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de> Date: Thu, 6 Apr 2017 17:50:02 +0200 Subject: [PATCH] fix fastdg --- python/dune/perftool/sumfact/basis.py | 2 +- python/dune/perftool/sumfact/symbolic.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/python/dune/perftool/sumfact/basis.py b/python/dune/perftool/sumfact/basis.py index a2e774e4..86697f9c 100644 --- a/python/dune/perftool/sumfact/basis.py +++ b/python/dune/perftool/sumfact/basis.py @@ -103,7 +103,7 @@ def pymbolic_coefficient_gradient(element, restriction, component, coeff_func, v # with the position in the vector register. if direct_indexing_is_possible: assert len(visitor.indices) == 1 - return maybe_wrap_subscript(var, tuple(prim.Variable(i) for i in quadrature_inames()) + visitor.indices), None + return maybe_wrap_subscript(var, vsf.quadrature_index(sf, visitor.indices)), None # TODO this should be quite conditional!!! for i, buf in enumerate(buffers): diff --git a/python/dune/perftool/sumfact/symbolic.py b/python/dune/perftool/sumfact/symbolic.py index 1c92755e..fb7e19df 100644 --- a/python/dune/perftool/sumfact/symbolic.py +++ b/python/dune/perftool/sumfact/symbolic.py @@ -439,8 +439,12 @@ class VectorizedSumfactKernel(SumfactKernelBase, ImmutableRecord, prim.Variable) def quadrature_shape(self): return tuple(mat.quadrature_size for mat in self.matrix_sequence) + (self.horizontal_width,) - def quadrature_index(self, sf): - return self.kernels[0].quadrature_index(sf) + (self.kernels.index(sf),) + def quadrature_index(self, sf, direct_index=None): + if direct_index is not None: + assert isinstance(direct_index, tuple) + return self.kernels[0].quadrature_index(sf) + direct_index + else: + return self.kernels[0].quadrature_index(sf) + (self.kernels.index(sf),) @property def quadrature_dimtags(self): -- GitLab