1#ifndef DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_GRIDVIEW_HH
2#define DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_GRIDVIEW_HH
4#include <dune/grid/common/gridview.hh>
5#include <dune/grid/common/defaultgridview.hh>
13template<
typename,
typename,
typename>
14class IntersectionIteratorWrapper;
16template<
typename Gr
idImp>
18 :
public DefaultLevelGridView<GridImp>
21 using BaseT = DefaultLevelGridView<GridImp>;
25 using typename BaseT::IntersectionIterator;
27 LevelGridView(
const GridImp& grid,
int level)
31 IntersectionIterator ibegin(
const typename BaseT::template Codim<0>::Entity& entity)
const
33 return IntersectionIteratorWrapper<
35 typename BaseT::IndexSet,
36 typename GridImp::MultiDomainGrid::LevelGridView::IntersectionIterator
39 this->grid()._grid.levelGridView(entity.level()).ibegin(entity.impl().multiDomainEntity())
43 IntersectionIterator iend(
const typename BaseT::template Codim<0>::Entity& entity)
const
45 return IntersectionIteratorWrapper<
47 typename BaseT::IndexSet,
48 typename GridImp::MultiDomainGrid::LevelGridView::IntersectionIterator
51 this->grid()._grid.levelGridView(entity.level()).iend(entity.impl().multiDomainEntity())
57template<
typename Gr
idImp>
58struct LevelGridViewTraits
59 :
public DefaultLevelGridViewTraits<GridImp>
61 using GridViewImp = LevelGridView<GridImp>;
66template<
typename Gr
idImp>
68 :
public DefaultLeafGridView<GridImp>
71 using BaseT = DefaultLeafGridView<GridImp>;
75 using typename BaseT::IntersectionIterator;
77 LeafGridView(
const GridImp& grid)
81 IntersectionIterator ibegin(
const typename BaseT::template Codim<0>::Entity& entity)
const
83 return IntersectionIteratorWrapper<
85 typename BaseT::IndexSet,
86 typename GridImp::MultiDomainGrid::LeafGridView::IntersectionIterator
89 this->grid()._grid.leafGridView().ibegin(entity.impl().multiDomainEntity())
93 IntersectionIterator iend(
const typename BaseT::template Codim<0>::Entity& entity)
const
95 return IntersectionIteratorWrapper<
97 typename BaseT::IndexSet,
98 typename GridImp::MultiDomainGrid::LeafGridView::IntersectionIterator
101 this->grid()._grid.leafGridView().iend(entity.impl().multiDomainEntity())
107template<
typename Gr
idImp>
108struct LeafGridViewTraits
109 :
public DefaultLeafGridViewTraits<GridImp>
111 using GridViewImp = LeafGridView<GridImp>;