Dune Core Modules (2.3.1)

entity.hh
1 // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=4 sw=2 sts=2:
3 #ifndef DUNE_ALU3DGRIDENTITY_HH
4 #define DUNE_ALU3DGRIDENTITY_HH
5 
6 // System includes
7 
8 // Dune includes
9 #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>
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< ALU3dGridElementType, class >
36  class ALU3dGrid;
37 
44  template<int cd, int dim, class GridImp>
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,3>
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::elementType, Comm >;
77  friend class ALU3dGridEntity < 0, dim, GridImp >;
78  friend class ALU3dGridLevelIterator < cd, All_Partition, GridImp >;
79 
80  friend class ALU3dGridHierarchicIndexSet< 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 typename GridImp::GridObjectFactoryType FactoryType;
88 
89  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
90  typedef typename ImplTraits::template Codim<cd>::InterfaceType HItemType;
91  typedef typename ImplTraits::template Codim<cd>::ImplementationType ItemType;
92  typedef typename ImplTraits::VertexType VertexType;
93  typedef typename ImplTraits::HBndSegType HBndSegType;
94 
95  typedef typename GridImp::template Codim<cd>::Entity Entity;
96  typedef typename GridImp::template Codim<cd>::Geometry Geometry;
97 
98  typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
99 
101  typedef typename GridImp::template Codim<cd>::EntitySeed EntitySeed;
102 
104  int level () const;
105 
108 
110  ALU3dGridEntity(const FactoryType &factory, int level);
111 
113  ALU3dGridEntity(const ALU3dGridEntity & org);
114 
116  Geometry geometry () const;
117 
119  GeometryType type () const;
120 
121  // set element as normal entity
122  void setElement(const HItemType & item);
123  void setElement(const HItemType & item, const int level, int twist=0, int face = -1);
124 
125  /* set entity from seed */
126  void setElement(const EntitySeed& seed);
127 
129  void setGhost(const HBndSegType &ghost);
130 
132  void removeElement ();
133 
135  void reset ( int l );
136 
138  bool equals ( const ALU3dGridEntity<cd,dim,GridImp> & org ) const;
139 
141  void setEntity ( const ALU3dGridEntity<cd,dim,GridImp> & org );
142 
143  // return reference to internal item
144  const ItemType & getItem () const { return *item_; }
145 
147  const GridImp& grid() const { return factory_.grid(); }
148 
150  const FactoryType& factory() const { return factory_; }
151 
153  EntitySeed seed() const
154  {
155  return EntitySeed( getItem(), level(), twist_, face_ );
156  }
157 
158  private:
160  int getIndex () const;
161 
163  PartitionType convertBndId(const HItemType & item) const ;
164 
166  mutable GeometryImpl geo_;
167 
168  // the factory that created this entity
169  const FactoryType& factory_;
170 
171  // corresponding ALU3dGrid item, here face, edge, or vertex
172  const ItemType * item_;
173 
174  int level_;
175  int gIndex_;
176  int twist_;
177  int face_;
178 
179  mutable PartitionType partitionType_;
180  };
181 
195  //***********************
196  //
197  // --ALU3dGridEntity
198  // --0Entity
199  //
200  //***********************
201  template<int dim, class GridImp>
202  class ALU3dGridEntity<0,dim,GridImp>
203  : public EntityDefaultImplementation<0,dim,GridImp,ALU3dGridEntity>
204  {
205  static const int dimworld = remove_const< GridImp >::type::dimensionworld;
206  static const ALU3dGridElementType elementType = remove_const< GridImp >::type::elementType;
207 
208  typedef typename GridImp::MPICommunicatorType Comm;
209 
210  typedef ALU3dImplTraits< elementType, Comm > ImplTraits;
211  typedef typename ImplTraits::template Codim<0>::InterfaceType HElementType;
212 
213  typedef typename ImplTraits::GEOElementType GEOElementType;
214  typedef typename ImplTraits::BNDFaceType BNDFaceType;
215  typedef typename ImplTraits::IMPLElementType IMPLElementType;
216  typedef typename ImplTraits::HBndSegType HBndSegType;
217 
218  enum { refine_element_t = ImplTraits::refine_element_t };
219  enum { bisect_element_t = ImplTraits::bisect_element_t };
220  enum { coarse_element_t = ImplTraits::coarse_element_t };
221  enum { nosplit_element_t = ImplTraits::nosplit_element_t };
222 
223  typedef typename ImplTraits::MarkRuleType MarkRuleType;
224 
225  friend class ALU3dGrid< elementType, Comm >;
226  friend class ALU3dGridIntersectionIterator < GridImp >;
227  friend class ALU3dGridIntersectionIterator < const GridImp >;
228  friend class ALU3dGridHierarchicIterator < const GridImp >;
229  friend class ALU3dGridHierarchicIterator < GridImp >;
230  friend class ALU3dGridLevelIterator <0,All_Partition,GridImp>;
231  friend class ALU3dGridLevelIterator <1,All_Partition,GridImp>;
232  friend class ALU3dGridLevelIterator <2,All_Partition,GridImp>;
233  friend class ALU3dGridLevelIterator <3,All_Partition,GridImp>;
234  friend class ALU3dGridLeafIterator <0, All_Partition,GridImp>;
235  friend class ALU3dGridLeafIterator <1, All_Partition,GridImp>;
236  friend class ALU3dGridLeafIterator <2, All_Partition,GridImp>;
237  friend class ALU3dGridLeafIterator <3, All_Partition,GridImp>;
238 
239  friend class ALU3dGridHierarchicIndexSet< elementType, Comm >;
240 
241  template< class > friend class ALU3dGridFactory;
242 
243  // type of reference element
244  typedef typename GridImp :: ReferenceElementType ReferenceElementType;
245 
246  typedef typename GridImp::Traits::template Codim< 0 >::GeometryImpl GeometryImpl;
247  typedef typename GridImp::Traits::template Codim< 0 >::LocalGeometryImpl LocalGeometryImpl;
248 
249  public:
250  typedef typename GridImp::GridObjectFactoryType FactoryType;
251 
252  typedef typename GridImp::template Codim< 0 >::Geometry Geometry;
253  typedef typename GridImp::template Codim< 0 >::LocalGeometry LocalGeometry;
255 
259 
260  typedef typename GridImp::template Codim<0>::Entity Entity;
261  typedef typename GridImp::template Codim<0>::EntityPointer EntityPointer;
262 
263  template <int cd>
264  struct Codim
265  {
266  typedef typename GridImp::template Codim<cd>::EntityPointer EntityPointer;
267  };
268 
270  typedef typename GridImp::template Codim<0>::EntitySeed EntitySeed;
271 
273  ALU3dGridEntity(const FactoryType& factory, int level);
274 
277 
279  int level () const ;
280 
282  Geometry geometry () const;
283 
285  GeometryType type () const;
286 
289 
293  template<int cc> int count () const ;
294 
297  template< int codim >
298  typename Codim< codim >::EntityPointer subEntity ( int i ) const;
299 
305  ALU3dGridLeafIntersectionIteratorType ileafbegin () const;
306 
308  ALU3dGridLeafIntersectionIteratorType ileafend () const;
309 
315  ALU3dGridLevelIntersectionIteratorType ilevelbegin () const;
316 
318  ALU3dGridLevelIntersectionIteratorType ilevelend () const;
319 
321  bool isLeaf () const;
322 
325  EntityPointer father () const;
327  bool hasFather () const
328  {
329  return (this->level()>0);
330  }
331 
341  LocalGeometry geometryInFather () const;
342 
347  ALU3dGridHierarchicIterator<GridImp> hbegin (int maxlevel) const;
348 
350  ALU3dGridHierarchicIterator<GridImp> hend (int maxlevel) const;
351 
352  //***************************************************************
353  // Interface for Adaptation
354  //***************************************************************
355 
357  bool isNew () const;
358 
360  bool mightVanish () const;
361 
364 
365  // private method
369  bool mark( int refCount ) const;
370 
372  int getMark() const;
373 
377  void setElement(HElementType &element);
378 
379  /* set entity from seed */
380  void setElement(const EntitySeed& seed);
381 
383  void setGhost(HBndSegType & ghost);
384 
386  void reset ( int l );
387 
389  void removeElement();
390 
392  bool equals ( const ALU3dGridEntity<0,dim,GridImp> & org ) const;
393 
394  void setEntity ( const ALU3dGridEntity<0,dim,GridImp> & org );
395 
399  template<int cc> int getSubIndex (int i) const;
400 
404  int subIndex(int i, unsigned int codim) const;
405 
406  // return reference to internal item
407  const IMPLElementType& getItem () const { return *item_; }
408 
409  // return reference to internal item
410  const BNDFaceType& getGhost () const
411  {
412  assert( isGhost() );
413  return *ghost_;
414  }
415 
417  const GridImp& grid() const { return factory_.grid(); }
418 
420  const FactoryType& factory() const { return factory_; }
421 
423  bool isGhost () const { return ImplTraits::isGhost( ghost_ ); }
424 
426  EntitySeed seed() const
427  {
428  if( isGhost() )
429  return EntitySeed( getGhost () );
430  else
431  return EntitySeed( getItem() );
432  }
433 
434  private:
436  int getIndex () const;
437 
439  mutable GeometryImpl geo_;
440 
441  // corresponding factory
442  const FactoryType& factory_;
443 
444  // the current element of grid
445  mutable IMPLElementType* item_;
446 
448  mutable BNDFaceType* ghost_;
449 
450  int level_;
451  bool isLeaf_;
452 
453  }; // end of ALU3dGridEntity codim = 0
454  //**********************************************************************
455  //
456  // --ALU3dGridEntityPointer
457  // --EntityPointer
458  // --EnPointer
462  template< int codim, class GridImp >
464  {
466  enum { dim = GridImp::dimension };
467  enum { dimworld = GridImp::dimensionworld };
468 
469  typedef typename GridImp::MPICommunicatorType Comm;
470 
471  friend class ALU3dGridEntity<codim,dim,GridImp>;
472  friend class ALU3dGridEntity< 0,dim,GridImp>;
473  friend class ALU3dGrid < GridImp::elementType, Comm >;
474 
475  typedef ALU3dImplTraits<GridImp::elementType, Comm > ImplTraits;
476  typedef typename ImplTraits::template Codim<codim>::InterfaceType HElementType;
477 
478  typedef typename ImplTraits::HBndSegType HBndSegType;
479  typedef typename ImplTraits::BNDFaceType BNDFaceType;
480  public:
481  typedef typename GridImp::GridObjectFactoryType FactoryType;
482 
483  enum { codimension = codim };
484 
486  typedef typename GridImp::template Codim<codimension>::Entity Entity;
489  typedef typename EntityObject :: ImplementationType EntityImp;
490 
493 
495  typedef ALU3dGridEntityPointer<codimension,GridImp> EntityPointerImp;
496 
498  typedef ALU3dGridEntitySeed<codimension, GridImp> ALU3dGridEntitySeedType;
499 
501  ALU3dGridEntityPointerBase(const FactoryType& factory,
502  const HElementType & item);
503 
505  ALU3dGridEntityPointerBase(const FactoryType& factory,
506  const HElementType & item,
507  const int level,
508  const int twist,
509  const int duneFace
510  );
511 
513  ALU3dGridEntityPointerBase(const FactoryType& factory,
514  const HBndSegType & ghostFace );
515 
517  ALU3dGridEntityPointerBase(const FactoryType& factory,
518  const ALU3dGridEntitySeedType& seed );
519 
522 
525 
527  bool equals (const ALU3dGridEntityPointerType& i) const;
528 
530  ThisType & operator = (const ThisType & org);
531 
533  Entity & dereference () const ;
534 
536  int level () const ;
537 
538  protected:
539  // clones object
540  void clone (const ALU3dGridEntityPointerType & org);
541 
542  // get entity and assign from org.entity
543  void getEntity (const ALU3dGridEntityPointerType & org);
544 
546  void done ();
547 
549  void freeEntity ();
550 
552  const GridImp& grid () const { return factory_.grid(); }
553 
556  ALU3dGridEntityPointerBase(const FactoryType& factory, int level );
557 
558  // update underlying item pointer and set ghost entity
559  void updateGhostPointer( HBndSegType & ghostFace );
560  // update underlying item pointer and set entity
561  void updateEntityPointer( HElementType * item , int level = -1 );
562 
563  // reference to factory
564  const FactoryType& factory_;
565 
566  // key to gererate entity
568 
569  // entity that this EntityPointer points to
570  mutable EntityObject * entity_;
571 
572  // return reference to internal entity implementation
573  EntityImp & entityImp () const {
574  assert( entity_ );
575  return GridImp :: getRealImplementation(*entity_);
576  }
577  };
578 
582  template<class GridImp>
583  class ALU3dGridEntityPointer<0,GridImp> :
584  public ALU3dGridEntityPointerBase<0,GridImp>
585  {
586  protected:
588 
589  enum { cd = 0 };
590  typedef ALU3dGridEntityPointer <cd,GridImp> ThisType;
591  enum { dim = GridImp::dimension };
592  enum { dimworld = GridImp::dimensionworld };
593 
594  typedef typename GridImp::MPICommunicatorType Comm;
595 
596  friend class ALU3dGridEntity<cd,dim,GridImp>;
597  friend class ALU3dGridEntity< 0,dim,GridImp>;
598  friend class ALU3dGrid < GridImp::elementType, Comm >;
599 
600  typedef ALU3dImplTraits<GridImp::elementType, Comm > ImplTraits;
601  typedef typename ImplTraits::template Codim<cd>::InterfaceType HElementType;
602 
603  typedef typename ImplTraits::HBndSegType HBndSegType;
604  typedef typename ImplTraits::BNDFaceType BNDFaceType;
605 
606  typedef ALU3dGridEntity< 0,dim,GridImp> ALU3dGridEntityType ;
607 
608  using BaseType :: seed_;
609  using BaseType :: entity_;
610  using BaseType :: entityImp;
611  using BaseType :: factory_;
612  public:
613  typedef typename GridImp::GridObjectFactoryType FactoryType;
614 
616  typedef ALU3dGridEntitySeed<cd, GridImp> ALU3dGridEntitySeedType;
617 
619  typedef typename GridImp::template Codim<cd>::Entity Entity;
620 
622  typedef ThisType ALU3dGridEntityPointerType;
623 
625  ALU3dGridEntityPointer(const FactoryType& factory,
626  const HElementType & item)
627  : ALU3dGridEntityPointerBase<cd,GridImp> (factory,item) {}
628 
630  ALU3dGridEntityPointer(const FactoryType& factory,
631  const HBndSegType & ghostFace )
632  : ALU3dGridEntityPointerBase<cd,GridImp> (factory,ghostFace) {}
633 
635  ALU3dGridEntityPointer(const FactoryType& factory, const ALU3dGridEntitySeedType& seed)
636  : ALU3dGridEntityPointerBase<cd,GridImp> (factory, seed)
637  {
638  // for ghost entities we have to copy right away
639  if( seed.isGhost() )
640  {
641  assert( entity_ == 0 );
642  entity_ = factory_.template getNewEntity<0> ();
643  assert( entity_ );
644  entityImp().setGhost( *seed.ghost() );
645  }
646  }
647 
650  : ALU3dGridEntityPointerBase<cd,GridImp> (entity.factory(),
651  entity.seed() )
652  {
653  // for ghost entities we have to copy right away
654  if( entity.isGhost() )
655  {
656  assert( entity_ == 0 );
657  entity_ = factory_.template getNewEntity<0> ();
658  assert( entity_ );
659  entityImp().setEntity( entity );
660  }
661  }
662 
665  : ALU3dGridEntityPointerBase<cd,GridImp> (org)
666  {}
667 
668  protected:
671  ALU3dGridEntityPointer(const FactoryType& factory, int level )
672  : ALU3dGridEntityPointerBase<cd,GridImp> (factory,level) {}
673  };
674 
675 
676  template<int cd, class GridImp>
677  class ALU3dGridEntityPointer :
678  public ALU3dGridEntityPointerBase<cd,GridImp>
679  {
680  protected:
681  typedef ALU3dGridEntityPointerBase<cd,GridImp> BaseType ;
682  typedef ALU3dGridEntityPointer <cd,GridImp> ThisType;
683  enum { dim = GridImp::dimension };
684  enum { dimworld = GridImp::dimensionworld };
685 
686  typedef typename GridImp::MPICommunicatorType Comm;
687 
688  friend class ALU3dGridEntity<cd,dim,GridImp>;
689  friend class ALU3dGridEntity< 0,dim,GridImp>;
690  friend class ALU3dGrid < GridImp::elementType, Comm >;
691 
692  typedef ALU3dImplTraits< GridImp::elementType, Comm > ImplTraits;
693  typedef typename ImplTraits::template Codim<cd>::InterfaceType HElementType;
694 
695  typedef typename ImplTraits::HBndSegType HBndSegType;
696  typedef typename ImplTraits::BNDFaceType BNDFaceType;
697  typedef ALU3dGridEntity<cd,dim,GridImp> ALU3dGridEntityType;
698 
699  using BaseType :: seed_;
700  using BaseType :: entity_;
701  using BaseType :: entityImp;
702  using BaseType :: factory_;
703  using BaseType :: getEntity;
704 
705  public:
706  typedef typename GridImp::GridObjectFactoryType FactoryType;
707 
709  typedef ALU3dGridEntitySeed<cd, GridImp> ALU3dGridEntitySeedType;
710 
712  typedef typename GridImp::template Codim<cd>::Entity Entity;
713 
715  typedef ALU3dGridEntityPointer<cd,GridImp> ALU3dGridEntityPointerType;
716 
717  protected:
718  static const int defaultValue = -665; //ALU3dGridEntityPointerType :: defaultValue;
719 
720  public:
722  ALU3dGridEntityPointer(const FactoryType& factory,
723  const int level,
724  const HElementType & item,
725  const int twist = defaultValue,
726  const int duneFace = defaultValue
727  );
728 
730  ALU3dGridEntityPointer(const ALU3dGridEntityType& entity)
731  : ALU3dGridEntityPointerBase<cd,GridImp> (entity.factory(),
732  entity.seed())
733  {}
734 
736  ALU3dGridEntityPointer(const FactoryType& factory, const ALU3dGridEntitySeedType& seed)
737  : ALU3dGridEntityPointerBase<cd,GridImp> ( factory, seed )
738  {}
739 
741  ALU3dGridEntityPointer(const ALU3dGridEntityPointerType & org);
742 
744  Entity & dereference () const ;
745 
747  ThisType & operator = (const ThisType & org);
748 
750  int level () const ;
751 
752  protected:
753  // clones object
754  void clone (const ALU3dGridEntityPointerType & org);
755 
756  void updateEntityPointer( HElementType * item , int level );
757 
760  ALU3dGridEntityPointer(const FactoryType& factory, int level )
761  : ALU3dGridEntityPointerBase<cd,GridImp> (factory,level)
762  {}
763  };
764 
765 } // end namespace Dune
766 
767 #include "entity_inline.hh"
768 
769 #if COMPILE_ALUGRID_INLINE
770  #include "entity_imp.cc"
771 #endif
772 
773 #endif
Definition: entity.hh:464
GridImp::template Codim< codimension >::Entity Entity
type of Entity
Definition: entity.hh:486
void freeEntity()
put entity to entity stack
Definition: entity_inline.hh:440
~ALU3dGridEntityPointerBase()
Destructor.
Definition: entity_inline.hh:426
ThisType ALU3dGridEntityPointerType
typedef of my type
Definition: entity.hh:492
int level() const
ask for level of entities
Definition: entity_inline.hh:475
ALU3dGridEntityPointerBase(const FactoryType &factory, const HElementType &item)
Constructor for EntityPointer that points to an element.
Definition: entity_inline.hh:293
bool equals(const ALU3dGridEntityPointerType &i) const
equality
Definition: entity_inline.hh:453
ALU3dGridEntitySeed< codimension, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition: entity.hh:498
ALU3dGridEntityPointer< codimension, GridImp > EntityPointerImp
make type of entity pointer implementation available in derived classes
Definition: entity.hh:495
Entity & dereference() const
dereferencing
Definition: entity_inline.hh:461
ThisType & operator=(const ThisType &org)
assignment operator
Definition: entity_inline.hh:375
void done()
has to be called when iterator is finished
Definition: entity_inline.hh:432
MakeableInterfaceObject< Entity > EntityObject
underlying EntityImplementation
Definition: entity.hh:488
const GridImp & grid() const
return reference to grid
Definition: entity.hh:552
ALU3dGridEntityPointer(const ALU3dGridEntityPointerType &org)
copy constructor
Definition: entity.hh:664
GridImp::template Codim< cd >::Entity Entity
type of Entity
Definition: entity.hh:619
ALU3dGridEntityPointer(const ALU3dGridEntityType &entity)
Constructor for EntityPointer that points to an entity (interior or ghost)
Definition: entity.hh:649
ALU3dGridEntitySeed< cd, GridImp > ALU3dGridEntitySeedType
type of entity seed
Definition: entity.hh:616
ALU3dGridEntityPointer(const FactoryType &factory, const HBndSegType &ghostFace)
Constructor for EntityPointer that points to an ghost.
Definition: entity.hh:630
ALU3dGridEntityPointer(const FactoryType &factory, int level)
Definition: entity.hh:671
ThisType ALU3dGridEntityPointerType
typedef of my type
Definition: entity.hh:622
ALU3dGridEntityPointer(const FactoryType &factory, const ALU3dGridEntitySeedType &seed)
Constructor for EntityPointer that points to given entity.
Definition: entity.hh:635
Codim< codim >::EntityPointer subEntity(int i) const
bool hasBoundaryIntersections() const
returns true, if entity has intersections with boundary
bool hasFather() const
returns true if father entity exists
Definition: entity.hh:327
GridImp::template Codim< 0 >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:270
Geometry geometry() const
geometry of this entity
ALU3dGridEntity(const FactoryType &factory, int level)
Constructor creating empty Entity.
int getMark() const
return current adaptation mark for this entity
ALU3dGridEntity(const ALU3dGridEntity &org)
copy Constructor
int subIndex(int i, unsigned int codim) const
const FactoryType & factory() const
return reference to factory
Definition: entity.hh:420
EntitySeed seed() const
return key for this entity
Definition: entity.hh:426
bool isGhost() const
returns true if entity is ghost
Definition: entity.hh:423
const GridImp & grid() const
return reference to grid
Definition: entity.hh:417
Definition: entity.hh:47
GeometryType type() const
type of geometry of this entity
Definition: entity_inline.hh:56
void setEntity(const ALU3dGridEntity< cd, dim, GridImp > &org)
set item from other entity, mainly for copy constructor of entity pointer
void removeElement()
reset item pointer to NULL
Definition: entity_inline.hh:22
int level() const
level of this element
Definition: entity_inline.hh:42
PartitionType partitionType() const
return partition type of this entity ( see grid.hh )
Definition: entity_inline.hh:49
void setGhost(const HBndSegType &ghost)
setGhost is not valid for this codim
GridImp::template Codim< cd >::EntitySeed EntitySeed
typedef of my type
Definition: entity.hh:101
const FactoryType & factory() const
return reference to factory
Definition: entity.hh:150
void reset(int l)
reset item pointer to NULL
Definition: entity_inline.hh:12
Geometry geometry() const
geometry of this entity
EntitySeed seed() const
return seed of entity
Definition: entity.hh:153
const GridImp & grid() const
return reference to grid
Definition: entity.hh:147
bool equals(const ALU3dGridEntity< cd, dim, GridImp > &org) const
compare 2 elements by comparing the item pointers
Definition: entity_inline.hh:30
hierarchic index set of ALU3dGrid
Definition: indexsets.hh:44
Definition: iterator.hh:57
Leaf iterator.
Definition: iterator.hh:591
Definition: iterator.hh:510
[ provides Dune::Grid ]
Definition: grid.hh:406
Default Implementations for EntityImp.
Definition: entity.hh:553
Unique label for each type of entities that can occur in DUNE grids.
Definition: type.hh:25
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:239
Class that wraps IntersectionIteratorImp of a grid and gets it's internal object from a object stack ...
Definition: intersectioniteratorwrapper.hh:334
Provides proxy classes for IntersectionsIterators.
Dune namespace.
Definition: alignment.hh:14
@ All_Partition
all entities
Definition: gridenums.hh:135
PartitionType
Attributes used in the generic overlap model.
Definition: gridenums.hh:24
InterfaceType
Parameter to be used for the communication functions.
Definition: gridenums.hh:80
Removes a const qualifier while preserving others.
Definition: typetraits.hh:176
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (May 16, 22:29, 2024)