diff --git a/dune/fufem/dgpqkindexset.hh b/dune/fufem/dgpqkindexset.hh index eba9c2ed09ca4cb84e9e8be7fc209d4fa4882590..1a12236061c9797dafb3eec8b90cf688c59b220f 100644 --- a/dune/fufem/dgpqkindexset.hh +++ b/dune/fufem/dgpqkindexset.hh @@ -10,19 +10,9 @@ template <class GridView,int order> class DGPQKIndexSet { - //! Parameter for mapper class - template<int dim> - struct ElementMapperLayout - { - bool contains (Dune::GeometryType gt) - { - return gt.dim() == dim; - } - }; - public: - DGPQKIndexSet(const GridView gridview) : mapper_(gridview) + DGPQKIndexSet(const GridView gridview) : mapper_(gridview, Dune::mcmgElementLayout()) { setup(gridview); } @@ -85,7 +75,7 @@ public: std::vector<int> elementOffsets_; - Dune::MultipleCodimMultipleGeomTypeMapper<GridView,ElementMapperLayout> mapper_; + Dune::MultipleCodimMultipleGeomTypeMapper<GridView> mapper_; ~ DGPQKIndexSet(){} diff --git a/dune/fufem/estimators/errorfractionmarking.hh b/dune/fufem/estimators/errorfractionmarking.hh index 5d57aa1a96689459770c6120962dbbed5ead569d..739c8189a3990963d0b2b0f3fa515ce6a951eb27 100644 --- a/dune/fufem/estimators/errorfractionmarking.hh +++ b/dune/fufem/estimators/errorfractionmarking.hh @@ -34,11 +34,8 @@ class ErrorFractionMarkingStrategy enum {dim = GridType::dimension}; //! Layout class for a all codim all geometry type mapper - template<int localDim> - struct AllCodimLayout - { - bool contains (Dune::GeometryType gt DUNE_UNUSED) const - { + struct AllCodimLayout { + bool operator() (Dune::GeometryType gt DUNE_UNUSED, int) const { return true; } }; @@ -84,7 +81,7 @@ mark(const std::vector<RefinementIndicator<GridType>*>& refinementIndicators, const std::vector<GridType*>& grids, double fraction) { - typedef typename Dune::LeafMultipleCodimMultipleGeomTypeMapper<GridType,AllCodimLayout> AllCodimMapper; + typedef typename Dune::LeafMultipleCodimMultipleGeomTypeMapper<GridType> AllCodimMapper; typedef typename std::multimap<double, std::pair<int,int>, std::greater<double> > ErrorMap; if (grids.size() != refinementIndicators.size()) @@ -104,7 +101,7 @@ mark(const std::vector<RefinementIndicator<GridType>*>& refinementIndicators, for (size_t i=0; i<grids.size(); ++i) { // mapper that maps all entities to indices - AllCodimMapper mapper(*grids[i]); + AllCodimMapper mapper(*grids[i], AllCodimLayout()); // initialize bitfield refineIndex[i].resize(mapper.size(), false); @@ -154,7 +151,7 @@ mark(const std::vector<RefinementIndicator<GridType>*>& refinementIndicators, for (size_t i=0; i<grids.size(); ++i) { - AllCodimMapper mapper(*grids[i]); + AllCodimMapper mapper(*grids[i], AllCodimLayout()); for (const auto& e : elements(grids[i]->leafGridView())) { diff --git a/dune/fufem/functionspacebases/p2hierarchicalwithelementbubblesbasis.hh b/dune/fufem/functionspacebases/p2hierarchicalwithelementbubblesbasis.hh index 4f0f7947b026c2f6180e4225147297196dedeeb0..0c9888efaf74b8af28ab67313b9b558e6b662ec3 100644 --- a/dune/fufem/functionspacebases/p2hierarchicalwithelementbubblesbasis.hh +++ b/dune/fufem/functionspacebases/p2hierarchicalwithelementbubblesbasis.hh @@ -31,16 +31,14 @@ class P2HierarchicalWithElementBubblesBasis : //! Parameter for mapper class //! In 2d we have vertex, edge, and element dofs - template<int localDim> - struct DofLayout - { - bool contains (Dune::GeometryType gt) { + struct DofLayout { + bool operator() (Dune::GeometryType gt, int dimension) const { assert(gt.dim() <= 2); - return gt.dim()==0 || gt.dim()==1 || gt.dim() == localDim; + return gt.dim()==0 || gt.dim()==1 || gt.dim() == dimension; } }; - typedef Dune::MultipleCodimMultipleGeomTypeMapper<GV,DofLayout> MapperType; + typedef Dune::MultipleCodimMultipleGeomTypeMapper<GV> MapperType; public: typedef typename Base::GridView GridView; @@ -50,7 +48,7 @@ class P2HierarchicalWithElementBubblesBasis : P2HierarchicalWithElementBubblesBasis(const GridView& gridview) : Base(gridview), - mapper_(gridview), + mapper_(gridview, DofLayout()), localFE_() {} diff --git a/dune/fufem/functionspacebases/refinedp0basis.hh b/dune/fufem/functionspacebases/refinedp0basis.hh index cc435332c06dae632409567adcec4c86556e1e43..1385bd1ccc56e29f2a9a7766fdb2902cdaf53a21 100644 --- a/dune/fufem/functionspacebases/refinedp0basis.hh +++ b/dune/fufem/functionspacebases/refinedp0basis.hh @@ -32,7 +32,7 @@ class RefinedP0Basis : using Base::dim; using Base::gridview_; - typedef typename Dune::MultipleCodimMultipleGeomTypeMapper<GV, Dune::MCMGElementLayout > P0BasisMapper; + typedef typename Dune::MultipleCodimMultipleGeomTypeMapper<GV> P0BasisMapper; public: typedef typename Base::GridView GridView; @@ -42,7 +42,7 @@ class RefinedP0Basis : RefinedP0Basis(const GridView& gridview) : Base(gridview), - mapper_(gridview) + mapper_(gridview, Dune::mcmgElementLayout()) {} void update(const GridView& gridview)