Dune Core Modules (2.6.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 
6 #include <dune/grid/common/gridenums.hh>
7 
12 namespace Dune {
13 
17  template<int codim, PartitionIteratorType pitype, class GridImp>
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
Iterator over all entities of a given codimension and level of a grid.
Definition: identitygridleveliterator.hh:19
void increment()
prefix increment
Definition: identitygridleveliterator.hh:48
IdentityGridLevelIterator(const GridImp *identityGrid, int level)
Constructor.
Definition: identitygridleveliterator.hh:30
IdentityGridLevelIterator(const GridImp *identityGrid, int level, bool endDummy)
Constructor which create the end iterator.
Definition: identitygridleveliterator.hh:41
bool equals(const IdentityGridLevelIterator &i) const
equality
Definition: identitygridleveliterator.hh:58
Entity dereference() const
dereferencing
Definition: identitygridleveliterator.hh:53
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: grid.hh:792
Dune namespace.
Definition: alignedallocator.hh:10
Static tag representing a codimension.
Definition: dimension.hh:22
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 1, 22:29, 2024)