1 #ifndef DUNE_IDENTITYGRID_INDEXSETS_HH
2 #define DUNE_IDENTITYGRID_INDEXSETS_HH
8 #include <dune/grid/common/indexidset.hh>
15 template<
class Gr
idImp>
17 public IndexSet<GridImp,IdentityGridLevelIndexSet<GridImp> >
21 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
23 enum {
dim = GridImp::dimension};
27 int index (
const typename GridImp::Traits::template Codim<codim>::Entity& e)
const
29 return grid_->hostgrid_->levelIndexSet(
level_).template index<codim>(*
grid_->template getHostEntityPointer<codim>(e));
35 int subIndex (
const typename GridImp::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const
37 return grid_->hostgrid_->levelIndexSet(
level_).subIndex(*
grid_->template getHostEntityPointer<cc>(e), i, codim);
42 int size (
int codim)
const {
43 return grid_->hostgrid_->levelIndexSet(
level_).size(codim);
48 int size (GeometryType type)
const
50 return grid_->hostgrid_->levelIndexSet(
level_).size(type);
55 const std::vector<GeometryType>&
geomTypes (
int codim)
const
57 return grid_->hostgrid_->levelIndexSet(
level_).geomTypes(codim);
61 template<
class EntityType>
64 return grid_->hostgrid_->levelIndexSet(
level_).contains(*
grid_->template getHostEntityPointer<EntityType::codimension>(e));
68 void update(
const GridImp& grid,
int level)
81 template<
class Gr
idImp>
83 public IndexSet<GridImp,IdentityGridLeafIndexSet<GridImp> >
85 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
94 enum {
dim = remove_const<GridImp>::type::dimension};
109 int index (
const typename remove_const<GridImp>::type::template Codim<codim>::Entity& e)
const
111 return grid_->hostgrid_->leafIndexSet().template index<codim>(*
grid_->template getHostEntityPointer<codim>(e));
121 int subIndex (
const typename remove_const<GridImp>::type::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const
123 return grid_->hostgrid_->leafIndexSet().subIndex(*
grid_->template getHostEntityPointer<cc>(e),i, codim);
128 int size (GeometryType type)
const
130 return grid_->hostgrid_->leafIndexSet().size(type);
137 return grid_->hostgrid_->leafIndexSet().size(codim);
142 const std::vector<GeometryType>&
geomTypes (
int codim)
const
144 return grid_->hostgrid_->leafIndexSet().geomTypes(codim);
148 template<
class EntityType>
151 return grid_->hostgrid_->leafIndexSet().contains(*
grid_->template getHostEntityPointer<EntityType::codimension>(e));
169 template <
class Gr
idImp>
171 public IdSet<GridImp,IdentityGridGlobalIdSet<GridImp>,
172 typename remove_const<GridImp>::type::HostGridType::Traits::GlobalIdSet::IdType>
175 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
183 typedef typename HostGrid::Traits::GlobalIdSet::IdType
IdType;
192 IdType id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
195 return grid_->hostgrid_->globalIdSet().id(*
grid_->getRealImplementation(e).hostEntity_);
204 IdType subId (
const typename remove_const<GridImp>::type::Traits::template Codim<0>::Entity& e,
int i,
int codim)
const
207 return grid_->hostgrid_->globalIdSet().subId(*
grid_->getRealImplementation(e).hostEntity_,i, codim);
221 template<
class Gr
idImp>
223 public IdSet<GridImp,IdentityGridLocalIdSet<GridImp>,
224 typename remove_const<GridImp>::type::HostGridType::Traits::LocalIdSet::IdType>
228 typedef typename remove_const<GridImp>::type::HostGridType HostGrid;
233 typedef typename HostGrid::Traits::LocalIdSet::IdType
IdType;
246 IdType id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
249 return grid_->hostgrid_->localIdSet().id(*
grid_->getRealImplementation(e).hostEntity_);
258 IdType subId (
const typename remove_const<GridImp>::type::template Codim<0>::Entity& e,
int i,
int codim)
const
261 return grid_->hostgrid_->localIdSet().subId(*
grid_->getRealImplementation(e).hostEntity_,i,codim);