1 #ifndef DUNE_IDENTITYGRIDENTITY_HH
2 #define DUNE_IDENTITYGRIDENTITY_HH
14 template<
int codim,
int dim,
class Gr
idImp>
17 template<
int codim,
class Gr
idImp>
20 template<
int codim, PartitionIteratorType pitype,
class Gr
idImp>
23 template<
class Gr
idImp>
26 template<
class Gr
idImp>
29 template<
class Gr
idImp>
34 template<
class Gr
id >
39 template<
int codim,
int dim,
class Gr
idImp>
41 public GridImp::template Codim<codim>::Entity
46 enum {
CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension + codim};
49 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer
HostGridEntityPointer;
53 template<
class HostGr
idEntityPo
inter >
55 GridImp::template Codim<codim>::Entity (
IdentityGridEntity<codim, dim, const GridImp>(identityGrid,hostEntity)),
56 identityGrid_(identityGrid)
61 template<
class HostGr
idEntityPo
inter >
63 this->realEntity.setToTarget(hostEntity);
69 return this->realEntity.hostEntity_;
75 const GridImp* identityGrid_;
91 template<
int codim,
int dim,
class Gr
idImp>
93 public EntityDefaultImplementation <codim,dim,GridImp,IdentityGridEntity>
97 template <
class Gr
idImp_>
100 template <
class Gr
idImp_>
103 template <
class Gr
idImp_>
106 template <
class Gr
idImp_>
111 friend class HostGridAccess< typename remove_const< GridImp >::type >;
116 typedef typename GridImp::ctype ctype;
119 enum {CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension + codim};
122 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer HostGridEntityPointer;
127 typedef typename GridImp::template Codim<codim>::Geometry
Geometry;
130 typedef typename GridImp::template Codim<codim>::EntitySeed
EntitySeed;
133 template<
class HostGr
idEntityPo
inter >
136 identityGrid_(identityGrid)
143 identityGrid_(original.identityGrid_)
150 if (
this != &original)
152 identityGrid_ = original.identityGrid_;
185 template<
int cc>
int count ()
const{
203 template<
class HostGr
idEntityPo
inter >
204 void setToTarget(
const HostGridEntityPointer& target)
210 const GridImp* identityGrid_;
230 template<
int dim,
class Gr
idImp>
232 public EntityDefaultImplementation<0,dim,GridImp, IdentityGridEntity>
234 friend class HostGridAccess< typename remove_const< GridImp >::type >;
239 enum {CodimInHostGrid = GridImp::HostGridType::dimension - GridImp::dimension};
242 typedef typename GridImp::HostGridType::Traits::template Codim<CodimInHostGrid>::EntityPointer
HostGridEntityPointer;
244 typedef typename GridImp::template Codim<0>::Geometry
Geometry;
258 typedef typename GridImp::template Codim<0>::EntitySeed
EntitySeed;
261 template<
class HostGr
idEntityPo
inter >
263 identityGrid_(identityGrid),
270 identityGrid_(original.identityGrid_),
278 if (
this != &original)
280 identityGrid_ = original.identityGrid_;
330 typename GridImp::template Codim<cc>::EntityPointer
subEntity (
int i)
const{
409 bool wasRefined ()
const
411 if (identityGrid_->adaptationStep!=GridImp::adaptDone)
415 int index = identityGrid_->levelIndexSet(level).index(*
this);
416 return identityGrid_->refinementMark_[
level][index];
421 bool mightBeCoarsened ()
const
433 template<
class HostGr
idEntityPo
inter >
448 typedef typename GridImp::ctype ctype;