dune-grid  2.5.0
identitygridleveliterator.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_IDENTITYGRIDLEVELITERATOR_HH
4 #define DUNE_IDENTITYGRIDLEVELITERATOR_HH
5 
7 
12 namespace Dune {
13 
17  template<int codim, PartitionIteratorType pitype, class GridImp>
18  class IdentityGridLevelIterator
19  {
20 
21  typedef typename GridImp::HostGridType::Traits::template Codim<codim>::template Partition<pitype>::LevelIterator HostGridLevelIterator;
22 
23  public:
24 
25  enum {codimension = codim};
26 
27  typedef typename GridImp::template Codim<codim>::Entity Entity;
28 
30  explicit IdentityGridLevelIterator(const GridImp* identityGrid, int level)
31  : identityGrid_(identityGrid),
32  hostLevelIterator_(identityGrid->hostgrid_->levelGridView(level).template begin<codim,pitype>())
33  {}
34 
35 
41  explicit IdentityGridLevelIterator(const GridImp* identityGrid, int level, bool endDummy)
42  : identityGrid_(identityGrid),
43  hostLevelIterator_(identityGrid->hostgrid_->levelGridView(level).template end<codim,pitype>())
44  {}
45 
46 
48  void increment() {
49  ++hostLevelIterator_;
50  }
51 
53  Entity dereference() const {
54  return Entity{{identityGrid_,*hostLevelIterator_}};
55  }
56 
58  bool equals(const IdentityGridLevelIterator& i) const {
59  return hostLevelIterator_ == i.hostLevelIterator_;
60  }
61 
62  private:
63  const GridImp* identityGrid_;
64 
65  HostGridLevelIterator hostLevelIterator_;
66  };
67 
68 
69 } // namespace Dune
70 
71 #endif
Definition: identitygridleveliterator.hh:25
Grid< dim, dimworld, ct, GridFamily >::LevelGridView levelGridView(const Grid< dim, dimworld, ct, GridFamily > &grid, int level)
level grid view for the given grid and level.
Definition: common/grid.hh:857
Iterator over all entities of a given codimension and level of a grid.
Definition: identitygridentity.hh:21
bool equals(const IdentityGridLevelIterator &i) const
equality
Definition: identitygridleveliterator.hh:58
Include standard header files.
Definition: agrid.hh:59
IdentityGridLevelIterator(const GridImp *identityGrid, int level, bool endDummy)
Constructor which create the end iterator.
Definition: identitygridleveliterator.hh:41
IdentityGridLevelIterator(const GridImp *identityGrid, int level)
Constructor.
Definition: identitygridleveliterator.hh:30
void increment()
prefix increment
Definition: identitygridleveliterator.hh:48
Entity dereference() const
dereferencing
Definition: identitygridleveliterator.hh:53
GridImp::template Codim< codim >::Entity Entity
Definition: identitygridleveliterator.hh:27