dune-multidomaingrid 2.8
Loading...
Searching...
No Matches
gridview.hh
Go to the documentation of this file.
1#ifndef DUNE_MULTIDOMAINGRID_GRIDVIEW_HH
2#define DUNE_MULTIDOMAINGRID_GRIDVIEW_HH
3
4#include <dune/grid/common/gridview.hh>
5#include <dune/grid/common/defaultgridview.hh>
6
7namespace Dune {
8
9namespace mdgrid {
10
11template<typename,typename>
12class IntersectionIteratorWrapper;
13
14template<typename GridImp>
16 : public DefaultLevelGridView<GridImp>
17{
18
19 using BaseT = DefaultLevelGridView<GridImp>;
20
21public:
22
23 using typename BaseT::IntersectionIterator;
24
25 LevelGridView(const GridImp& grid, int level)
26 : BaseT(grid,level)
27 {}
28
29 IntersectionIterator ibegin(const typename BaseT::template Codim<0>::Entity& entity) const
30 {
32 const GridImp,
33 typename GridImp::HostGrid::LevelGridView::IntersectionIterator
34 >(
35 this->grid().hostGrid().levelGridView(entity.level()).ibegin(entity.impl().hostEntity())
36 );
37 }
38
39 IntersectionIterator iend(const typename BaseT::template Codim<0>::Entity& entity) const
40 {
42 const GridImp,
43 typename GridImp::HostGrid::LevelGridView::IntersectionIterator
44 >(
45 this->grid().hostGrid().levelGridView(entity.level()).iend(entity.impl().hostEntity())
46 );
47 }
48
49};
50
51template<typename GridImp>
53 : public DefaultLevelGridViewTraits<GridImp>
54{
56};
57
58
59
60template<typename GridImp>
62 : public DefaultLeafGridView<GridImp>
63{
64
65 typedef DefaultLeafGridView<GridImp> BaseT;
66
67public:
68
69 typedef typename BaseT::IntersectionIterator IntersectionIterator;
70
71 LeafGridView(const GridImp& grid)
72 : BaseT(grid)
73 {}
74
75 IntersectionIterator ibegin(const typename BaseT:: template Codim<0>::Entity& entity) const
76 {
78 const GridImp,
79 typename GridImp::HostGrid::LeafGridView::IntersectionIterator
80 >(
81 this->grid().hostGrid().leafGridView().ibegin(entity.impl().hostEntity())
82 );
83 }
84
85 IntersectionIterator iend(const typename BaseT:: template Codim<0>::Entity& entity) const
86 {
88 const GridImp,
89 typename GridImp::HostGrid::LeafGridView::IntersectionIterator
90 >(
91 this->grid().hostGrid().leafGridView().iend(entity.impl().hostEntity())
92 );
93 }
94
95};
96
97template<typename GridImp>
99 : public DefaultLeafGridViewTraits<GridImp>
100{
102};
103
104
105
106} // namespace mdgrid
107
108} // namespace Dune
109
110#endif // DUNE_MULTIDOMAINGRID_GRIDVIEW_HH
Definition: multidomaingrid.hh:8
Definition: intersectioniterator.hh:16
Definition: gridview.hh:17
IntersectionIterator iend(const typename BaseT::template Codim< 0 >::Entity &entity) const
Definition: gridview.hh:39
LevelGridView(const GridImp &grid, int level)
Definition: gridview.hh:25
IntersectionIterator ibegin(const typename BaseT::template Codim< 0 >::Entity &entity) const
Definition: gridview.hh:29
Definition: gridview.hh:63
IntersectionIterator ibegin(const typename BaseT::template Codim< 0 >::Entity &entity) const
Definition: gridview.hh:75
IntersectionIterator iend(const typename BaseT::template Codim< 0 >::Entity &entity) const
Definition: gridview.hh:85
BaseT::IntersectionIterator IntersectionIterator
Definition: gridview.hh:69
LeafGridView(const GridImp &grid)
Definition: gridview.hh:71
Definition: gridview.hh:54
LevelGridView< GridImp > GridViewImp
Definition: gridview.hh:55
Definition: gridview.hh:100
LeafGridView< GridImp > GridViewImp
Definition: gridview.hh:101