1#ifndef DUNE_ALU3DITERATORS_HH
2#define DUNE_ALU3DITERATORS_HH
5#include <dune/grid/common/grid.hh>
18 template<
int codim,
class Comm >
22 typedef typename AccessIterator< HElementType >::Handle
IteratorType;
28 template<
int codim,
class Comm >
31 template<
class Comm >
37 template<
class Comm >
43 template<
class Comm >
49 template<
class Comm >
59 template<
class val_t >
61 :
public IteratorSTI< val_t >
69 virtual int done ()
const = 0;
70 virtual val_t &
item ()
const = 0;
77 template<
int codim,
class Comm >
82 typedef std::pair< ElType *, HBndSegType * >
val_t;
85 template<
int codim, PartitionIteratorType pitype,
class Comm >
89 template< PartitionIteratorType pitype,
class Comm >
95 typedef ALU3DSPACE LevelIterator< ElType > IteratorType;
105 template<
class Gr
idImp >
107 : it_( grid.myGrid(), level ),
108 elem_( (ElType *)0, (HBndSegType *)0 )
113 : it_( org.it_ ), elem_(org.elem_)
117 int size () {
return it_->size(); }
120 int done ()
const {
return it_->done(); }
124 elem_.first = & it_->item();
130 template< PartitionIteratorType pitype,
class Comm >
136 typedef ALU3DSPACE any_has_level_periodic< ElType > StopRule_t;
137 typedef GridIterator< ElType, StopRule_t > IteratorType;
148 template<
class Gr
idImp >
150 : it_( grid.myGrid(), StopRule_t(level) ),
151 elem_( (ElType *)0, (HBndSegType*)0 )
156 : it_( org.it_ ), elem_(org.elem_)
159 int size () {
return it_->size(); }
162 int done ()
const {
return it_->done(); }
166 elem_.first = & it_->item();
174 template< PartitionIteratorType pitype,
class Comm >
195 template<
class Gr
idImp >
197 : vxList_ ( grid.getVertexList( level ) ),
198 elem_( (ElType *)0, (HBndSegType *)0 ),
200 size_( vxList_.size() )
207 : vxList_(org.vxList_),
228 int done ()
const {
return (count_ >= size_) ? 1 : 0; }
237 val_t & getItem ()
const
246 template<
int codim, PartitionIteratorType pitype,
class Comm >
255 template< PartitionIteratorType pitype,
class Comm >
261 typedef LeafIterator< ElType > IteratorType;
274 template<
class Gr
idImp >
276 : it_( grid.myGrid() ),
277 elem_( (ElType *)0, (HBndSegType *)0 )
282 : it_( org.it_ ), elem_(org.elem_)
285 int size () {
return it_->size(); }
288 int done ()
const {
return it_->done(); }
292 elem_.first = & it_->item();
297 template<
class ElType, PartitionIteratorType pitype,
class Comm >
306 template<
class ElType >
312 template< PartitionIteratorType pitype,
class Comm >
319 typedef GridIterator< ElType, StopRule_t > IteratorType;
330 template<
class Gr
idImp >
332 : it_( grid.myGrid(), StopRule_t() ),
333 elem_( (ElType *)0, (HBndSegType *)0 )
338 : it_( org.it_ ), elem_(org.elem_){}
344 int size () {
return it_->size(); }
347 int done ()
const {
return it_->done(); }
351 elem_.first = & it_->item();
357 template< PartitionIteratorType pitype,
class Comm >
364 typedef GridIterator< ElType, StopRule_t > IteratorType;
377 template<
class Gr
idImp >
379 : it_( grid.myGrid(), StopRule_t() ),
380 elem_( (ElType *)0, (HBndSegType *)0 )
385 : it_( org.it_ ), elem_(org.elem_) {}
387 int size () {
return it_->size(); }
390 int done ()
const {
return it_->done(); }
394 elem_.first = & it_->item();
401 template< PartitionIteratorType pitype,
class Comm >
412 typedef typename LeafVertexListType :: IteratorType ListIteratorType;
428 template<
class Gr
idImp >
430 : vxList_( grid.getLeafVertexList() ),
431 elem_( (ElType *)0, (HBndSegType *)0 ),
433 size_( vxList_.size() ),
441 : vxList_(org.vxList_)
443 , count_(org.count_) , size_(org.size_)
464 int done ()
const {
return (count_ >= size_) ? 1 : 0; }
472 val_t & getItem ()
const
481 if( done() ) return ;
482 if( getItem().first == 0)
490 if(! rule_( elem_.first ) )
499 template<
int codim >
507 typedef IteratorSTI< ElType > IteratorType;
508 IteratorType * inner_;
509 IteratorType * outer_;
515 std::pair < IteratorSTI< ElType > * , IteratorSTI< ElType > * >
516 p = gitter.leafBorderIteratorTT( (ElType *) 0 , link );
525 std::pair < IteratorSTI< ElType > * , IteratorSTI< ElType > * >
526 p = gitter.levelBorderIteratorTT( (ElType *) 0 , link , level );
533 : inner_(org.inner_->clone())
534 , outer_(org.outer_->clone())
590 const bool ghostCellsEnabled_ ;
594 template<
class Gr
idImp >
602 ghostCellsEnabled_( grid.ghostCellsEnabled() )
612 , ghostCellsEnabled_( org.ghostCellsEnabled_ )
676 std::pair < ElementPllXIF_t *, int > p = it.item ().accessPllX ().accessOuterPllX () ;
678 p.first->getAttachedElement(elems);
694 std::pair < ElementPllXIF_t *, int > p = out.item ().accessPllX ().accessOuterPllX () ;
696 p.first->getAttachedElement(elems);
718 if ( ! pll->isLeafEntity() )
next();
741 if( !
it_->done() )
it_->next();
752 if( ghostCellsEnabled_ )
772 std::pair < ElementPllXIF_t *, int > p =
it_->item ().accessPllX ().accessOuterPllX () ;
773 std::pair < HElementType * , HBndSegType * > p2;
774 p.first->getAttachedElement(p2);
776 elem_.second = p2.second;
799 if(! this->it_->done())
801 val_t & el = this->item();
807 if ( ! pll->isLeafEntity() ) this->next();
813 template <
class Gr
idImp>
833 return new IteratorType ( this->gitter_, this->link_ , level_ );
841 if(! this->it_->done())
843 val_t & el = this->item();
853 if( pll.ghostLevel() != level_ ) this->next();
860 template <
class Gr
idImp>
863 , level_(level) , mxl_(grid.maxLevel()){}
874 template<
class Gr
idImp,
int cd >
877 template<
class Gr
idImp >
881 enum { elType = GridImp::elementType };
883 typedef typename GridImp::MPICommunicatorType
Comm;
900 template<
class Gr
idImp >
904 enum { elType = GridImp::elementType };
906 typedef typename GridImp::MPICommunicatorType
Comm;
923 template<
class Gr
idImp >
927 enum { elType = GridImp::elementType };
929 typedef typename GridImp::MPICommunicatorType
Comm;
948 template<
int codim >
960 template< Dune::ALU3dGr
idElementType elType,
int cd >
963 template< Dune::ALU3dGr
idElementType elType >
964 struct SelectVector< elType, 1 >
968 static const std::vector< int > &getNotOnItemVector (
int face )
970 return GEOElementType::facesNotOnFace( face );
974 template< Dune::ALU3dGr
idElementType elType >
975 struct SelectVector< elType, 2 >
978 static const std::vector< int > &getNotOnItemVector(
int face )
980 return GEOElementType::edgesNotOnFace( face );
984 template< Dune::ALU3dGr
idElementType elType >
985 struct SelectVector< elType, 3 >
988 static const std::vector< int > &getNotOnItemVector (
int face )
990 return GEOElementType::verticesNotOnFace( face );
997 typedef Dune :: ALU3dGridItemListType GhostItemListType;
998 GhostItemListType &ghList_;
999 typedef typename GhostItemListType :: IteratorType IteratorType;
1002 mutable val_t elem_;
1003 mutable size_t count_;
1004 const bool ghostCellsEnabled_ ;
1007 template<
class GhostElementIteratorImp,
class Gr
idImp >
1010 : ghList_( ghList ),
1013 ghostCellsEnabled_( grid.ghostCellsEnabled() )
1015 if( ! ghostCellsEnabled_ )
1017 count_ = ghList_.getItemList().size() ;
1021 if( ! ghList_.up2Date() )
1023 GhostElementIteratorImp ghostIter(grid,level,nlinks);
1029 : ghList_( org.ghList_ )
1031 , count_(org.count_)
1032 , ghostCellsEnabled_(org.ghostCellsEnabled_)
1035 int size () {
return ghList_.getItemList().size(); }
1036 void first() {
if( ghostCellsEnabled_ ) count_ = 0; }
1038 int done ()
const {
return (count_ >= ghList_.getItemList().size() ? 1 : 0); }
1042 void *
item = ghList_.getItemList()[count_];
1049 template <
class Gr
idImp,
class GhostElementIteratorImp>
1053 for( ghostIter.first(); !ghostIter.done(); ghostIter.next() )
1058 const int numItems = SelectVector< GridImp::elementType, codim >::getNotOnItemVector(0).size();
1059 const int maxSize = numItems * count;
1063 std::map< int , int > visited;
1065 const std::map<int,int>::iterator visitedEnd = visited.end();
1066 for( ghostIter.first(); !ghostIter.done(); ghostIter.next() )
1069 const std::vector<int> & notOnFace = SelectVector< GridImp::elementType, codim >::
1070 getNotOnItemVector(ghPair.second);
1071 for(
int i=0; i<numItems; ++i)
1074 int idx =
item->getIndex();
1076 if( GridImp::dimension == 2 && codim == 3 && !(
item->is2d()) )
continue;
1077 if( visited.find(idx) == visitedEnd )
1097 template <
class Gr
idImp>
1114 template <
class Gr
idImp>
1131 template <
class Gr
idImp>
1148 template <
class Gr
idImp>
1165 template <
class Gr
idImp>
1182 template <
class Gr
idImp>
1202 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1207 template <
class Gr
idImp>
1209 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1210 GhostIteratorType ( grid, level, nlinks ) )
1215 : iter_ (org.iter_) {}
1217 int size () {
return iter_.size(); }
1220 int done ()
const {
return iter_.done(); }
1236 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1241 template <
class Gr
idImp>
1243 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1244 GhostIteratorType ( grid, level, nlinks ) )
1249 : iter_ (org.iter_) {}
1251 int size () {
return iter_.size(); }
1254 int done ()
const {
return iter_.done(); }
1270 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1275 template <
class Gr
idImp>
1277 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1278 GhostIteratorType ( grid, level, nlinks ) )
1283 : iter_ (org.iter_) {}
1285 int size () {
return iter_.size(); }
1288 int done ()
const {
return iter_.done(); }
1304 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1309 template <
class Gr
idImp>
1311 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1312 GhostIteratorType ( grid, level, nlinks ) )
1317 : iter_ (org.iter_) {}
1319 int size () {
return iter_.size(); }
1322 int done ()
const {
return iter_.done(); }
1337 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1342 template <
class Gr
idImp>
1344 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1350 : iter_(org.iter_) {}
1352 int size () {
return iter_.size(); }
1355 int done ()
const {
return iter_.done(); }
1361 template< PartitionIteratorType pitype,
class Comm >
1373 mutable val_t elem_;
1384 template<
class Gr
idImp >
1388 edgeList_( grid.getEdgeList( level ) ),
1392 updateEdgeList(grid,level,nlinks);
1398 , level_(org.level_)
1399 , edgeList_( org.edgeList_ )
1400 , count_(org.count_)
1415 int done ()
const {
return ((count_ >= edgeList_.
size()) ? 1: 0); }
1427 template <
class Gr
idImp>
1428 void updateEdgeList(
const GridImp & grid,
int level,
int nlinks)
1431 typedef typename ElementLevelIterator :: val_t el_val_t;
1432 ElementLevelIterator iter(grid,level,nlinks);
1435 std::map< int, int > visited;
1437 for( iter.first(); ! iter.done(); iter.next() )
1442 GEOElementType *elem = 0;
1443 el_val_t & item = iter.item();
1446 elem =
static_cast< GEOElementType *
> (item.first);
1447 else if( item.second )
1448 elem =
static_cast< GEOElementType *
> (item.second->getGhost().first);
1451 for(
int e=0; e<numEdges; ++e)
1453 ElType * edge = elem->myhedge(e);
1454 if( edge->isGhost() )
continue;
1456 int idx = edge->getIndex();
1457 if( visited.find(idx) == visited.end() )
1459 edgeList_.
getItemList().push_back( (
void *) edge );
1480 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1485 template <
class Gr
idImp>
1487 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1488 GhostIteratorType ( grid, level, nlinks ) )
1493 : iter_ (org.iter_) {}
1495 int size () {
return iter_.size(); }
1498 int done ()
const {
return iter_.done(); }
1514 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1519 template <
class Gr
idImp>
1521 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1522 GhostIteratorType ( grid, level, nlinks ) )
1527 : iter_ (org.iter_) {}
1529 int size () {
return iter_.size(); }
1532 int done ()
const {
return iter_.done(); }
1548 typedef AlignIterator< InteriorIteratorType, GhostIteratorType, val_t >
IteratorType;
1553 template <
class Gr
idImp>
1555 : iter_ ( InteriorIteratorType ( grid, level, nlinks ) ,
1556 GhostIteratorType ( grid, level, nlinks ) )
1561 : iter_ (org.iter_) {}
1563 int size () {
return iter_.size(); }
1566 int done ()
const {
return iter_.done(); }
#define alugrid_assert(EX)
Definition alugrid_assert.hh:20
#define ALU3DSPACE
Definition alu3dinclude.hh:24
Definition alu3dinclude.hh:50
Dune::PartitionIteratorType PartitionIteratorType
Definition alu3diterators.hh:74
std::pair< ALUHElementType< 0, Dune::ALUGridMPIComm >::ElementType *, Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::HBndSegType * > LeafValType
Definition alu3diterators.hh:548
Definition alu3dinclude.hh:80
Definition alu3dinclude.hh:92
Definition alu3dinclude.hh:259
Definition alu3dinclude.hh:345
VertexListType & getItemList()
Definition alu3dinclude.hh:367
bool up2Date() const
Definition alu3dinclude.hh:357
VertexListType::iterator IteratorType
Definition alu3dinclude.hh:349
Definition alu3dinclude.hh:381
std::pair< VertexType *, int > ItemType
Definition alu3dinclude.hh:384
VertexListType & getItemList()
Definition alu3dinclude.hh:404
VertexListType::iterator IteratorType
Definition alu3dinclude.hh:386
bool up2Date() const
Definition alu3dinclude.hh:394
Definition alu3dinclude.hh:426
bool up2Date() const
Definition alu3dinclude.hh:436
void markAsUp2Date()
Definition alu3dinclude.hh:439
size_t size() const
Definition alu3dinclude.hh:434
ItemListType & getItemList()
Definition alu3dinclude.hh:444
Definition alu3diterators.hh:20
AccessIterator< HElementType >::Handle IteratorType
Definition alu3diterators.hh:22
Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType
Definition alu3diterators.hh:21
Definition alu3diterators.hh:29
Dune::ALU3dBasicImplTraits< Comm >::HElementType ElementType
Definition alu3diterators.hh:34
Dune::ALU3dBasicImplTraits< Comm >::HFaceType ElementType
Definition alu3diterators.hh:40
Dune::ALU3dBasicImplTraits< Comm >::HEdgeType ElementType
Definition alu3diterators.hh:46
Dune::ALU3dBasicImplTraits< Comm >::VertexType ElementType
Definition alu3diterators.hh:52
Definition alu3diterators.hh:62
virtual int done() const =0
virtual val_t & item() const =0
virtual IteratorSTI< val_t > * clone() const
Definition alu3diterators.hh:71
virtual ~IteratorWrapperInterface()
Definition alu3diterators.hh:64
Definition alu3diterators.hh:79
std::pair< ElType *, HBndSegType * > val_t
Definition alu3diterators.hh:82
ALUHElementType< codim, Comm >::ElementType ElType
Definition alu3diterators.hh:80
Dune::ALU3dBasicImplTraits< Comm >::HBndSegType HBndSegType
Definition alu3diterators.hh:81
Definition alu3diterators.hh:86
val_t elem_
Definition alu3diterators.hh:102
int size()
Definition alu3diterators.hh:117
IteratorElType< 0, Comm >::val_t val_t
Definition alu3diterators.hh:101
int done() const
Definition alu3diterators.hh:120
void next()
Definition alu3diterators.hh:118
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:106
val_t & item() const
Definition alu3diterators.hh:121
void first()
Definition alu3diterators.hh:119
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:112
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:149
int done() const
Definition alu3diterators.hh:162
int size()
Definition alu3diterators.hh:159
void first()
Definition alu3diterators.hh:161
val_t elem_
Definition alu3diterators.hh:145
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:155
IteratorElType< 1, Comm >::val_t val_t
Definition alu3diterators.hh:144
val_t & item() const
Definition alu3diterators.hh:163
void next()
Definition alu3diterators.hh:160
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:196
int done() const
Definition alu3diterators.hh:228
int count_
Definition alu3diterators.hh:190
val_t & item() const
Definition alu3diterators.hh:229
void next()
if level of item is larger then walk level, go next
Definition alu3diterators.hh:218
VertexListType & vxList_
Definition alu3diterators.hh:187
IteratorElType< 3, Comm >::val_t val_t
Definition alu3diterators.hh:184
const int size_
Definition alu3diterators.hh:191
int size()
Definition alu3diterators.hh:215
void first()
Definition alu3diterators.hh:224
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:206
val_t elem_
Definition alu3diterators.hh:188
Definition alu3diterators.hh:247
void next()
Definition alu3diterators.hh:286
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int links)
Definition alu3diterators.hh:275
int size()
Definition alu3diterators.hh:285
val_t & item() const
Definition alu3diterators.hh:289
void first()
Definition alu3diterators.hh:287
int done() const
Definition alu3diterators.hh:288
IteratorElType< 0, Comm >::val_t val_t
Definition alu3diterators.hh:267
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:281
Definition alu3diterators.hh:299
is_leaf_entity< ElType > StopRule_t
Definition alu3diterators.hh:300
is_interior_leaf_entity< ElType > StopRule_t
Definition alu3diterators.hh:309
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:337
IteratorElType< 1, Comm >::val_t val_t
Definition alu3diterators.hh:325
int done() const
Definition alu3diterators.hh:347
int size()
Definition alu3diterators.hh:344
void next()
Definition alu3diterators.hh:345
void first()
Definition alu3diterators.hh:346
~ALU3dGridLeafIteratorWrapper()
Definition alu3diterators.hh:340
val_t & item() const
Definition alu3diterators.hh:348
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int links)
Definition alu3diterators.hh:331
val_t & item() const
Definition alu3diterators.hh:391
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:384
int done() const
Definition alu3diterators.hh:390
int size()
Definition alu3diterators.hh:387
void next()
Definition alu3diterators.hh:388
void first()
Definition alu3diterators.hh:389
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int links)
Definition alu3diterators.hh:378
IteratorElType< 2, Comm >::val_t val_t
Definition alu3diterators.hh:367
const int size_
Definition alu3diterators.hh:422
val_t & item() const
Definition alu3diterators.hh:465
int done() const
Definition alu3diterators.hh:464
val_t elem_
Definition alu3diterators.hh:419
void first()
Definition alu3diterators.hh:459
int size()
Definition alu3diterators.hh:449
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:440
const StopRule_t rule_
Definition alu3diterators.hh:424
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:429
void next()
if level of item is larger then walk level, go next
Definition alu3diterators.hh:452
LeafVertexListType & vxList_
Definition alu3diterators.hh:418
IteratorElType< 3, Comm >::val_t val_t
Definition alu3diterators.hh:415
int count_
Definition alu3diterators.hh:421
Definition alu3diterators.hh:501
IteratorType & outer()
Definition alu3diterators.hh:544
LeafLevelIteratorTTProxy(GitterImplType &gitter, int link)
Definition alu3diterators.hh:513
IteratorType & inner()
Definition alu3diterators.hh:543
LeafLevelIteratorTTProxy(GitterImplType &gitter, int link, int level)
Definition alu3diterators.hh:523
~LeafLevelIteratorTTProxy()
Definition alu3diterators.hh:537
LeafLevelIteratorTTProxy(const LeafLevelIteratorTTProxy &org)
Definition alu3diterators.hh:532
Definition alu3diterators.hh:557
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::HBndSegType HBndSegType
Definition alu3diterators.hh:562
IteratorSTI< ElType > InnerIteratorType
Definition alu3diterators.hh:574
void removeIterators()
Definition alu3diterators.hh:637
virtual void checkLeafEntity()
Definition alu3diterators.hh:706
val_t & item() const
Definition alu3diterators.hh:769
ElementPllXIF_t ItemType
Definition alu3diterators.hh:592
void next()
Definition alu3diterators.hh:736
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::HElementType HElementType
Definition alu3diterators.hh:561
LeafValType val_t
Definition alu3diterators.hh:585
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::GitterImplType GitterImplType
Definition alu3diterators.hh:559
virtual IteratorType * newIterator()
Definition alu3diterators.hh:632
GitterImplType & gitter_
Definition alu3diterators.hh:565
ALU3dGridGhostIterator(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:595
int link_
Definition alu3diterators.hh:581
~ALU3dGridGhostIterator()
Definition alu3diterators.hh:626
void first()
Definition alu3diterators.hh:750
ALU3dGridGhostIterator(const ALU3dGridGhostIterator &org)
Definition alu3diterators.hh:605
bool usingInner_
Definition alu3diterators.hh:583
ALUHElementType< 1, Dune::ALUGridMPIComm >::ElementType ElType
Definition alu3diterators.hh:568
int done() const
Definition alu3diterators.hh:763
const int nl_
Definition alu3diterators.hh:578
InnerIteratorType * it_
Definition alu3diterators.hh:575
int size()
Definition alu3diterators.hh:724
IteratorType * iterTT_
Definition alu3diterators.hh:572
LeafLevelIteratorTTProxy< 1 > IteratorType
Definition alu3diterators.hh:570
void checkInnerOuter()
Definition alu3diterators.hh:664
void createIterator()
Definition alu3diterators.hh:645
Definition alu3diterators.hh:787
IteratorType * newIterator()
Definition alu3diterators.hh:790
void checkLeafEntity()
Definition alu3diterators.hh:795
LeafLevelIteratorTTProxy< 1 > IteratorType
Definition alu3diterators.hh:789
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:817
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:814
Definition alu3diterators.hh:825
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:865
LeafLevelIteratorTTProxy< 1 > IteratorType
Definition alu3diterators.hh:829
void checkLeafEntity()
Definition alu3diterators.hh:837
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:861
IteratorType * newIterator()
Definition alu3diterators.hh:830
Definition alu3diterators.hh:875
static ItemType * getItem(HElementType &el, int i)
Definition alu3diterators.hh:889
Dune::ALU3dImplTraits< GridImp::elementType, Comm >::GEOElementType GEOElementType
Definition alu3diterators.hh:886
Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType
Definition alu3diterators.hh:885
static int numItems()
Definition alu3diterators.hh:894
GridImp::MPICommunicatorType Comm
Definition alu3diterators.hh:883
IteratorElType< 1, Comm >::ElType ItemType
Definition alu3diterators.hh:887
static int numItems()
Definition alu3diterators.hh:917
IteratorElType< 2, Comm >::ElType ItemType
Definition alu3diterators.hh:910
Dune::ALU3dImplTraits< GridImp::elementType, Comm >::GEOElementType GEOElementType
Definition alu3diterators.hh:909
Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType
Definition alu3diterators.hh:908
GridImp::MPICommunicatorType Comm
Definition alu3diterators.hh:906
static ItemType * getItem(HElementType &el, int i)
Definition alu3diterators.hh:912
Dune::ALU3dBasicImplTraits< Comm >::HElementType HElementType
Definition alu3diterators.hh:931
IteratorElType< 3, Comm >::ElType ItemType
Definition alu3diterators.hh:933
Dune::ALU3dImplTraits< GridImp::elementType, Comm >::GEOElementType GEOElementType
Definition alu3diterators.hh:932
GridImp::MPICommunicatorType Comm
Definition alu3diterators.hh:929
static ItemType * getItem(HElementType &el, int i)
Definition alu3diterators.hh:935
static int numItems()
Definition alu3diterators.hh:940
Ghost Iterator.
Definition alu3diterators.hh:951
void next()
Definition alu3diterators.hh:1037
int size()
Definition alu3diterators.hh:1035
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::HElementType HElementType
Definition alu3diterators.hh:953
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:957
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::GhostPairType GhostPairType
Definition alu3diterators.hh:955
ALU3dGridGhostIteratorHigherCodim(GhostElementIteratorImp *, const GridImp &grid, int level, const int nlinks, GhostItemListType &ghList)
Definition alu3diterators.hh:1008
void first()
Definition alu3diterators.hh:1036
int done() const
Definition alu3diterators.hh:1038
Dune::ALU3dBasicImplTraits< Dune::ALUGridMPIComm >::HBndSegType HBndSegType
Definition alu3diterators.hh:954
ALU3dGridGhostIteratorHigherCodim(const ALU3dGridGhostIteratorHigherCodim &org)
Definition alu3diterators.hh:1028
void updateGhostList(const GridImp &grid, GhostElementIteratorImp &ghostIter, GhostItemListType &ghList)
Definition alu3diterators.hh:1050
val_t & item() const
Definition alu3diterators.hh:1039
IteratorElType< codim, Dune::ALUGridMPIComm >::ElType ElType
Definition alu3diterators.hh:956
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1098
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1101
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1115
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1118
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1132
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1135
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1149
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1152
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1166
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1169
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1183
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1186
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1208
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1202
void next()
Definition alu3diterators.hh:1218
void first()
Definition alu3diterators.hh:1219
int size()
Definition alu3diterators.hh:1217
int done() const
Definition alu3diterators.hh:1220
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1200
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1214
val_t & item() const
Definition alu3diterators.hh:1221
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1242
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1234
int size()
Definition alu3diterators.hh:1251
val_t & item() const
Definition alu3diterators.hh:1255
int done() const
Definition alu3diterators.hh:1254
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1236
void first()
Definition alu3diterators.hh:1253
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1248
void next()
Definition alu3diterators.hh:1252
void next()
Definition alu3diterators.hh:1286
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1270
int size()
Definition alu3diterators.hh:1285
int done() const
Definition alu3diterators.hh:1288
void first()
Definition alu3diterators.hh:1287
val_t & item() const
Definition alu3diterators.hh:1289
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1268
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1276
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1282
ALU3dGridLeafIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1310
val_t & item() const
Definition alu3diterators.hh:1323
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1304
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1302
int done() const
Definition alu3diterators.hh:1322
ALU3dGridLeafIteratorWrapper(const ALU3dGridLeafIteratorWrapper &org)
Definition alu3diterators.hh:1316
void next()
Definition alu3diterators.hh:1320
void first()
Definition alu3diterators.hh:1321
int size()
Definition alu3diterators.hh:1319
void next()
Definition alu3diterators.hh:1353
int size()
Definition alu3diterators.hh:1352
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1343
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1337
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1349
LeafValType val_t
Definition alu3diterators.hh:1335
val_t & item() const
Definition alu3diterators.hh:1356
int done() const
Definition alu3diterators.hh:1355
void first()
Definition alu3diterators.hh:1354
int done() const
Definition alu3diterators.hh:1415
Dune::ALU3dBasicImplTraits< Comm >::HBndSegType HBndSegType
Definition alu3diterators.hh:1367
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1396
Dune::ALU3dBasicImplTraits< Comm >::GEOEdgeType GEOEdgeType
Definition alu3diterators.hh:1368
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1385
void next()
Definition alu3diterators.hh:1405
IteratorElType< 2, Comm >::val_t val_t
Definition alu3diterators.hh:1370
int size()
Definition alu3diterators.hh:1404
val_t & item() const
Definition alu3diterators.hh:1417
ALUHElementType< 2, Comm >::ElementType ElType
Definition alu3diterators.hh:1366
void first()
Definition alu3diterators.hh:1410
int done() const
Definition alu3diterators.hh:1498
int size()
Definition alu3diterators.hh:1495
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1480
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1492
void first()
Definition alu3diterators.hh:1497
val_t & item() const
Definition alu3diterators.hh:1499
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1486
void next()
Definition alu3diterators.hh:1496
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1478
int size()
Definition alu3diterators.hh:1529
void first()
Definition alu3diterators.hh:1531
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1520
void next()
Definition alu3diterators.hh:1530
val_t & item() const
Definition alu3diterators.hh:1533
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1512
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1514
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1526
int done() const
Definition alu3diterators.hh:1532
ALU3dGridLevelIteratorWrapper(const ALU3dGridLevelIteratorWrapper &org)
Definition alu3diterators.hh:1560
val_t & item() const
Definition alu3diterators.hh:1567
void next()
Definition alu3diterators.hh:1564
void first()
Definition alu3diterators.hh:1565
IteratorElType< codim, Dune::ALUGridMPIComm >::val_t val_t
Definition alu3diterators.hh:1546
ALU3dGridLevelIteratorWrapper(const GridImp &grid, int level, const int nlinks)
Definition alu3diterators.hh:1554
int done() const
Definition alu3diterators.hh:1566
int size()
Definition alu3diterators.hh:1563
AlignIterator< InteriorIteratorType, GhostIteratorType, val_t > IteratorType
Definition alu3diterators.hh:1548
Definition topology.hh:15
type of class for specialization of parallel ALUGrid (MPI_Comm as communicator)
Definition declaration.hh:39