diff --git a/dune/vtk/datacollectorinterface.impl.hh b/dune/vtk/datacollectorinterface.impl.hh index d146cb1fa0c888776b6d63643eb2149845fd688b..abf5e6ad9fbc3fbd3a67f43f316689a9741ad940 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();