dune-alugrid  2.8-git
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 "indexsets.hh"
15 #include "iterator.hh"
16 #include "entityseed.hh"
17 
18 namespace Dune
19 {
20 
21  // Forward declarations
22  template<int cd, int dim, class GridImp>
23  class ALU3dGridEntity;
24  template<int cd, PartitionIteratorType pitype, class GridImp >
25  class ALU3dGridLevelIterator;
26  template<int cd, class GridImp >
27  class ALU3dGridEntityPointer;
28  template<int mydim, int coorddim, class GridImp>
29  class ALU3dGridGeometry;
30  template<class GridImp>
31  class ALU3dGridHierarchicIterator;
32  template<class GridImp>
33  class ALU3dGridIntersectionIterator;
34  template<int codim, PartitionIteratorType, class GridImp>
35  class ALU3dGridLeafIterator;
36  template<int dim, int dimworld, ALU3dGridElementType, class >
37  class ALU3dGrid;
38 
45 template<int cd, int dim, class GridImp>
47 public EntityDefaultImplementation <cd,dim,GridImp,ALU3dGridEntity>
48 {
49  // default just returns level
50  template <class GridType, int dm, int cdim>
51  struct GetLevel
52  {
53  template <class ItemType>
54  static int getLevel(const GridType & grid, const ItemType & item )
55  {
56  return item.level();
57  }
58  };
59 
60  // for leaf vertices the level is somewhat difficult to obtain, because
61  // this the maximum of levels of elements that have this vertex as sub
62  // entity
63  template <class GridType>
64  struct GetLevel<GridType,dim,dim>
65  {
66  template <class ItemType>
67  static int getLevel(const GridType & grid, const ItemType & item)
68  {
69  return (item.isLeafEntity()) ? grid.getLevelOfLeafVertex(item) : item.level();
70  }
71  };
72 
73  enum { dimworld = GridImp::dimensionworld };
74 
75  typedef typename GridImp::MPICommunicatorType Comm;
76 
77  friend class ALU3dGrid< GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
78  friend class ALU3dGridEntity < 0, dim, GridImp >;
79  friend class ALU3dGridLevelIterator < cd, All_Partition, GridImp >;
80 
81  friend class ALU3dGridHierarchicIndexSet< GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
82 
83  template< class > friend class ALU3dGridFactory;
84 
85  typedef typename GridImp::Traits::template Codim< cd >::GeometryImpl GeometryImpl;
86 
87 public:
88  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
89  typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HItemType;
90  typedef typename ImplTraits::template Codim<dim, cd>::ImplementationType ItemType;
91  typedef typename ImplTraits::VertexType VertexType;
92  typedef typename ImplTraits::HBndSegType HBndSegType;
93 
94  typedef typename GridImp::template Codim<cd>::Entity Entity;
95  typedef typename GridImp::template Codim<cd>::Geometry Geometry;
96 
98  typedef typename GridImp::template Codim<cd>::EntitySeed EntitySeed;
99 
101  ALU3dGridEntity();
102 
104  ALU3dGridEntity( const EntitySeed& seed );
105 
107  Geometry geometry () const;
108 
110  GeometryType type () const { return geo_.type(); }
111 
112  // set element as normal entity
113  void setElement(const HItemType & item);
114  void setElement(const HItemType & item, const GridImp& grid );
115  void setElement(const HItemType & item, const int level, int twist=0);
116 
117  /* set entity from seed */
118  void setElement(const EntitySeed& seed);
119 
121  void setGhost(const HBndSegType &ghost);
122 
125  {
126  seed_.clear();
127  geo_.invalidate();
128  }
129 
131  bool equals ( const ALU3dGridEntity<cd,dim,GridImp> & org ) const
132  {
133  return seed_ == org.seed_;
134  }
135 
137  void setEntity ( const ALU3dGridEntity<cd,dim,GridImp> & org );
138 
139  int subIndex ( int i, unsigned int codim ) const
140  {
141  DUNE_THROW( NotImplemented, "Method subIndex for higher codimension not implemented, yet." );
142  }
143 
144  // return reference to internal item
145  const ItemType& getItem () const { return *(static_cast<ItemType *> (seed_.item())); }
146 
148  EntitySeed seed() const { return seed_; }
149 
151  int level () const { return seed_.level(); }
152 
154  PartitionType partitionType() const { return this->convertBndId( getItem() ); }
155 
156 protected:
158  int getIndex () const { return getItem().getIndex(); }
159 
161  PartitionType convertBndId(const HItemType & item) const ;
162 
164  mutable GeometryImpl geo_;
165 
168 };
169 
183 //***********************
184 //
185 // --ALU3dGridEntity
186 // --0Entity
187 //
188 //***********************
189 template<int dim, class GridImp>
190 class ALU3dGridEntity<0,dim,GridImp>
191 : public EntityDefaultImplementation<0,dim,GridImp,ALU3dGridEntity>
192 {
193  static const int dimworld = std::remove_const< GridImp >::type::dimensionworld;
194  static const ALU3dGridElementType elementType = std::remove_const< GridImp >::type::elementType;
195 
196  typedef typename GridImp::MPICommunicatorType Comm;
197 
199  typedef typename ImplTraits::template Codim<dim, 0>::InterfaceType HElementType;
200 
201  typedef typename ImplTraits::GEOElementType GEOElementType;
202  typedef typename ImplTraits::BNDFaceType BNDFaceType;
203  typedef typename ImplTraits::IMPLElementType IMPLElementType;
204  typedef typename ImplTraits::HBndSegType HBndSegType;
205 
206  enum { refine_element_t = ImplTraits::RefinementRules::refine_element_t };
207  enum { bisect_element_t = ImplTraits::RefinementRules::bisect_element_t };
208  enum { coarse_element_t = ImplTraits::RefinementRules::coarse_element_t };
209  enum { nosplit_element_t = ImplTraits::RefinementRules::nosplit_element_t };
210 
211  typedef typename ImplTraits::MarkRuleType MarkRuleType;
212 
213  friend class ALU3dGrid< GridImp::dimension, GridImp::dimensionworld, elementType, Comm >;
214  friend class ALU3dGridIntersectionIterator < GridImp >;
215  friend class ALU3dGridIntersectionIterator < const GridImp >;
216  friend class ALU3dGridHierarchicIterator < const GridImp >;
217  friend class ALU3dGridHierarchicIterator < GridImp >;
218  friend class ALU3dGridLevelIterator <0,All_Partition,GridImp>;
219  friend class ALU3dGridLevelIterator <1,All_Partition,GridImp>;
220  friend class ALU3dGridLevelIterator <2,All_Partition,GridImp>;
221  friend class ALU3dGridLevelIterator <3,All_Partition,GridImp>;
222  friend class ALU3dGridLeafIterator <0, All_Partition,GridImp>;
223  friend class ALU3dGridLeafIterator <1, All_Partition,GridImp>;
224  friend class ALU3dGridLeafIterator <2, All_Partition,GridImp>;
225  friend class ALU3dGridLeafIterator <3, All_Partition,GridImp>;
226 
227  friend class ALU3dGridHierarchicIndexSet< GridImp::dimension, GridImp::dimensionworld, elementType, Comm >;
228 
229  template< class > friend class ALU3dGridFactory;
230 
231  // type of reference element
232  typedef typename GridImp :: ReferenceElementType ReferenceElementType;
233 
234  typedef typename GridImp::Traits::template Codim< 0 >::GeometryImpl GeometryImpl;
235  typedef typename GridImp::Traits::template Codim< 0 >::LocalGeometryImpl LocalGeometryImpl;
236 
237 public:
238  typedef typename GridImp::template Codim< 0 >::Geometry Geometry;
239  typedef typename GridImp::template Codim< 0 >::LocalGeometry LocalGeometry;
241 
245 
246  typedef typename GridImp::template Codim<0>::Entity Entity;
247 
248  template <int cd>
249  struct Codim
250  {
251  typedef typename GridImp::Traits::template Codim< cd >::Twists::Twist Twist;
252  typedef typename GridImp::template Codim< cd >::Entity Entity;
253  };
254 
256  typedef typename GridImp::template Codim<0>::EntitySeed EntitySeed;
257 
259  ALU3dGridEntity();
260 
262  ALU3dGridEntity( const EntitySeed& seed );
263 
265  ALU3dGridEntity( const HElementType& element );
266 
268  ALU3dGridEntity( const HBndSegType& ghost );
269 
271  int level () const ;
272 
274  Geometry geometry () const;
275 
277  GeometryType type () const;
278 
280  PartitionType partitionType() const;
281 
285  template<int cc> int count () const ;
286 
290  unsigned int subEntities (unsigned int codim) const;
291 
294  template< int codim >
295  typename Codim< codim >::Entity subEntity ( int i ) const;
296 
297  template< int codim >
298  typename Codim< codim >::Twist twist ( int i ) const;
299 
301  bool isLeaf () const;
302 
305  Entity father () const;
306 
308  bool hasFather () const
309  {
310  return (this->level()>0);
311  }
312 
322  LocalGeometry geometryInFather () const;
323 
328  ALU3dGridHierarchicIterator<GridImp> hbegin (int maxlevel) const;
329 
331  ALU3dGridHierarchicIterator<GridImp> hend (int maxlevel) const;
332 
333  //***************************************************************
334  // Interface for Adaptation
335  //***************************************************************
336 
338  bool isNew () const;
339 
341  bool mightVanish () const;
342 
344  bool hasBoundaryIntersections () const;
345 
346  // private method
350  bool mark( const int refCount, const bool conformingRefinement ) const;
351 
353  int getMark() const;
354 
358  void setElement(HElementType &element);
359 
360  /* set entity from seed */
361  void setElement(const EntitySeed& seed);
362 
364  void setGhost(HBndSegType & ghost);
365 
367  void reset ( int l );
368 
370  void removeElement();
371 
373  bool equals ( const ALU3dGridEntity<0,dim,GridImp> & org ) const;
374 
375  void setEntity ( const ALU3dGridEntity<0,dim,GridImp> & org );
376 
380  template<int cc> int getSubIndex (int i) const;
381 
385  int subIndex(int i, unsigned int codim) const;
386 
387  // return reference to internal item
388  const IMPLElementType& getItem () const { return *item_; }
389 
390  // return reference to internal item
391  const BNDFaceType& getGhost () const
392  {
393  alugrid_assert ( isGhost() );
394  return *ghost_;
395  }
396 
398  bool isGhost () const{ return ImplTraits::isGhost( ghost_ ); }
399 
401  EntitySeed seed() const
402  {
403  if( isGhost() )
404  return EntitySeed( getGhost () );
405  else
406  return EntitySeed( getItem() );
407  }
408 
410  int macroId() const
411  {
412  return (isGhost()) ? getGhost().ldbVertexIndex() : getItem().ldbVertexIndex();
413  }
414 
416  int weight() const
417  {
418  return (isGhost()) ? 0 : getItem().weight();
419  }
420 
422  int master() const
423  {
424  return (isGhost()) ? getGhost().master() : getItem().master();
425  }
426 
427 protected:
429  int getIndex () const;
430 
432  mutable GeometryImpl geo_;
433 
434  // the current element of grid
435  mutable IMPLElementType* item_;
436 
438  mutable BNDFaceType* ghost_;
439 
440 }; // end of ALU3dGridEntity codim = 0
441 
442 
443 
444 //**********************************************************************
445 //
446 // --ALU3dGridEntityPointer
447 // --EntityPointer
448 // --EnPointer
452 template< int codim, class GridImp >
454 {
456  enum { dim = GridImp::dimension };
457  enum { dimworld = GridImp::dimensionworld };
458 
459  typedef typename GridImp::MPICommunicatorType Comm;
460 
461  friend class ALU3dGridEntity<codim,dim,GridImp>;
462  friend class ALU3dGridEntity< 0,dim,GridImp>;
463  friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
464 
465  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
466  typedef typename ImplTraits::template Codim<dim, codim>::InterfaceType HElementType;
467 
468  typedef typename ImplTraits::HBndSegType HBndSegType;
469  typedef typename ImplTraits::BNDFaceType BNDFaceType;
470 public:
471  enum { codimension = codim };
472 
474  typedef typename GridImp::template Codim<codimension>::Entity Entity;
477 
480 
483 
486 
488  ALU3dGridEntityPointerBase(const HElementType & item);
489 
491  ALU3dGridEntityPointerBase(const HBndSegType & ghostFace );
492 
495 
498 
500  bool equals (const ALU3dGridEntityPointerType& i) const;
501 
503  ThisType & operator = (const ThisType & org);
504 
506  Entity& dereference () const
507  {
508  // don't dereference empty entity pointer
510  alugrid_assert ( seed_.item() == & entityImp().getItem() );
511  return entity_;
512  }
513 
515  int level () const { return seed_.level(); }
516 
519 
520 protected:
521  // clones object
522  void clone (const ALU3dGridEntityPointerType & org);
523 
525  void done ();
526 
527  // update underlying item pointer and set ghost entity
528  void updateGhostPointer( HBndSegType & ghostFace );
529 
530  // update underlying item pointer and set entity
531  void updateEntityPointer( HElementType * item , int level = -1 );
532 
533  // key to gererate entity
535 
536  // entity that this EntityPointer points to
538 
539  // return reference to internal entity implementation
540  EntityImp & entityImp () const {
541  return entity_.impl();
542  }
543 };
544 
548 template<class GridImp>
549 class ALU3dGridEntityPointer<0,GridImp> :
550 public ALU3dGridEntityPointerBase<0,GridImp>
551 {
552 protected:
554 
555  enum { cd = 0 };
557  enum { dim = GridImp::dimension };
558  enum { dimworld = GridImp::dimensionworld };
559 
560  typedef typename GridImp::MPICommunicatorType Comm;
561 
562  friend class ALU3dGridEntity<cd,dim,GridImp>;
563  friend class ALU3dGridEntity< 0,dim,GridImp>;
564  friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
565 
566  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
567  typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HElementType;
568 
569  typedef typename ImplTraits::HBndSegType HBndSegType;
570  typedef typename ImplTraits::BNDFaceType BNDFaceType;
571 
572  typedef ALU3dGridEntity< 0,dim,GridImp> ALU3dGridEntityType ;
573 
574  using BaseType :: seed_;
575  using BaseType :: entity_;
576  using BaseType :: entityImp;
577 public:
580 
582  typedef typename GridImp::template Codim<cd>::Entity Entity;
583 
586 
588  ALU3dGridEntityPointer(const HElementType & item)
589  : ALU3dGridEntityPointerBase<cd,GridImp> ( item )
590  {}
591 
594  : ALU3dGridEntityPointerBase<cd,GridImp> ( ghostFace )
595  {}
596 
599  : ALU3dGridEntityPointerBase<cd,GridImp> ( seed )
600  {
601  }
602 
605  : ALU3dGridEntityPointerBase<cd,GridImp> ( entity.seed() )
606  {
607  }
608 
612  : ALU3dGridEntityPointerBase<cd,GridImp> ()
613  {}
614 };
615 
616 
617 template<int cd, class GridImp>
619 public ALU3dGridEntityPointerBase<cd,GridImp>
620 {
621 protected:
624  enum { dim = GridImp::dimension };
625  enum { dimworld = GridImp::dimensionworld };
626 
627  typedef typename GridImp::MPICommunicatorType Comm;
628 
629  friend class ALU3dGridEntity<cd,dim,GridImp>;
630  friend class ALU3dGridEntity< 0,dim,GridImp>;
631  friend class ALU3dGrid < GridImp::dimension, GridImp::dimensionworld, GridImp::elementType, Comm >;
632 
633  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
634  typedef typename ImplTraits::template Codim<dim, cd>::InterfaceType HElementType;
635 
636  typedef typename ImplTraits::HBndSegType HBndSegType;
637  typedef typename ImplTraits::BNDFaceType BNDFaceType;
638  typedef ALU3dGridEntity<cd,dim,GridImp> ALU3dGridEntityType;
639 
640  using BaseType :: seed_;
641  using BaseType :: entity_;
642  using BaseType :: entityImp;
643 
644 public:
647 
649  typedef typename GridImp::template Codim<cd>::Entity Entity;
650 
653 
654 protected:
655  static const int defaultValue = -665; //ALU3dGridEntityPointerType :: defaultValue;
656 
657 public:
659  ALU3dGridEntityPointer(const ALU3dGridEntityType& entity)
660  : ALU3dGridEntityPointerBase<cd,GridImp> ( entity.seed() )
661  {}
662 
665  : ALU3dGridEntityPointerBase<cd,GridImp> ( seed )
666  {}
667 
671  : ALU3dGridEntityPointerBase<cd,GridImp> ()
672  {}
673 
674 protected:
675  void updateEntityPointer( HElementType * item , int level );
676 };
677 
678 } // end namespace Dune
679 
680 #include "entity_inline.hh"
681 
682 #if COMPILE_ALUGRID_INLINE
683  #include "entity_imp.cc"
684 #endif
685 #endif
#define alugrid_assert(EX)
Definition: alugrid_assert.hh:20
Provides proxy classes for IntersectionsIterators.
Definition: alu3dinclude.hh:63
ALU3dGridElementType
Definition: topology.hh:12
Definition: alu3dinclude.hh:242
[ provides Dune::Grid ]
Definition: 3d/grid.hh:429
Definition: entity.hh:48
EntitySeed seed_
the information necessary to make sense of this entity
Definition: entity.hh:167
GridImp::template Codim< cd >::Geometry Geometry
Definition: entity.hh:95
GeometryType type() const
type of geometry of this entity
Definition: entity.hh:110
void removeElement()
reset item pointer to NULL
Definition: entity.hh:124
int level() const
level of this element
Definition: entity.hh:151
PartitionType partitionType() const
return partition type of this entity ( see grid.hh )
Definition: entity.hh:154
ALU3dGridEntity()
Constructor.
Definition: entity_imp.cc:221
PartitionType convertBndId(const HItemType &item) const
convert ALUGrid partition type to dune partition type
Definition: entity_imp.cc:283
Geometry geometry() const
geometry of this entity
Definition: entity_imp.cc:302
ImplTraits::template Codim< dim, cd >::InterfaceType HItemType
Definition: entity.hh:89
GridImp::template Codim< cd >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:98
GridImp::template Codim< cd >::Entity Entity
Definition: entity.hh:94
ImplTraits::template Codim< dim, cd >::ImplementationType ItemType
Definition: entity.hh:90
void setEntity(const ALU3dGridEntity< cd, dim, GridImp > &org)
set item from other entity, mainly for copy constructor of entity pointer
Definition: entity_imp.cc:234
int subIndex(int i, unsigned int codim) const
Definition: entity.hh:139
EntitySeed seed() const
return seed of entity
Definition: entity.hh:148
const ItemType & getItem() const
Definition: entity.hh:145
void setElement(const HItemType &item)
Definition: entity_imp.cc:241
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:92
GeometryImpl geo_
the current geometry
Definition: entity.hh:164
ImplTraits::VertexType VertexType
Definition: entity.hh:91
ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits
Definition: entity.hh:88
void setGhost(const HBndSegType &ghost)
setGhost is not valid for this codim
Definition: entity_imp.cc:273
int getIndex() const
index is unique within the grid hierarchy and per codim
Definition: entity.hh:158
bool equals(const ALU3dGridEntity< cd, dim, GridImp > &org) const
compare 2 elements by comparing the item pointers
Definition: entity.hh:131
Definition: iterator.hh:556
Definition: entity.hh:620
GridImp::MPICommunicatorType Comm
Definition: entity.hh:627
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition: entity.hh:649
static const int defaultValue
Definition: entity.hh:655
@ dimworld
Definition: entity.hh:625
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition: entity.hh:634
ALU3dGridEntityPointerBase< cd, GridImp > BaseType
Definition: entity.hh:622
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition: entity.hh:664
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition: entity.hh:623
ALU3dGridEntityPointer()
Definition: entity.hh:670
@ dim
Definition: entity.hh:624
void updateEntityPointer(HElementType *item, int level)
Definition: entity_inline.hh:329
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:636
ImplTraits::BNDFaceType BNDFaceType
Definition: entity.hh:637
Definition: iterator.hh:722
Definition: iterator.hh:56
Leaf iterator.
Definition: iterator.hh:648
GridImp::template Codim< 0 >::Entity Entity
Definition: entity.hh:246
const BNDFaceType & getGhost() const
Definition: entity.hh:391
BNDFaceType * ghost_
not zero if entity is ghost entity
Definition: entity.hh:438
GridImp::template Codim< 0 >::Geometry Geometry
Definition: entity.hh:238
bool hasFather() const
returns true if father entity exists
Definition: entity.hh:308
GridImp::template Codim< 0 >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:256
IMPLElementType * item_
Definition: entity.hh:435
Codim< codim >::Entity subEntity(int i) const
GeometryImpl geo_
the entity's geometry
Definition: entity.hh:432
GridImp::template Codim< 0 >::LocalGeometry LocalGeometry
Definition: entity.hh:239
EntitySeed seed() const
return key for this entity
Definition: entity.hh:401
const IMPLElementType & getItem() const
Definition: entity.hh:388
Codim< codim >::Twist twist(int i) const
int weight() const
weight of entity (ie number of leaf elements underneath)
Definition: entity.hh:416
bool isGhost() const
returns true if entity is ghost
Definition: entity.hh:398
int master() const
return rank number of master process
Definition: entity.hh:422
int macroId() const
return macro id of this entity
Definition: entity.hh:410
GridImp::template Codim< cd >::Entity Entity
Definition: entity.hh:252
GridImp::Traits::template Codim< cd >::Twists::Twist Twist
Definition: entity.hh:251
Definition: entity.hh:454
void updateGhostPointer(HBndSegType &ghostFace)
Definition: entity_inline.hh:301
GridImp::template Codim< codimension >::Entity Entity
type of Entity
Definition: entity.hh:474
ThisType ALU3dGridEntityPointerType
typedef of my type
Definition: entity.hh:479
int level() const
ask for level of entities
Definition: entity.hh:515
ALU3dGridEntityPointerBase()
default empty constructor
Definition: entity_inline.hh:241
EntityImp & entityImp() const
Definition: entity.hh:540
ALU3dGridEntitySeedType seed_
Definition: entity.hh:534
bool equals(const ALU3dGridEntityPointerType &i) const
equality
Definition: entity_inline.hh:293
EntityObject entity_
Definition: entity.hh:537
ALU3dGridEntitySeed< codimension, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition: entity.hh:485
Entity & dereference() const
dereferencing
Definition: entity.hh:506
ALU3dGridEntityPointer< codimension, GridImp > EntityPointerImp
make type of entity pointer implementation available in derived classes
Definition: entity.hh:482
@ codimension
Definition: entity.hh:471
ThisType & operator=(const ThisType &org)
assignment operator
Definition: entity_inline.hh:260
void done()
has to be called when iterator is finished
Definition: entity_inline.hh:286
void clone(const ALU3dGridEntityPointerType &org)
Definition: entity_inline.hh:269
ALU3dGridEntity< codimension, dim, GridImp > EntityImp
Definition: entity.hh:476
void updateEntityPointer(HElementType *item, int level=-1)
Definition: entity_inline.hh:312
Entity EntityObject
Definition: entity.hh:475
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition: entity.hh:556
ALU3dGridEntityPointer(const HBndSegType &ghostFace)
Constructor for EntityPointer that points to an ghost.
Definition: entity.hh:593
ImplTraits::BNDFaceType BNDFaceType
Definition: entity.hh:570
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:569
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition: entity.hh:582
ALU3dGridEntityPointer(const ALU3dGridEntityType &entity)
Constructor for EntityPointer that points to an entity (interior or ghost)
Definition: entity.hh:604
ALU3dGridEntityPointer()
Definition: entity.hh:611
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition: entity.hh:567
GridImp::MPICommunicatorType Comm
Definition: entity.hh:560
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition: entity.hh:598
ALU3dGridEntityPointerBase< 0, GridImp > BaseType
Definition: entity.hh:553
int level() const
return level
Definition: entityseed.hh:281
bool isValid() const
Definition: entityseed.hh:127
HElementType * item() const
get item from key
Definition: entityseed.hh:159
hierarchic index set of ALU3dGrid
Definition: indexsets.hh:39
Factory class for ALUGrids.
Definition: gridfactory.hh:30
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:246
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:346