dune-grid  2.4.1-rc2
identitygridintersectioniterator.hh
Go to the documentation of this file.
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_IDENTITYGRID_INTERSECTIONITERATOR_HH
4 #define DUNE_IDENTITYGRID_INTERSECTIONITERATOR_HH
5 
7 #include "identitygridentity.hh"
8 
10 
15 namespace Dune {
16 
25  template<class GridImp>
26  class IdentityGridLeafIntersectionIterator
27  {
28 
29  enum {dim=GridImp::dimension};
30 
31  enum {dimworld=GridImp::dimensionworld};
32 
33  // The type used to store coordinates
34  typedef typename GridImp::ctype ctype;
35 
36  typedef typename GridImp::HostGridType::LeafGridView::IntersectionIterator HostLeafIntersectionIterator;
37 
38  public:
39 
41 
43  {}
44 
45  IdentityGridLeafIntersectionIterator(const GridImp* identityGrid,
46  const HostLeafIntersectionIterator& hostIterator)
47  : identityGrid_(identityGrid)
48  , hostIterator_(hostIterator)
49  {}
50 
52  bool equals(const IdentityGridLeafIntersectionIterator& other) const {
53  return hostIterator_ == other.hostIterator_;
54  }
55 
56 
58  void increment() {
59  ++hostIterator_;
60  }
61 
63  Intersection dereference() const {
64  return IdentityGridLeafIntersection<GridImp>(identityGrid_,*hostIterator_);
65  }
66 
67  private:
68  //**********************************************************
69  // private data
70  //**********************************************************
71 
72  const GridImp* identityGrid_;
73  HostLeafIntersectionIterator hostIterator_;
74  };
75 
76 
77 
78 
80  template<class GridImp>
82  {
83  enum {dim=GridImp::dimension};
84 
85  enum {dimworld=GridImp::dimensionworld};
86 
87  // The type used to store coordinates
88  typedef typename GridImp::ctype ctype;
89 
90  typedef typename GridImp::HostGridType::LevelGridView::IntersectionIterator HostLevelIntersectionIterator;
91 
92  public:
93 
95 
97  {}
98 
99  IdentityGridLevelIntersectionIterator(const GridImp* identityGrid,
100  const HostLevelIntersectionIterator& hostIterator)
101  : identityGrid_(identityGrid)
102  , hostIterator_(hostIterator)
103  {}
104 
107  return hostIterator_ == other.hostIterator_;
108  }
109 
110 
112  void increment() {
113  ++hostIterator_;
114  }
115 
117  Intersection dereference() const {
118  return IdentityGridLevelIntersection<GridImp>(identityGrid_,*hostIterator_);
119  }
120 
121  private:
122 
123 
124  const GridImp* identityGrid_;
125  HostLevelIntersectionIterator hostIterator_;
126 
127  };
128 
129 
130 } // namespace Dune
131 
132 #endif
Intersection of a mesh entities of codimension 0 ("elements") with a "neighboring" element or with th...
Definition: albertagrid/dgfparser.hh:26
Iterator over all element neighborsMesh entities of codimension 0 ("elements") allow to visit all nei...
Definition: identitygridentity.hh:30
bool equals(const IdentityGridLeafIntersectionIterator &other) const
equality
Definition: identitygridintersectioniterator.hh:52
void increment()
prefix increment
Definition: identitygridintersectioniterator.hh:58
Intersection dereference() const
dereferencing
Definition: identitygridintersectioniterator.hh:63
Dune::Intersection< const GridImp, Dune::IdentityGridLevelIntersection< GridImp > > Intersection
Definition: identitygridintersectioniterator.hh:94
Intersection dereference() const
dereferencing
Definition: identitygridintersectioniterator.hh:117
Definition: identitygridintersections.hh:195
Dune::Intersection< const GridImp, Dune::IdentityGridLeafIntersection< GridImp > > Intersection
Definition: identitygridintersectioniterator.hh:40
void increment()
prefix increment
Definition: identitygridintersectioniterator.hh:112
The IdentityGridEntity class.
IdentityGridLevelIntersectionIterator(const GridImp *identityGrid, const HostLevelIntersectionIterator &hostIterator)
Definition: identitygridintersectioniterator.hh:99
An intersection with a leaf neighbor elementMesh entities of codimension 0 ("elements") allow to visi...
Definition: identitygridintersections.hh:29
IdentityGridLeafIntersectionIterator()
Definition: identitygridintersectioniterator.hh:42
Include standard header files.
Definition: agrid.hh:59
The IdentityGridLeafIntersection and IdentityGridLevelIntersection classes.
IdentityGridLevelIntersectionIterator()
Definition: identitygridintersectioniterator.hh:96
IdentityGridLeafIntersectionIterator(const GridImp *identityGrid, const HostLeafIntersectionIterator &hostIterator)
Definition: identitygridintersectioniterator.hh:45
bool equals(const IdentityGridLevelIntersectionIterator< GridImp > &other) const
equality
Definition: identitygridintersectioniterator.hh:106
Definition: identitygridentity.hh:27