From b49f53218a4c7e4e1d63fa830543b756bc4e5a03 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Wed, 26 Apr 2017 20:04:31 +0200
Subject: [PATCH] Select components of list tensors if indexed with fixed
 indices

---
 python/dune/perftool/ufl/visitor.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/python/dune/perftool/ufl/visitor.py b/python/dune/perftool/ufl/visitor.py
index b82b7fc9..f4acf9d9 100644
--- a/python/dune/perftool/ufl/visitor.py
+++ b/python/dune/perftool/ufl/visitor.py
@@ -232,7 +232,12 @@ class UFL2LoopyVisitor(ModifiedTerminalTracker):
         return self._index_or_fixed_index(o)
 
     def list_tensor(self, o):
-        return self.interface.pymbolic_list_tensor(o)
+        if all(isinstance(i, int) for i in self.indices):
+            index = self.indices[0]
+            self.indices = self.indices[1:]
+            return self.call(o.ufl_operands[index])
+        else:
+            return self.interface.pymbolic_list_tensor(o)
 
     def identity(self, o):
         return self.interface.pymbolic_identity(o)
-- 
GitLab