From b41890c456801421d349aee2119d5ea19a0eff01 Mon Sep 17 00:00:00 2001
From: Simon Praetorius <simon.praetorius@tu-dresden.de>
Date: Mon, 3 Dec 2018 12:43:21 -0500
Subject: [PATCH] use mcmg mapper instead of index set when traversing elements

---
 dune/vtk/datacollectorinterface.impl.hh | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/dune/vtk/datacollectorinterface.impl.hh b/dune/vtk/datacollectorinterface.impl.hh
index d146cb1..abf5e6a 100644
--- a/dune/vtk/datacollectorinterface.impl.hh
+++ b/dune/vtk/datacollectorinterface.impl.hh
@@ -2,6 +2,7 @@
 
 #include <dune/geometry/referenceelements.hh>
 #include <dune/grid/common/gridenums.hh>
+#include <dune/grid/common/mcmgmapper.hh>
 
 namespace Dune {
 
@@ -11,12 +12,12 @@ std::vector<T> DataCollectorInterface<GridView, Derived>
   ::cellDataImpl (VtkFunction const& fct) const
 {
   std::vector<T> data(gridView_.size(0) * fct.ncomps());
-  auto const& indexSet = gridView_.indexSet();
+  MultipleCodimMultipleGeomTypeMapper<GridView> mapper(gridView_, mcmgElementLayout());
   auto localFct = localFunction(fct);
   for (auto const& e : elements(gridView_, Partitions::all)) {
     localFct.bind(e);
     auto refElem = referenceElement<T,GridView::dimension>(e.type());
-    std::size_t idx = fct.ncomps() * indexSet.index(e);
+    std::size_t idx = fct.ncomps() * mapper.index(e);
     for (int comp = 0; comp < fct.ncomps(); ++comp)
       data[idx + comp] = T(localFct.evaluate(comp, refElem.position(0,0)));
     localFct.unbind();
-- 
GitLab