dune-grid-dev-howto  2.2.1
identitygridleveliterator.hh
Go to the documentation of this file.
1 #ifndef DUNE_IDENTITYGRIDLEVELITERATOR_HH
2 #define DUNE_IDENTITYGRIDLEVELITERATOR_HH
3 
5 
10 namespace Dune {
11 
12 
13 
14 
15 //**********************************************************************
16 //
17 // --IdentityGridLevelIterator
21 template<int codim, PartitionIteratorType pitype, class GridImp>
23  public Dune::IdentityGridEntityPointer <codim,GridImp>
24 {
25  public:
26 
28  explicit IdentityGridLevelIterator(const GridImp* identityGrid, int level)
29  : IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template lbegin<codim>(level)),
30  hostGridLevelIterator_(identityGrid->hostgrid_->template lbegin<codim>(level))
31  {
32  this->virtualEntity_.setToTarget(hostGridLevelIterator_);
33  }
34 
35 
41  explicit IdentityGridLevelIterator(const GridImp* identityGrid, int level, bool endDummy)
42  :
43  IdentityGridEntityPointer<codim,GridImp>(identityGrid, identityGrid->hostgrid_->template lend<codim>(level)),
44  hostGridLevelIterator_(identityGrid->hostgrid_->template lend<codim>(level))
45  {
46  }
47 
48 
50  void increment() {
51  ++hostGridLevelIterator_;
52  this->virtualEntity_.setToTarget(hostGridLevelIterator_);
53  }
54 
55 
56  private:
57 
58  // LevelIterator to the equivalent entity in the host grid
59  typedef typename GridImp::HostGridType::Traits::template Codim<codim>::LevelIterator HostGridLevelIterator;
60 
62  HostGridLevelIterator hostGridLevelIterator_;
63 
64 };
65 
66 
67 } // namespace Dune
68 
69 #endif