1 #ifndef DUNE_FOAMGRID_HIERARCHIC_ITERATOR_HH
2 #define DUNE_FOAMGRID_HIERARCHIC_ITERATOR_HH
22 template<
class Gr
idImp>
25 enum {dimworld = GridImp::dimensionworld};
26 enum {dimgrid = GridImp::dimension};
33 using Entity =
typename GridImp::template Codim<0>::Entity;
42 virtualEntity_.impl().setToTarget(
nullptr);
48 if (elemStack.empty())
55 if (old_target->level_ < maxlevel_) {
58 if (!old_target->isLeaf())
59 for (
size_t i=0; i<old_target->nSons(); i++)
60 elemStack.push(old_target->sons_[i]);
63 virtualEntity_.impl().setToTarget(elemStack.empty() ?
64 nullptr : elemStack.top());
72 return virtualEntity_ == other.virtualEntity_;
83 std::stack<StackEntry> elemStack;
The implementation of entities in a FoamGrid.
Definition: foamgridentity.hh:54
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:71
void increment()
Definition: foamgridhierarchiciterator.hh:46
@ codimension
Definition: foamgridhierarchiciterator.hh:36
typename GridImp::template Codim< 0 >::Entity Entity
Definition: foamgridhierarchiciterator.hh:33
FoamGridHierarchicIterator(int maxlevel)
Constructor.
Definition: foamgridhierarchiciterator.hh:39
const Entity & dereference() const
dereferencing
Definition: foamgridhierarchiciterator.hh:68
The actual entity implementation.
Definition: foamgridvertex.hh:47