#ifndef SRC_HDF5_RESTRICT_HH #define SRC_HDF5_RESTRICT_HH #include <cassert> #include <dune/common/bitsetvector.hh> #include "../../utils/tobool.hh" template <class Vector, class Patch> Vector restrictToSurface(Vector const &v1, Patch const &patch) { auto const &vertices = *patch.getVertices(); assert(vertices.size() == v1.size()); Vector ret(vertices.count()); auto target = ret.begin(); for (size_t i = 0; i < v1.size(); ++i) if (toBool(vertices[i])) *(target++) = v1[i]; assert(target == ret.end()); return ret; } #endif