1#ifndef DUNE_FOAMGRID_HIERARCHIC_ITERATOR_HH
2#define DUNE_FOAMGRID_HIERARCHIC_ITERATOR_HH
22template<
class Gr
idImp>
25 static constexpr int dimworld = GridImp::dimensionworld;
26 static constexpr int dimgrid = GridImp::dimension;
29 dimgrid, dimgrid, dimworld,
typename GridImp::ctype
33 using Entity =
typename GridImp::template Codim<0>::Entity;
43 stackChildren_(target);
59 if (elemStack_.empty())
62 auto target = elemStack_.top();
66 stackChildren_(target);
77 {
return virtualEntity_ == other.virtualEntity_; }
80 void stackChildren_(EntityImpPointer target)
83 if (target->level() < maxLevel_ && !target->isLeaf())
84 for (std::size_t i = 0; i < target->nSons(); i++)
85 elemStack_.push(target->sons_[i]);
90 virtualEntity_.impl().setToTarget(
91 elemStack_.empty() ?
nullptr : elemStack_.top()
102 std::stack<EntityImpPointer> elemStack_;
Iterator over the descendants of an entity.Mesh entities of codimension 0 ("elements") allow to visit...
Definition: foamgridhierarchiciterator.hh:24
bool equals(const FoamGridHierarchicIterator< GridImp > &other) const
equality
Definition: foamgridhierarchiciterator.hh:76
void increment()
Definition: foamgridhierarchiciterator.hh:57
@ codimension
Definition: foamgridhierarchiciterator.hh:36
FoamGridHierarchicIterator(int maxLevel)
Constructor without valid element (end iterator)
Definition: foamgridhierarchiciterator.hh:50
const Entity & dereference() const
dereferencing
Definition: foamgridhierarchiciterator.hh:73
typename GridImp::template Codim< 0 >::Entity Entity
Definition: foamgridhierarchiciterator.hh:33
FoamGridHierarchicIterator(EntityImpPointer target, int maxLevel)
Constructor with element impl (begin iterator)
Definition: foamgridhierarchiciterator.hh:39
The actual entity implementation.
Definition: foamgridvertex.hh:47