3 #ifndef DUNE_IDENTITYGRIDENTITY_HH
4 #define DUNE_IDENTITYGRIDENTITY_HH
10 #include <dune/grid/common/grid.hh>
17 template<
int codim,
int dim,
class Gr
idImp>
20 template<
int codim,
class Gr
idImp>
23 template<
int codim, PartitionIteratorType pitype,
class Gr
idImp>
26 template<
class Gr
idImp>
29 template<
class Gr
idImp>
32 template<
class Gr
idImp>
37 template<
class Gr
id >
42 template<
int codim,
int dim,
class Gr
idImp>
44 public GridImp::template Codim<codim>::Entity
49 enum {
CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension + codim};
52 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer
HostGridEntityPointer;
56 template<
class HostGr
idEntityPo
inter >
58 GridImp::template Codim<codim>::Entity (
IdentityGridEntity<codim, dim, const GridImp>(identityGrid,hostEntity)),
59 identityGrid_(identityGrid)
64 template<
class HostGr
idEntityPo
inter >
66 this->realEntity.setToTarget(hostEntity);
72 return this->realEntity.hostEntity_;
78 const GridImp* identityGrid_;
94 template<
int codim,
int dim,
class Gr
idImp>
95 class IdentityGridEntity :
96 public EntityDefaultImplementation <codim,dim,GridImp,IdentityGridEntity>
100 template <
class Gr
idImp_>
103 template <
class Gr
idImp_>
106 template <
class Gr
idImp_>
109 template <
class Gr
idImp_>
119 typedef typename GridImp::ctype ctype;
122 enum {CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension + codim};
125 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer HostGridEntityPointer;
130 typedef typename GridImp::template Codim<codim>::Geometry
Geometry;
133 typedef typename GridImp::template Codim<codim>::EntitySeed
EntitySeed;
136 template<
class HostGr
idEntityPo
inter >
139 identityGrid_(identityGrid)
146 identityGrid_(original.identityGrid_)
153 if (
this != &original)
155 identityGrid_ = original.identityGrid_;
188 template<
int cc>
int count ()
const {
206 template<
class HostGr
idEntityPo
inter >
207 void setToTarget(
const HostGridEntityPointer& target)
213 const GridImp* identityGrid_;
233 template<
int dim,
class Gr
idImp>
235 public EntityDefaultImplementation<0,dim,GridImp, IdentityGridEntity>
242 enum {CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension};
245 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer
HostGridEntityPointer;
247 typedef typename GridImp::template Codim<0>::Geometry
Geometry;
261 typedef typename GridImp::template Codim<0>::EntitySeed
EntitySeed;
264 template<
class HostGr
idEntityPo
inter >
266 identityGrid_(identityGrid),
273 identityGrid_(original.identityGrid_),
281 if (
this != &original)
283 identityGrid_ = original.identityGrid_;
333 typename GridImp::template Codim<cc>::EntityPointer
subEntity (
int i)
const {
414 if (identityGrid_->adaptationStep!=GridImp::adaptDone)
418 int index = identityGrid_->levelIndexSet(level).index(*
this);
419 return identityGrid_->refinementMark_[
level][index];
436 template<
class HostGr
idEntityPo
inter >
451 typedef typename GridImp::ctype ctype;
GridImp::template Codim< 0 >::LocalGeometry LocalGeometry
Definition: identitygridentity.hh:249
int count() const
Return the number of subEntities of codimension cc.
Definition: identitygridentity.hh:323
IdentityGridMakeableEntity(const GridImp *identityGrid, const HostGridEntityPointer &hostEntity)
Definition: identitygridentity.hh:57
Definition: identitygridindexsets.hh:172
Geometry geometry() const
geometry of this entity
Definition: identitygridentity.hh:194
IdentityGridLevelIntersectionIterator< GridImp > LevelIntersectionIterator
The Iterator over intersections on this level.
Definition: identitygridentity.hh:252
IdentityGridLeafIntersectionIterator< GridImp > LeafIntersectionIterator
The Iterator over intersections on the leaf level.
Definition: identitygridentity.hh:255
void setToTarget(const HostGridEntityPointer &hostEntity)
Definition: identitygridentity.hh:65
int count() const
Definition: identitygridentity.hh:188
IdentityGridLevelIntersectionIterator< GridImp > ilevelend() const
Reference to one past the last neighbor.
Definition: identitygridentity.hh:346
bool hasFather() const
returns true if father entity exists
Definition: identitygridentity.hh:162
const GridImp * identityGrid_
Definition: identitygridentity.hh:443
Definition: identitygridentity.hh:43
GridImp::template Codim< cc >::EntityPointer subEntity(int i) const
Provide access to sub entity i of given codimension. Entities are numbered 0 ... count()-1.
Definition: identitygridentity.hh:333
int level() const
Level of this element.
Definition: identitygridentity.hh:301
PartitionType partitionType() const
The partition type for parallel computing.
Definition: identitygridentity.hh:308
Geometry geometry() const
Geometry of this entity.
Definition: identitygridentity.hh:314
IdentityGridEntity & operator=(const IdentityGridEntity &original)
Definition: identitygridentity.hh:151
GridImp::template Codim< 0 >::EntitySeed EntitySeed
The type of the EntitySeed interface class.
Definition: identitygridentity.hh:261
bool isLeaf() const
returns true if Entity has NO children
Definition: identitygridentity.hh:367
Definition: identitygridentity.hh:49
Definition: identitygridentity.hh:27
Definition: identitygridentity.hh:21
GridImp::HostGridType::Traits::template Codim< CodimInHostGrid >::EntityPointer HostGridEntityPointer
Definition: identitygridentity.hh:245
void setToTarget(const HostGridEntityPointer &target)
Definition: identitygridentity.hh:437
IdentityGridLevelIntersectionIterator< GridImp > ilevelbegin() const
First level intersection.
Definition: identitygridentity.hh:339
IdentityGridEntityPointer< 0, GridImp > father() const
Definition: identitygridentity.hh:374
HostGridEntityPointer hostEntity_
Definition: identitygridentity.hh:200
PartitionType partitionType() const
The partition type for parallel computing.
Definition: identitygridentity.hh:180
IdentityGridHierarchicIterator< GridImp > hend(int maxLevel) const
Returns iterator to one past the last son.
Definition: identitygridentity.hh:405
Iterator over all element neighborsMesh entities of codimension 0 ("elements") allow to visit all nei...
Definition: identitygridentity.hh:30
IdentityGridLeafIntersectionIterator< GridImp > ileafbegin() const
First leaf intersection.
Definition: identitygridentity.hh:353
GridImp::template Codim< codim >::Geometry Geometry
Definition: identitygridentity.hh:130
Definition: identitygridindexsets.hh:84
GridImp::template Codim< codim >::EntitySeed EntitySeed
The type of the EntitySeed interface class.
Definition: identitygridentity.hh:133
IdentityGridHierarchicIterator< GridImp > hbegin(int maxLevel) const
Inter-level access to son elements on higher levels<=maxlevel. This is provided for sparsely stored n...
Definition: identitygridentity.hh:398
HostGridEntityPointer hostEntity_
Definition: identitygridentity.hh:446
GridImp::HostGridType::Traits::template Codim< CodimInHostGrid >::EntityPointer HostGridEntityPointer
Definition: identitygridentity.hh:52
Definition: identitygridindexsets.hh:224
int level() const
level of this element
Definition: identitygridentity.hh:173
bool hasFather() const
returns true if father entity exists
Definition: identitygridentity.hh:290
IdentityGridLeafIntersectionIterator< GridImp > ileafend() const
Reference to one past the last leaf intersection.
Definition: identitygridentity.hh:360
const HostGridEntityPointer & getTarget()
Definition: identitygridentity.hh:71
Iterator over the descendants of an entity.Mesh entities of codimension 0 ("elements") allow to visit...
Definition: identitygridentity.hh:33
IdentityGridEntity(const GridImp *identityGrid, const HostGridEntityPointer &hostEntity)
Constructor for an entity in a given grid level.
Definition: identitygridentity.hh:137
IdentityGridHierarchicIterator< GridImp > HierarchicIterator
Iterator over descendants of the entity.
Definition: identitygridentity.hh:258
IdentityGridEntity(const GridImp *identityGrid, const HostGridEntityPointer &hostEntity)
Constructor for an entity in a given grid level.
Definition: identitygridentity.hh:265
LocalGeometry geometryInFather() const
Location of this element relative to the reference element element of the father. This is sufficient ...
Definition: identitygridentity.hh:388
IdentityGridEntity(const IdentityGridEntity &original)
Definition: identitygridentity.hh:272
EntitySeed seed() const
Create EntitySeed.
Definition: identitygridentity.hh:167
GridImp::template Codim< 0 >::Geometry Geometry
Definition: identitygridentity.hh:247
Definition: identitygridindexsets.hh:18
EntitySeed seed() const
Create EntitySeed.
Definition: identitygridentity.hh:295
bool mightBeCoarsened() const
Definition: identitygridentity.hh:424
The implementation of entities in a IdentityGridA Grid is a container of grid entities. An entity is parametrized by the codimension. An entity of codimension c in dimension d is a d-c dimensional object.
Definition: identitygridentity.hh:18
Definition: identitygridentity.hh:38
IdentityGridEntity & operator=(const IdentityGridEntity &original)
Definition: identitygridentity.hh:279
IdentityGridEntity(const IdentityGridEntity &original)
Definition: identitygridentity.hh:144
Iterator over all entities of a given codimension and level of a grid.
Definition: identitygridentity.hh:24
bool wasRefined() const
Definition: identitygridentity.hh:412