3 #ifndef DUNE_IDENTITYGRID_INDEXSETS_HH
4 #define DUNE_IDENTITYGRID_INDEXSETS_HH
10 #include <dune/grid/common/indexidset.hh>
17 template<
class Gr
idImp>
19 public IndexSet<GridImp,IdentityGridLevelIndexSet<GridImp> >
23 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
25 enum {
dim = GridImp::dimension};
29 int index (
const typename GridImp::Traits::template Codim<codim>::Entity& e)
const
31 return grid_->hostgrid_->levelIndexSet(
level_).template index<codim>(*
grid_->template getHostEntityPointer<codim>(e));
37 int subIndex (
const typename GridImp::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const
39 return grid_->hostgrid_->levelIndexSet(
level_).subIndex(*
grid_->template getHostEntityPointer<cc>(e), i, codim);
44 int size (
int codim)
const {
45 return grid_->hostgrid_->levelIndexSet(
level_).size(codim);
50 int size (GeometryType type)
const
52 return grid_->hostgrid_->levelIndexSet(
level_).size(type);
57 const std::vector<GeometryType>&
geomTypes (
int codim)
const
59 return grid_->hostgrid_->levelIndexSet(
level_).geomTypes(codim);
63 template<
class EntityType>
66 return grid_->hostgrid_->levelIndexSet(
level_).contains(*
grid_->template getHostEntityPointer<EntityType::codimension>(e));
70 void update(
const GridImp& grid,
int level)
83 template<
class Gr
idImp>
85 public IndexSet<GridImp,IdentityGridLeafIndexSet<GridImp> >
87 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
96 enum {
dim = remove_const<GridImp>::type::dimension};
111 int index (
const typename remove_const<GridImp>::type::template Codim<codim>::Entity& e)
const
113 return grid_->hostgrid_->leafIndexSet().template index<codim>(*
grid_->template getHostEntityPointer<codim>(e));
123 int subIndex (
const typename remove_const<GridImp>::type::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const
125 return grid_->hostgrid_->leafIndexSet().subIndex(*
grid_->template getHostEntityPointer<cc>(e),i, codim);
130 int size (GeometryType type)
const
132 return grid_->hostgrid_->leafIndexSet().size(type);
139 return grid_->hostgrid_->leafIndexSet().size(codim);
144 const std::vector<GeometryType>&
geomTypes (
int codim)
const
146 return grid_->hostgrid_->leafIndexSet().geomTypes(codim);
150 template<
class EntityType>
153 return grid_->hostgrid_->leafIndexSet().contains(*
grid_->template getHostEntityPointer<EntityType::codimension>(e));
171 template <
class Gr
idImp>
173 public IdSet<GridImp,IdentityGridGlobalIdSet<GridImp>,
174 typename remove_const<GridImp>::type::HostGridType::Traits::GlobalIdSet::IdType>
177 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
185 typedef typename HostGrid::Traits::GlobalIdSet::IdType
IdType;
194 IdType id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
197 return grid_->hostgrid_->globalIdSet().id(*
grid_->getRealImplementation(e).hostEntity_);
206 IdType subId (
const typename remove_const<GridImp>::type::Traits::template Codim<0>::Entity& e,
int i,
int codim)
const
209 return grid_->hostgrid_->globalIdSet().subId(*
grid_->getRealImplementation(e).hostEntity_,i, codim);
223 template<
class Gr
idImp>
225 public IdSet<GridImp,IdentityGridLocalIdSet<GridImp>,
226 typename remove_const<GridImp>::type::HostGridType::Traits::LocalIdSet::IdType>
230 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
235 typedef typename HostGrid::Traits::LocalIdSet::IdType
IdType;
248 IdType id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
251 return grid_->hostgrid_->localIdSet().id(*
grid_->getRealImplementation(e).hostEntity_);
260 IdType subId (
const typename remove_const<GridImp>::type::template Codim<0>::Entity& e,
int i,
int codim)
const
263 return grid_->hostgrid_->localIdSet().subId(*
grid_->getRealImplementation(e).hostEntity_,i,codim);
Definition: identitygridindexsets.hh:172
IdType id(const typename remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:248
Definition: identitygridindexsets.hh:25
IdentityGridLocalIdSet(const GridImp &g)
constructor stores reference to a grid
Definition: identitygridindexsets.hh:239
int index(const typename remove_const< GridImp >::type::template Codim< codim >::Entity &e) const
get index of an entity
Definition: identitygridindexsets.hh:111
int size(GeometryType type) const
get number of entities of given type
Definition: identitygridindexsets.hh:130
int size(int codim) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:44
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:64
int index(const typename GridImp::Traits::template Codim< codim >::Entity &e) const
get index of an entity
Definition: identitygridindexsets.hh:29
void update(const GridImp &grid)
Definition: identitygridindexsets.hh:159
const std::vector< GeometryType > & geomTypes(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:57
IdentityGridGlobalIdSet(const GridImp &g)
constructor stores reference to a grid
Definition: identitygridindexsets.hh:182
HostGrid::Traits::LocalIdSet::IdType IdType
define the type used for persistent local ids
Definition: identitygridindexsets.hh:235
int subIndex(const typename GridImp::Traits::template Codim< cc >::Entity &e, int i, int codim) const
get index of subEntity of a codim 0 entity
Definition: identitygridindexsets.hh:37
Definition: identitygridindexsets.hh:84
GridImp * grid_
Definition: identitygridindexsets.hh:77
int size(int codim) const
get number of entities of given codim
Definition: identitygridindexsets.hh:137
int level_
Definition: identitygridindexsets.hh:79
Definition: identitygridindexsets.hh:224
void update(const GridImp &grid, int level)
Set up the index set.
Definition: identitygridindexsets.hh:70
const GridImp * grid_
Definition: identitygridindexsets.hh:217
remove_const< GridImp >::type::HostGridType HostGrid
Definition: identitygridindexsets.hh:23
HostGrid::Traits::GlobalIdSet::IdType IdType
define the type used for persistent indices
Definition: identitygridindexsets.hh:185
GridImp * grid_
Definition: identitygridindexsets.hh:165
void update()
Definition: identitygridindexsets.hh:268
Definition: identitygridindexsets.hh:96
IdType subId(const typename remove_const< GridImp >::type::Traits::template Codim< 0 >::Entity &e, int i, int codim) const
get id of subEntity
Definition: identitygridindexsets.hh:206
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:151
IdType id(const typename remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:194
const GridImp * grid_
Definition: identitygridindexsets.hh:271
Definition: identitygridindexsets.hh:18
void update()
Definition: identitygridindexsets.hh:214
IdType subId(const typename remove_const< GridImp >::type::template Codim< 0 >::Entity &e, int i, int codim) const
get id of subEntity
Definition: identitygridindexsets.hh:260
int subIndex(const typename remove_const< GridImp >::type::Traits::template Codim< cc >::Entity &e, int i, int codim) const
get index of subEntity of a codim 0 entity
Definition: identitygridindexsets.hh:123
IdentityGridLeafIndexSet(const GridImp &grid)
constructor stores reference to a grid and level
Definition: identitygridindexsets.hh:100
int size(GeometryType type) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:50
const std::vector< GeometryType > & geomTypes(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:144