diff --git a/dune/subgrid/subgrid.hh b/dune/subgrid/subgrid.hh index dcae0635852809cc784af65338407c446e02548c..8849cb1f9546b5b06a391e998e9e38177ac754d7 100644 --- a/dune/subgrid/subgrid.hh +++ b/dune/subgrid/subgrid.hh @@ -1068,19 +1068,10 @@ class SubGrid : template <class Container> void insertSet(const Container& idContainer) { - typedef typename HostGrid::Traits::template Codim<0>::LevelIterator HostElementLevelIterator; - for(int level=0; level <= hostgrid_->maxLevel(); ++level) - { - HostElementLevelIterator it = hostgrid_->lbegin<0>(level); - HostElementLevelIterator end = hostgrid_->lend<0>(level); - for (;it!=end; ++it) - { - typename Container::const_iterator contained = idContainer.find(hostgrid_->globalIdSet().id(*it)); - if (contained != idContainer.end()) - insert(*it); - } - } + for (const auto& e: elements(hostgrid_->levelGridView(level))) + if (idContainer.find(hostgrid_->globalIdSet().id(e)) != idContainer.end()) + insert(e); } @@ -1096,19 +1087,10 @@ class SubGrid : std::cout << "subgrid.insertSetPartial(): " << std::endl << "{" << std::endl; #endif - typedef typename HostGrid::Traits::template Codim<0>::LevelIterator HostElementLevelIterator; - for(int level=0; level <= hostgrid_->maxLevel(); ++level) - { - HostElementLevelIterator it = hostgrid_->template lbegin<0>(level); - HostElementLevelIterator end = hostgrid_->template lend<0>(level); - for (;it!=end; ++it) - { - typename Container::const_iterator contained = idContainer.find(hostgrid_->globalIdSet().id(*it)); - if (contained != idContainer.end()) - insertPartial(*it); - } - } + for (const auto& e : elements(hostgrid_->levelGridView(level))) + if (idContainer.find(hostgrid_->globalIdSet().id(e)) != idContainer.end()) + insertPartial(e); #ifdef SUBGRID_TIME std::cout << "}" << std::endl << " -> " << timer.elapsed() << std::endl;