dune-alugrid 3.0.0
entity.hh
Go to the documentation of this file.
1#ifndef DUNE_ALU3DGRIDENTITY_HH
2#define DUNE_ALU3DGRIDENTITY_HH
3
4// System includes
5#include <type_traits>
6
7// Dune includes
8#include <dune/grid/common/entity.hh>
11
12// Local includes
13#include "alu3dinclude.hh"
14#include "iterator.hh"
15#include "entityseed.hh"
16
17namespace Dune
18{
19
20 // Forward declarations
21 template<int cd, int dim, class GridImp>
22 class ALU3dGridEntity;
23 template<int cd, PartitionIteratorType pitype, class GridImp >
24 class ALU3dGridLevelIterator;
25 template<int cd, class GridImp >
26 class ALU3dGridEntityPointer;
27 template<int mydim, int coorddim, class GridImp>
28 class ALU3dGridGeometry;
29 template<class GridImp>
30 class ALU3dGridHierarchicIterator;
31 template<class GridImp>
32 class ALU3dGridIntersectionIterator;
33 template<int codim, PartitionIteratorType, class GridImp>
34 class ALU3dGridLeafIterator;
35 template<int dim, int dimworld, ALU3dGridElementType, class >
36 class ALU3dGrid;
37
44template<int cd, int dim, class GridImp>
46public EntityDefaultImplementation <cd,dim,GridImp,ALU3dGridEntity>
47{
48 // default just returns level
49 template <class GridType, int cdim>
50 struct GetLevel
51 {
52 template <class ItemType>
53 static int getLevel(const GridType & grid, const ItemType & item )
54 {
55 return item.level();
56 }
57 };
58
59 // for leaf vertices the level is somewhat difficult to obtain, because
60 // this the maximum of levels of elements that have this vertex as sub
61 // entity
62 template <class GridType>
63 struct GetLevel<GridType,dim>
64 {
65 template <class ItemType>
66 static int getLevel(const GridType & grid, const ItemType & item)
67 {
68 return (item.isLeafEntity()) ? grid.getLevelOfLeafVertex(item) : item.level();
69 }
70 };
71
72 enum { dimworld = GridImp::dimensionworld };
73
74 typedef typename GridImp::MPICommunicatorType Comm;
75
76 friend class ALU3dGrid< GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
77 friend class ALU3dGridEntity < 0, dim, GridImp >;
78 friend class ALU3dGridLevelIterator < cd, All_Partition, GridImp >;
79
80 friend class ALU3dGridHierarchicIndexSet< GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
81
82 template< class > friend class ALU3dGridFactory;
83
84 typedef typename GridImp::Traits::template Codim< cd >::GeometryImpl GeometryImpl;
85
86public:
87 typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
88 typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HItemType;
89 typedef typename ImplTraits::template Codim<dim, cd>::ImplementationType ItemType;
90 typedef typename ImplTraits::VertexType VertexType;
91 typedef typename ImplTraits::HBndSegType HBndSegType;
92
93 typedef typename GridImp::template Codim<cd>::Entity Entity;
94 typedef typename GridImp::template Codim<cd>::Geometry Geometry;
95
96#if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
97 typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
98#endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
99
101 typedef typename GridImp::template Codim<cd>::EntitySeed EntitySeed;
102
105
107 ALU3dGridEntity( const EntitySeed& seed );
108
110 Geometry geometry () const;
111
113 GeometryType type () const { return geo_.type(); }
114
115 // set element as normal entity
116 void setElement(const HItemType & item);
117 void setElement(const HItemType & item, const GridImp& grid );
118 void setElement(const HItemType & item, const int level, int twist=0);
119
120 /* set entity from seed */
121 void setElement(const EntitySeed& seed);
122
124 void setGhost(const HBndSegType &ghost);
125
128 {
129 seed_.clear();
130 geo_.invalidate();
131 }
132
134 bool equals ( const ALU3dGridEntity<cd,dim,GridImp> & org ) const
135 {
136 return seed_ == org.seed_;
137 }
138
140 void setEntity ( const ALU3dGridEntity<cd,dim,GridImp> & org );
141
142 // return reference to internal item
143 const ItemType& getItem () const { return *(static_cast<ItemType *> (seed_.item())); }
144
146 EntitySeed seed() const { return seed_; }
147
149 int level () const { return seed_.level(); }
150
152 PartitionType partitionType() const { return this->convertBndId( getItem() ); }
153
154protected:
156 int getIndex () const { return getItem().getIndex(); }
157
159 PartitionType convertBndId(const HItemType & item) const ;
160
162 mutable GeometryImpl geo_;
163
166};
167
181//***********************
182//
183// --ALU3dGridEntity
184// --0Entity
185//
186//***********************
187template<int dim, class GridImp>
188class ALU3dGridEntity<0,dim,GridImp>
189: public EntityDefaultImplementation<0,dim,GridImp,ALU3dGridEntity>
190{
191 static const int dimworld = std::remove_const< GridImp >::type::dimensionworld;
192 static const ALU3dGridElementType elementType = std::remove_const< GridImp >::type::elementType;
193
194 typedef typename GridImp::MPICommunicatorType Comm;
195
197 typedef typename ImplTraits::template Codim<dim, 0>::InterfaceType HElementType;
198
199 typedef typename ImplTraits::GEOElementType GEOElementType;
200 typedef typename ImplTraits::BNDFaceType BNDFaceType;
201 typedef typename ImplTraits::IMPLElementType IMPLElementType;
202 typedef typename ImplTraits::HBndSegType HBndSegType;
203
204 enum { refine_element_t = ImplTraits::RefinementRules::refine_element_t };
205 enum { bisect_element_t = ImplTraits::RefinementRules::bisect_element_t };
206 enum { coarse_element_t = ImplTraits::RefinementRules::coarse_element_t };
207 enum { nosplit_element_t = ImplTraits::RefinementRules::nosplit_element_t };
208
209 typedef typename ImplTraits::MarkRuleType MarkRuleType;
210
211 friend class ALU3dGrid< GridImp::dimension, GridImp::dimensionworld, elementType, Comm >;
212 friend class ALU3dGridIntersectionIterator < GridImp >;
213 friend class ALU3dGridIntersectionIterator < const GridImp >;
214 friend class ALU3dGridHierarchicIterator < const GridImp >;
215 friend class ALU3dGridHierarchicIterator < GridImp >;
216 friend class ALU3dGridLevelIterator <0,All_Partition,GridImp>;
217 friend class ALU3dGridLevelIterator <1,All_Partition,GridImp>;
218 friend class ALU3dGridLevelIterator <2,All_Partition,GridImp>;
219 friend class ALU3dGridLevelIterator <3,All_Partition,GridImp>;
220 friend class ALU3dGridLeafIterator <0, All_Partition,GridImp>;
221 friend class ALU3dGridLeafIterator <1, All_Partition,GridImp>;
222 friend class ALU3dGridLeafIterator <2, All_Partition,GridImp>;
223 friend class ALU3dGridLeafIterator <3, All_Partition,GridImp>;
224
225 friend class ALU3dGridHierarchicIndexSet< GridImp::dimension, GridImp::dimensionworld, elementType, Comm >;
226
227 template< class > friend class ALU3dGridFactory;
228
229 // type of reference element
230 typedef typename GridImp :: ReferenceElementType ReferenceElementType;
231
232 typedef typename GridImp::Traits::template Codim< 0 >::GeometryImpl GeometryImpl;
233 typedef typename GridImp::Traits::template Codim< 0 >::LocalGeometryImpl LocalGeometryImpl;
234
235public:
236 typedef typename GridImp::template Codim< 0 >::Geometry Geometry;
237 typedef typename GridImp::template Codim< 0 >::LocalGeometry LocalGeometry;
239
243
244 typedef typename GridImp::template Codim<0>::Entity Entity;
245#if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
246 typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
247#endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
248
249 template <int cd>
250 struct Codim
251 {
252 typedef typename GridImp::Traits::template Codim< cd >::Twists::Twist Twist;
253 typedef typename GridImp::template Codim< cd >::Entity Entity;
254#if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
255 typedef typename GridImp::template Codim<cd>::EntityPointer EntityPointer;
256#endif // #if !DUNE_VERSION_NEWER(DUNE_GRID,3,0)
257 };
258
260 typedef typename GridImp::template Codim<0>::EntitySeed EntitySeed;
261
264
267
269 ALU3dGridEntity( const HElementType& element );
270
272 ALU3dGridEntity( const HBndSegType& ghost );
273
275 int level () const ;
276
278 Geometry geometry () const;
279
281 GeometryType type () const;
282
284 PartitionType partitionType() const;
285
289 template<int cc> int count () const ;
290
294 unsigned int subEntities (unsigned int codim) const;
295
298 template< int codim >
299 typename Codim< codim >::Entity subEntity ( int i ) const;
300
301 template< int codim >
302 typename Codim< codim >::Twist twist ( int i ) const;
303
305 bool isLeaf () const;
306
309 Entity father () const;
310
312 bool hasFather () const
313 {
314 return (this->level()>0);
315 }
316
326 LocalGeometry geometryInFather () const;
327
332 ALU3dGridHierarchicIterator<GridImp> hbegin (int maxlevel) const;
333
335 ALU3dGridHierarchicIterator<GridImp> hend (int maxlevel) const;
336
337 //***************************************************************
338 // Interface for Adaptation
339 //***************************************************************
340
342 bool isNew () const;
343
345 bool mightVanish () const;
346
348 bool hasBoundaryIntersections () const;
349
350 // private method
354 bool mark( const int refCount, const bool conformingRefinement ) const;
355
357 int getMark() const;
358
362 void setElement(HElementType &element);
363
364 /* set entity from seed */
365 void setElement(const EntitySeed& seed);
366
368 void setGhost(HBndSegType & ghost);
369
371 void reset ( int l );
372
374 void removeElement();
375
377 bool equals ( const ALU3dGridEntity<0,dim,GridImp> & org ) const;
378
379 void setEntity ( const ALU3dGridEntity<0,dim,GridImp> & org );
380
384 template<int cc> int getSubIndex (int i) const;
385
389 int subIndex(int i, unsigned int codim) const;
390
391 // return reference to internal item
392 const IMPLElementType& getItem () const { return *item_; }
393
394 // return reference to internal item
395 const BNDFaceType& getGhost () const
396 {
397 alugrid_assert ( isGhost() );
398 return *ghost_;
399 }
400
402 bool isGhost () const{ return ImplTraits::isGhost( ghost_ ); }
403
406 {
407 if( isGhost() )
408 return EntitySeed( getGhost () );
409 else
410 return EntitySeed( getItem() );
411 }
412
414 int macroId() const
415 {
416 return (isGhost()) ? getGhost().ldbVertexIndex() : getItem().ldbVertexIndex();
417 }
418
420 int weight() const
421 {
422 return (isGhost()) ? 0 : getItem().weight();
423 }
424
426 int master() const
427 {
428 return (isGhost()) ? getGhost().master() : getItem().master();
429 }
430
431protected:
433 int getIndex () const;
434
436 mutable GeometryImpl geo_;
437
438 // the current element of grid
439 mutable IMPLElementType* item_;
440
442 mutable BNDFaceType* ghost_;
443
444}; // end of ALU3dGridEntity codim = 0
445
446
447
448//**********************************************************************
449//
450// --ALU3dGridEntityPointer
451// --EntityPointer
452// --EnPointer
456template< int codim, class GridImp >
458{
460 enum { dim = GridImp::dimension };
461 enum { dimworld = GridImp::dimensionworld };
462
463 typedef typename GridImp::MPICommunicatorType Comm;
464
465 friend class ALU3dGridEntity<codim,dim,GridImp>;
466 friend class ALU3dGridEntity< 0,dim,GridImp>;
467 friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
468
469 typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
470 typedef typename ImplTraits::template Codim<dim, codim>::InterfaceType HElementType;
471
472 typedef typename ImplTraits::HBndSegType HBndSegType;
473 typedef typename ImplTraits::BNDFaceType BNDFaceType;
474public:
475 enum { codimension = codim };
476
478 typedef typename GridImp::template Codim<codimension>::Entity Entity;
481
484
487
490
492 ALU3dGridEntityPointerBase(const HElementType & item);
493
495 ALU3dGridEntityPointerBase(const HBndSegType & ghostFace );
496
499
502
504 bool equals (const ALU3dGridEntityPointerType& i) const;
505
507 ThisType & operator = (const ThisType & org);
508
510 Entity
511//#if ! DUNE_VERSION_NEWER(DUNE_GRID,2,4)
512 & // need reference here for older versions
513//#endif
514 dereference () const
515 {
516
517 // don't dereference empty entity pointer
519 alugrid_assert ( seed_.item() == & entityImp().getItem() );
520 return entity_;
521 }
522
524 int level () const { return seed_.level(); }
525
528
529protected:
530 // clones object
531 void clone (const ALU3dGridEntityPointerType & org);
532
534 void done ();
535
536 // update underlying item pointer and set ghost entity
537 void updateGhostPointer( HBndSegType & ghostFace );
538
539 // update underlying item pointer and set entity
540 void updateEntityPointer( HElementType * item , int level = -1 );
541
542 // key to gererate entity
544
545 // entity that this EntityPointer points to
547
548 // return reference to internal entity implementation
549 EntityImp & entityImp () const {
550 return GridImp :: getRealImplementation(entity_);
551 }
552};
553
557template<class GridImp>
558class ALU3dGridEntityPointer<0,GridImp> :
559public ALU3dGridEntityPointerBase<0,GridImp>
560{
561protected:
563
564 enum { cd = 0 };
565 typedef ALU3dGridEntityPointer <cd,GridImp> ThisType;
566 enum { dim = GridImp::dimension };
567 enum { dimworld = GridImp::dimensionworld };
568
569 typedef typename GridImp::MPICommunicatorType Comm;
570
571 friend class ALU3dGridEntity<cd,dim,GridImp>;
572 friend class ALU3dGridEntity< 0,dim,GridImp>;
573 friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
574
575 typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
576 typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HElementType;
577
578 typedef typename ImplTraits::HBndSegType HBndSegType;
579 typedef typename ImplTraits::BNDFaceType BNDFaceType;
580
581 typedef ALU3dGridEntity< 0,dim,GridImp> ALU3dGridEntityType ;
582
583 using BaseType :: seed_;
584 using BaseType :: entity_;
585 using BaseType :: entityImp;
586public:
589
591 typedef typename GridImp::template Codim<cd>::Entity Entity;
592
595
597 ALU3dGridEntityPointer(const HElementType & item)
598 : ALU3dGridEntityPointerBase<cd,GridImp> ( item )
599 {}
600
603 : ALU3dGridEntityPointerBase<cd,GridImp> ( ghostFace )
604 {}
605
608 : ALU3dGridEntityPointerBase<cd,GridImp> ( seed )
609 {
610 }
611
614 : ALU3dGridEntityPointerBase<cd,GridImp> ( entity.seed() )
615 {
616 }
617
623};
624
625
626template<int cd, class GridImp>
628public ALU3dGridEntityPointerBase<cd,GridImp>
629{
630protected:
632 typedef ALU3dGridEntityPointer <cd,GridImp> ThisType;
633 enum { dim = GridImp::dimension };
634 enum { dimworld = GridImp::dimensionworld };
635
636 typedef typename GridImp::MPICommunicatorType Comm;
637
638 friend class ALU3dGridEntity<cd,dim,GridImp>;
639 friend class ALU3dGridEntity< 0,dim,GridImp>;
640 friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
641
642 typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
643 typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HElementType;
644
645 typedef typename ImplTraits::HBndSegType HBndSegType;
646 typedef typename ImplTraits::BNDFaceType BNDFaceType;
647 typedef ALU3dGridEntity<cd,dim,GridImp> ALU3dGridEntityType;
648
649 using BaseType :: seed_;
650 using BaseType :: entity_;
651 using BaseType :: entityImp;
652
653public:
656
658 typedef typename GridImp::template Codim<cd>::Entity Entity;
659
662
663protected:
664 static const int defaultValue = -665; //ALU3dGridEntityPointerType :: defaultValue;
665
666public:
668 ALU3dGridEntityPointer(const ALU3dGridEntityType& entity)
669 : ALU3dGridEntityPointerBase<cd,GridImp> ( entity.seed() )
670 {}
671
674 : ALU3dGridEntityPointerBase<cd,GridImp> ( seed )
675 {}
676
682
683protected:
684 void updateEntityPointer( HElementType * item , int level );
685};
686
687} // end namespace Dune
688
689#include "entity_inline.hh"
690
691#if COMPILE_ALUGRID_INLINE
692 #include "entity_imp.cc"
693#endif
694
695#endif
#define alugrid_assert(EX)
Definition alugrid_assert.hh:20
Provides proxy classes for IntersectionsIterators.
Definition alu3dinclude.hh:80
ALU3dGridElementType
Definition topology.hh:12
Definition alu3dinclude.hh:259
[ provides Dune::Grid ]
Definition 3d/grid.hh:468
Definition entity.hh:47
EntitySeed seed_
the information necessary to make sense of this entity
Definition entity.hh:165
GridImp::template Codim< cd >::Geometry Geometry
Definition entity.hh:94
GeometryType type() const
type of geometry of this entity
Definition entity.hh:113
void removeElement()
reset item pointer to NULL
Definition entity.hh:127
int level() const
level of this element
Definition entity.hh:149
PartitionType partitionType() const
return partition type of this entity ( see grid.hh )
Definition entity.hh:152
ImplTraits::template Codim< dim, cd >::InterfaceType HItemType
Definition entity.hh:88
ALU3dGridEntity()
Constructor.
Definition entity_imp.cc:28
PartitionType convertBndId(const HItemType &item) const
convert ALUGrid partition type to dune partition type
Definition entity_imp.cc:90
Geometry geometry() const
geometry of this entity
Definition entity_imp.cc:109
GridImp::template Codim< cd >::EntitySeed EntitySeed
typedef of my type
Definition entity.hh:101
GridImp::template Codim< cd >::Entity Entity
Definition entity.hh:93
void setEntity(const ALU3dGridEntity< cd, dim, GridImp > &org)
set item from other entity, mainly for copy constructor of entity pointer
Definition entity_imp.cc:41
ImplTraits::template Codim< dim, cd >::ImplementationType ItemType
Definition entity.hh:89
EntitySeed seed() const
return seed of entity
Definition entity.hh:146
const ItemType & getItem() const
Definition entity.hh:143
void setElement(const HItemType &item)
Definition entity_imp.cc:48
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition entity.hh:97
ImplTraits::HBndSegType HBndSegType
Definition entity.hh:91
GeometryImpl geo_
the current geometry
Definition entity.hh:162
ImplTraits::VertexType VertexType
Definition entity.hh:90
ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits
Definition entity.hh:87
void setGhost(const HBndSegType &ghost)
setGhost is not valid for this codim
Definition entity_imp.cc:80
int getIndex() const
index is unique within the grid hierarchy and per codim
Definition entity.hh:156
bool equals(const ALU3dGridEntity< cd, dim, GridImp > &org) const
compare 2 elements by comparing the item pointers
Definition entity.hh:134
Definition iterator.hh:550
Definition entity.hh:629
GridImp::MPICommunicatorType Comm
Definition entity.hh:636
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition entity.hh:658
static const int defaultValue
Definition entity.hh:664
@ dimworld
Definition entity.hh:634
ALU3dGridEntitySeed< cd, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition entity.hh:655
ALU3dGridEntityPointer< cd, GridImp > ALU3dGridEntityPointerType
typedef of my type
Definition entity.hh:661
ALU3dGridEntityPointerBase< cd, GridImp > BaseType
Definition entity.hh:631
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition entity.hh:673
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition entity.hh:632
ALU3dGridEntityPointer()
Definition entity.hh:679
@ dim
Definition entity.hh:633
void updateEntityPointer(HElementType *item, int level)
Definition entity_inline.hh:326
ImplTraits::HBndSegType HBndSegType
Definition entity.hh:645
ImplTraits::BNDFaceType BNDFaceType
Definition entity.hh:646
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition entity.hh:643
Definition iterator.hh:709
Definition iterator.hh:56
Leaf iterator.
Definition iterator.hh:635
const IMPLElementType & getItem() const
Definition entity.hh:392
GridImp::template Codim< 0 >::Entity Entity
Definition entity.hh:244
const BNDFaceType & getGhost() const
Definition entity.hh:395
GridImp::template Codim< 0 >::LocalGeometry LocalGeometry
Definition entity.hh:237
BNDFaceType * ghost_
not zero if entity is ghost entity
Definition entity.hh:442
GridImp::template Codim< 0 >::Geometry Geometry
Definition entity.hh:236
bool hasFather() const
returns true if father entity exists
Definition entity.hh:312
GridImp::template Codim< 0 >::EntitySeed EntitySeed
typedef of my type
Definition entity.hh:260
IMPLElementType * item_
Definition entity.hh:439
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition entity.hh:246
Codim< codim >::Entity subEntity(int i) const
GeometryImpl geo_
the entity's geometry
Definition entity.hh:436
LeafIntersectionIteratorWrapper< GridImp > ALU3dGridLeafIntersectionIteratorType
Definition entity.hh:241
EntitySeed seed() const
return key for this entity
Definition entity.hh:405
Codim< codim >::Twist twist(int i) const
LeafIntersectionIteratorWrapper< GridImp > ALU3dGridIntersectionIteratorType
Definition entity.hh:240
int weight() const
weight of entity (ie number of leaf elements underneath)
Definition entity.hh:420
LevelIntersectionIteratorWrapper< GridImp > ALU3dGridLevelIntersectionIteratorType
Definition entity.hh:242
bool isGhost() const
returns true if entity is ghost
Definition entity.hh:402
int master() const
return rank number of master process
Definition entity.hh:426
int macroId() const
return macro id of this entity
Definition entity.hh:414
GridImp::template Codim< cd >::EntityPointer EntityPointer
Definition entity.hh:255
GridImp::template Codim< cd >::Entity Entity
Definition entity.hh:253
GridImp::Traits::template Codim< cd >::Twists::Twist Twist
Definition entity.hh:252
Definition entity.hh:458
void updateGhostPointer(HBndSegType &ghostFace)
Definition entity_inline.hh:298
GridImp::template Codim< codimension >::Entity Entity
type of Entity
Definition entity.hh:478
ThisType ALU3dGridEntityPointerType
typedef of my type
Definition entity.hh:483
int level() const
ask for level of entities
Definition entity.hh:524
ALU3dGridEntityPointerBase()
default empty constructor
Definition entity_inline.hh:238
ALU3dGridEntitySeedType seed_
Definition entity.hh:543
bool equals(const ALU3dGridEntityPointerType &i) const
equality
Definition entity_inline.hh:290
EntityObject entity_
Definition entity.hh:546
ALU3dGridEntitySeed< codimension, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition entity.hh:489
ALU3dGridEntityPointer< codimension, GridImp > EntityPointerImp
make type of entity pointer implementation available in derived classes
Definition entity.hh:486
Entity & dereference() const
dereferencing
Definition entity.hh:514
ThisType & operator=(const ThisType &org)
assignment operator
Definition entity_inline.hh:257
EntityImp & entityImp() const
Definition entity.hh:549
void done()
has to be called when iterator is finished
Definition entity_inline.hh:283
void clone(const ALU3dGridEntityPointerType &org)
Definition entity_inline.hh:266
ALU3dGridEntity< codimension, dim, GridImp > EntityImp
Definition entity.hh:480
void updateEntityPointer(HElementType *item, int level=-1)
Definition entity_inline.hh:309
Entity EntityObject
Definition entity.hh:479
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition entity.hh:565
ALU3dGridEntityPointer(const HBndSegType &ghostFace)
Constructor for EntityPointer that points to an ghost.
Definition entity.hh:602
ImplTraits::BNDFaceType BNDFaceType
Definition entity.hh:579
ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits
Definition entity.hh:575
ImplTraits::HBndSegType HBndSegType
Definition entity.hh:578
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition entity.hh:591
ALU3dGridEntityPointer(const ALU3dGridEntityType &entity)
Constructor for EntityPointer that points to an entity (interior or ghost)
Definition entity.hh:613
ALU3dGridEntitySeed< cd, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition entity.hh:588
ALU3dGridEntityPointer()
Definition entity.hh:620
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition entity.hh:576
GridImp::MPICommunicatorType Comm
Definition entity.hh:569
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition entity.hh:607
ALU3dGridEntityPointerBase< 0, GridImp > BaseType
Definition entity.hh:562
Definition entityseed.hh:212
int level() const
return level
Definition entityseed.hh:281
HElementType * item() const
get item from key
Definition entityseed.hh:159
bool isValid() const
Definition entityseed.hh:127
hierarchic index set of ALU3dGrid
Definition indexsets.hh:38
Factory class for ALUGrids.
Definition gridfactory.hh:28
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition intersectioniteratorwrapper.hh:251
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition intersectioniteratorwrapper.hh:355