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 
17 namespace Dune
18 {
19 
20  // Forward declarations
21  template<int cd, int dim, class GridImp>
23  template<int cd, PartitionIteratorType pitype, class GridImp >
25  template<int cd, class GridImp >
27  template<int mydim, int coorddim, class GridImp>
29  template<class GridImp>
31  template<class GridImp>
33  template<int codim, PartitionIteratorType, class GridImp>
35  template<int dim, int dimworld, ALU3dGridElementType, class >
36  class ALU3dGrid;
37 
44 template<int cd, int dim, class GridImp>
45 class ALU3dGridEntity :
46 public 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 
86 public:
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 
104  ALU3dGridEntity();
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 
154 protected:
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 //***********************
187 template<int dim, class GridImp>
188 class 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 
235 public:
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 
263  ALU3dGridEntity();
264 
266  ALU3dGridEntity( const EntitySeed& seed );
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 
405  EntitySeed seed() const
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 
431 protected:
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
456 template< 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;
474 public:
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 
529 protected:
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 
557 template<class GridImp>
558 class ALU3dGridEntityPointer<0,GridImp> :
559 public ALU3dGridEntityPointerBase<0,GridImp>
560 {
561 protected:
563 
564  enum { cd = 0 };
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;
586 public:
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 
621  : ALU3dGridEntityPointerBase<cd,GridImp> ()
622  {}
623 };
624 
625 
626 template<int cd, class GridImp>
627 class ALU3dGridEntityPointer :
628 public ALU3dGridEntityPointerBase<cd,GridImp>
629 {
630 protected:
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 
653 public:
656 
658  typedef typename GridImp::template Codim<cd>::Entity Entity;
659 
662 
663 protected:
664  static const int defaultValue = -665; //ALU3dGridEntityPointerType :: defaultValue;
665 
666 public:
668  ALU3dGridEntityPointer(const ALU3dGridEntityType& entity)
669  : ALU3dGridEntityPointerBase<cd,GridImp> ( entity.seed() )
670  {}
671 
674  : ALU3dGridEntityPointerBase<cd,GridImp> ( seed )
675  {}
676 
680  : ALU3dGridEntityPointerBase<cd,GridImp> ()
681  {}
682 
683 protected:
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
Dune::ALU3dGridEntity< 0, dim, GridImp >::Codim::Entity
GridImp::template Codim< cd >::Entity Entity
Definition: entity.hh:253
Dune::ALU3dGridEntityPointer::updateEntityPointer
void updateEntityPointer(HElementType *item, int level)
Definition: entity_inline.hh:326
Dune::ALU3dGridEntityPointer< 0, GridImp >::BaseType
ALU3dGridEntityPointerBase< 0, GridImp > BaseType
Definition: entity.hh:562
Dune::ALU3dGridEntity::seed
EntitySeed seed() const
return seed of entity
Definition: entity.hh:146
Dune::ALU3dGridEntity::geometry
Geometry geometry() const
geometry of this entity
Definition: entity_imp.cc:109
Dune::ALU3dGridEntityPointerBase::ALU3dGridEntitySeedType
ALU3dGridEntitySeed< codimension, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition: entity.hh:489
Dune::ALU3dGridEntity< 0, dim, GridImp >::master
int master() const
return rank number of master process
Definition: entity.hh:426
Dune::ALU3dGridEntity< 0, dim, GridImp >::seed
EntitySeed seed() const
return key for this entity
Definition: entity.hh:405
Dune::ALU3dGridEntityPointer< 0, GridImp >::HElementType
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition: entity.hh:576
Dune::ALU3dGridEntityPointer::ALU3dGridEntityPointer
ALU3dGridEntityPointer()
Definition: entity.hh:679
iterator.hh
Dune::ALU3dGridEntityPointer::dim
Definition: entity.hh:633
Dune::ALU3dGridEntity< 0, dim, GridImp >::Entity
GridImp::template Codim< 0 >::Entity Entity
Definition: entity.hh:244
Dune::ALU3dGridEntityPointerBase::codimension
Definition: entity.hh:475
Dune::ALU3dGridEntity::ImplTraits
ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits
Definition: entity.hh:87
Dune::ALU3dGridEntity< 0, dim, GridImp >::ghost_
BNDFaceType * ghost_
not zero if entity is ghost entity
Definition: entity.hh:442
Dune::ALU3dGridEntity< 0, dim, GridImp >::Geometry
GridImp::template Codim< 0 >::Geometry Geometry
Definition: entity.hh:236
Dune::ALU3dGridEntitySeedBase::item
HElementType * item() const
get item from key
Definition: entityseed.hh:159
Dune::ALU3dGridEntityPointer< 0, GridImp >::Entity
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition: entity.hh:591
Dune::ALU3dGridEntityPointer::defaultValue
static const int defaultValue
Definition: entity.hh:664
Dune::ALU3dGridEntity::setGhost
void setGhost(const HBndSegType &ghost)
setGhost is not valid for this codim
Definition: entity_imp.cc:80
Dune::ALU3dGridEntity< 0, dim, GridImp >::getGhost
const BNDFaceType & getGhost() const
Definition: entity.hh:395
twists.hh
Dune::ALU3dGridEntity::partitionType
PartitionType partitionType() const
return partition type of this entity ( see grid.hh )
Definition: entity.hh:152
Dune::ALU3dGridEntity< 0, dim, GridImp >
Definition: entity.hh:188
Dune::ALU3dGridEntity::Geometry
GridImp::template Codim< cd >::Geometry Geometry
Definition: entity.hh:94
Dune::ALU3dGridEntityPointerBase::Entity
GridImp::template Codim< codimension >::Entity Entity
type of Entity
Definition: entity.hh:478
Dune::ALU3dGridEntityPointer::Comm
GridImp::MPICommunicatorType Comm
Definition: entity.hh:636
Dune::ALU3dGridEntityPointerBase::done
void done()
has to be called when iterator is finished
Definition: entity_inline.hh:283
Dune::ALU3dGridEntityPointerBase::seed_
ALU3dGridEntitySeedType seed_
Definition: entity.hh:543
Dune::ALU3dGridEntity::getItem
const ItemType & getItem() const
Definition: entity.hh:143
entity_inline.hh
Dune::ALU3dImplTraits
Definition: alu3dinclude.hh:259
Dune::ALU3dGridHierarchicIterator
Definition: entity.hh:30
Dune::ALU3dGridEntity::ItemType
ImplTraits::template Codim< dim, cd >::ImplementationType ItemType
Definition: entity.hh:89
Dune::ALU3dGridEntity< 0, dim, GridImp >::LocalGeometry
GridImp::template Codim< 0 >::LocalGeometry LocalGeometry
Definition: entity.hh:237
Dune::ALU3dGridEntity::type
GeometryType type() const
type of geometry of this entity
Definition: entity.hh:113
Dune::ALU3dGridEntityPointer::ALU3dGridEntityPointer
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition: entity.hh:673
Dune::ALU3dGridEntityPointerBase::EntityImp
ALU3dGridEntity< codimension, dim, GridImp > EntityImp
Definition: entity.hh:480
Dune::ALU3dGridEntity< 0, dim, GridImp >::macroId
int macroId() const
return macro id of this entity
Definition: entity.hh:414
Dune::ALU3dGridEntity::HBndSegType
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:91
Dune::ALU3dGridEntityPointerBase::entity_
EntityObject entity_
Definition: entity.hh:546
Dune::ALU3dGridEntitySeed< codimension, GridImp >
Dune::ALU3dGridEntityPointer< 0, GridImp >::ALU3dGridEntityPointer
ALU3dGridEntityPointer(const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition: entity.hh:607
Dune::ALU3dGridLeafIterator
Leaf iterator.
Definition: entity.hh:34
Dune::ALU3dGridEntityPointer< cdim, GridImp >::BNDFaceType
ImplTraits::BNDFaceType BNDFaceType
Definition: entity.hh:646
Dune::ALU3dGridEntity::level
int level() const
level of this element
Definition: entity.hh:149
Dune::ALU3dGridEntity< 0, dim, GridImp >::getItem
const IMPLElementType & getItem() const
Definition: entity.hh:392
Dune::ALU3dGridEntity::EntitySeed
GridImp::template Codim< cd >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:101
Dune::ALU3dGridEntity::Entity
GridImp::template Codim< cd >::Entity Entity
Definition: entity.hh:93
Dune::ALU3dGridEntity< 0, dim, GridImp >::geo_
GeometryImpl geo_
the entity's geometry
Definition: entity.hh:436
Dune::ALU3dGridEntityPointerBase::operator=
ThisType & operator=(const ThisType &org)
assignment operator
Definition: entity_inline.hh:257
Dune::ALU3dGridEntityPointer< 0, GridImp >::Comm
GridImp::MPICommunicatorType Comm
Definition: entity.hh:569
Dune::ALU3dGridEntityPointer< 0, GridImp >::BNDFaceType
ImplTraits::BNDFaceType BNDFaceType
Definition: entity.hh:579
Dune::ALU3dGridEntity::VertexType
ImplTraits::VertexType VertexType
Definition: entity.hh:90
Dune::ALU3dGridEntityPointerBase::updateEntityPointer
void updateEntityPointer(HElementType *item, int level=-1)
Definition: entity_inline.hh:309
Dune::ALU3dGridEntity< 0, dim, GridImp >::hasFather
bool hasFather() const
returns true if father entity exists
Definition: entity.hh:312
Dune::ALU3dGridLevelIterator
Definition: entity.hh:24
alu3dinclude.hh
Dune::ALU3dGridEntityPointerBase::updateGhostPointer
void updateGhostPointer(HBndSegType &ghostFace)
Definition: entity_inline.hh:298
Dune::ALU3dGridEntityPointerBase::ALU3dGridEntityPointerType
ThisType ALU3dGridEntityPointerType
typedef of my type
Definition: entity.hh:483
entityseed.hh
Dune::ALU3dGridEntity::setElement
void setElement(const HItemType &item)
Definition: entity_imp.cc:48
Dune::ALU3dGridEntityPointerBase::dereference
Entity & dereference() const
dereferencing
Definition: entity.hh:514
Dune::ALU3dGridEntityPointerBase::clone
void clone(const ALU3dGridEntityPointerType &org)
Definition: entity_inline.hh:266
alugrid_assert
#define alugrid_assert(EX)
Definition: alugrid_assert.hh:20
Dune::ALU3dGridEntity::HItemType
ImplTraits::template Codim< dim, cd >::InterfaceType HItemType
Definition: entity.hh:88
Dune::ALU3dGridEntityPointerBase::EntityObject
Entity EntityObject
Definition: entity.hh:479
Dune::ALU3dGridEntity::equals
bool equals(const ALU3dGridEntity< cd, dim, GridImp > &org) const
compare 2 elements by comparing the item pointers
Definition: entity.hh:134
entity_imp.cc
Dune::ALU3dGridEntity< 0, dim, GridImp >::EntitySeed
GridImp::template Codim< 0 >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:260
Dune::ALU3dGridEntityPointer::ThisType
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition: entity.hh:632
Dune::ALU3dGridEntityPointer< 0, GridImp >::ALU3dGridEntityPointer
ALU3dGridEntityPointer(const ALU3dGridEntityType &entity)
Constructor for EntityPointer that points to an entity (interior or ghost)
Definition: entity.hh:613
Dune::ALU3dGridEntity< 0, dim, GridImp >::isGhost
bool isGhost() const
returns true if entity is ghost
Definition: entity.hh:402
Dune::ALU3dGridFactory
Factory class for ALUGrids.
Definition: 3d/grid.hh:84
Dune::ALU3dGridIntersectionIterator
Definition: entity.hh:32
Dune::ALU3dGrid
[ provides Dune::Grid ]
Definition: communication.hh:37
Dune::ALU3dGridEntityPointerBase::level
int level() const
ask for level of entities
Definition: entity.hh:524
Dune::ALU3dGridEntity< 0, dim, GridImp >::Codim::Twist
GridImp::Traits::template Codim< cd >::Twists::Twist Twist
Definition: entity.hh:252
Dune::ALU3dGridEntity::getIndex
int getIndex() const
index is unique within the grid hierarchy and per codim
Definition: entity.hh:156
Dune::ALU3dGridEntityPointer< cdim, GridImp >::HElementType
ImplTraits::template Codim< dim, cd >::InterfaceType HElementType
Definition: entity.hh:643
Dune::ALU3dGridEntitySeed::level
int level() const
return level
Definition: entityseed.hh:281
Dune::ALU3dGridEntity< 0, dim, GridImp >::EntityPointer
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition: entity.hh:246
Dune::ALU3dGridHierarchicIndexSet
hierarchic index set of ALU3dGrid
Definition: 3d/grid.hh:80
Dune::ALU3dGridGeometry
Definition: entity.hh:28
Dune::ALU3dGridEntityPointerBase::equals
bool equals(const ALU3dGridEntityPointerType &i) const
equality
Definition: entity_inline.hh:290
Dune::ALU3dGridEntityPointerBase::ALU3dGridEntityPointerBase
ALU3dGridEntityPointerBase()
default empty constructor
Definition: entity_inline.hh:238
Dune::ALU3dGridEntityPointer::BaseType
ALU3dGridEntityPointerBase< cd, GridImp > BaseType
Definition: entity.hh:631
Dune::ALU3dGridEntitySeedBase::isValid
bool isValid() const
Definition: entityseed.hh:127
Dune::ALU3dGridEntity
Definition: entity.hh:22
Dune::ALU3dGridElementType
ALU3dGridElementType
Definition: topology.hh:12
Dune::LeafIntersectionIteratorWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:250
Dune::ALU3dGridEntityPointer< 0, GridImp >::ThisType
ALU3dGridEntityPointer< cd, GridImp > ThisType
Definition: entity.hh:565
Dune::ALU3dGridEntity::ALU3dGridEntity
ALU3dGridEntity()
Constructor.
Definition: entity_imp.cc:28
Dune::ALU3dGridEntity::geo_
GeometryImpl geo_
the current geometry
Definition: entity.hh:162
Dune::ALU3dGridEntity::EntityPointer
GridImp::template Codim< 0 >::EntityPointer EntityPointer
Definition: entity.hh:97
Dune::ALU3dGridEntity< 0, dim, GridImp >::Codim::EntityPointer
GridImp::template Codim< cd >::EntityPointer EntityPointer
Definition: entity.hh:255
Dune::ALU3dGridEntity::removeElement
void removeElement()
reset item pointer to NULL
Definition: entity.hh:127
Dune::ALU3dGridEntityPointer< 0, GridImp >::ALU3dGridEntityPointer
ALU3dGridEntityPointer()
Definition: entity.hh:620
Dune::ALU3dGridEntityPointer
Definition: entity.hh:26
Dune::LevelIntersectionIteratorWrapper
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:354
Dune::ALU3dGridEntityPointer< cdim, GridImp >::HBndSegType
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:645
Dune::ALU3dGridEntity::seed_
EntitySeed seed_
the information necessary to make sense of this entity
Definition: entity.hh:165
Dune::ALU3dGridEntityPointer< 0, GridImp >::HBndSegType
ImplTraits::HBndSegType HBndSegType
Definition: entity.hh:578
Dune::ALU3dGridEntityPointer< 0, GridImp >::ALU3dGridEntityPointer
ALU3dGridEntityPointer(const HBndSegType &ghostFace)
Constructor for EntityPointer that points to an ghost.
Definition: entity.hh:602
Dune::ALU3dGridEntityPointerBase::entityImp
EntityImp & entityImp() const
Definition: entity.hh:549
Dune::ALU3dGridEntity::convertBndId
PartitionType convertBndId(const HItemType &item) const
convert ALUGrid partition type to dune partition type
Definition: entity_imp.cc:90
Dune::ALU3dGridEntity< 0, dim, GridImp >::item_
IMPLElementType * item_
Definition: entity.hh:439
Dune
Definition: alu3dinclude.hh:79
Dune::ALU3dGridEntityPointer< cdim, GridImp >::Entity
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition: entity.hh:658
Dune::ALU3dGridEntityPointerBase
Definition: entity.hh:457
Dune::ALU3dGridEntityPointerBase::EntityPointerImp
ALU3dGridEntityPointer< codimension, GridImp > EntityPointerImp
make type of entity pointer implementation available in derived classes
Definition: entity.hh:486
Dune::ALU3dGridEntityPointer::dimworld
Definition: entity.hh:634
Dune::ALU3dGridEntity::setEntity
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
Dune::ALU3dGridEntity< 0, dim, GridImp >::weight
int weight() const
weight of entity (ie number of leaf elements underneath)
Definition: entity.hh:420
intersectioniteratorwrapper.hh
Provides proxy classes for IntersectionsIterators.