3 #ifndef DUNE_IDENTITYGRID_INDEXSETS_HH 4 #define DUNE_IDENTITYGRID_INDEXSETS_HH 17 template<
class Gr
idImp>
20 IdentityGridLevelIndexSet<GridImp>,
21 typename remove_const<GridImp>::type::HostGridType::LevelGridView::IndexSet::IndexType,
22 typename remove_const<GridImp>::type::HostGridType::LevelGridView::IndexSet::Types
27 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
28 typedef typename HostGrid::LevelGridView::IndexSet::Types
Types;
30 enum {
dim = GridImp::dimension};
34 int index (
const typename GridImp::Traits::template Codim<codim>::Entity& e)
const 36 return grid_->hostgrid_->levelIndexSet(
level_).template index<codim>(
grid_->template getHostEntity<codim>(e));
42 int subIndex (
const typename GridImp::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const 44 return grid_->hostgrid_->levelIndexSet(
level_).subIndex(
grid_->template getHostEntity<cc>(e), i, codim);
49 int size (
int codim)
const {
50 return grid_->hostgrid_->levelIndexSet(
level_).size(codim);
57 return grid_->hostgrid_->levelIndexSet(
level_).size(type);
62 const std::vector<GeometryType>&
geomTypes (
int codim)
const 64 return grid_->hostgrid_->levelIndexSet(
level_).geomTypes(codim);
70 return grid_->hostgrid_->levelIndexSet(
level_).types(codim);
74 template<
class EntityType>
77 return grid_->hostgrid_->levelIndexSet(
level_).contains(
grid_->template getHostEntity<EntityType::codimension>(e));
81 void update(
const GridImp& grid,
int level)
94 template<
class Gr
idImp>
97 IdentityGridLeafIndexSet<GridImp>,
98 typename remove_const<GridImp>::type::HostGridType::LeafGridView::IndexSet::IndexType,
99 typename remove_const<GridImp>::type::HostGridType::LeafGridView::IndexSet::Types
102 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
106 typedef typename HostGrid::LevelGridView::IndexSet::Types
Types;
112 enum {
dim = remove_const<GridImp>::type::dimension};
127 int index (
const typename remove_const<GridImp>::type::template Codim<codim>::Entity& e)
const 129 return grid_->hostgrid_->leafIndexSet().template index<codim>(
grid_->template getHostEntity<codim>(e));
139 int subIndex (
const typename remove_const<GridImp>::type::Traits::template Codim<cc>::Entity& e,
int i,
int codim)
const 141 return grid_->hostgrid_->leafIndexSet().subIndex(
grid_->template getHostEntity<cc>(e),i, codim);
148 return grid_->hostgrid_->leafIndexSet().size(type);
155 return grid_->hostgrid_->leafIndexSet().size(codim);
160 const std::vector<GeometryType>&
geomTypes (
int codim)
const 162 return grid_->hostgrid_->leafIndexSet().geomTypes(codim);
168 return grid_->hostgrid_->leafIndexSet().types(codim);
172 template<
class EntityType>
175 return grid_->hostgrid_->leafIndexSet().contains(
grid_->template getHostEntity<EntityType::codimension>(e));
193 template <
class Gr
idImp>
195 public IdSet<GridImp,IdentityGridGlobalIdSet<GridImp>,
196 typename remove_const<GridImp>::type::HostGridType::Traits::GlobalIdSet::IdType>
199 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
207 typedef typename HostGrid::Traits::GlobalIdSet::IdType
IdType;
216 IdType
id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const 219 return grid_->hostgrid_->globalIdSet().id(
grid_->getRealImplementation(e).hostEntity_);
228 IdType
subId (
const typename remove_const<GridImp>::type::Traits::template Codim<0>::Entity& e,
int i,
int codim)
const 231 return grid_->hostgrid_->globalIdSet().subId(
grid_->getRealImplementation(e).hostEntity_,i, codim);
245 template<
class Gr
idImp>
247 public IdSet<GridImp,IdentityGridLocalIdSet<GridImp>,
248 typename remove_const<GridImp>::type::HostGridType::Traits::LocalIdSet::IdType>
252 typedef typename remove_const<GridImp>::type::HostGridType
HostGrid;
257 typedef typename HostGrid::Traits::LocalIdSet::IdType
IdType;
270 IdType
id (
const typename remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const 273 return grid_->hostgrid_->localIdSet().id(
grid_->getRealImplementation(e).hostEntity_);
282 IdType
subId (
const typename remove_const<GridImp>::type::template Codim<0>::Entity& e,
int i,
int codim)
const 285 return grid_->hostgrid_->localIdSet().subId(
grid_->getRealImplementation(e).hostEntity_,i,codim);
int level_
Definition: identitygridindexsets.hh:90
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:282
Id Set Interface.
Definition: common/grid.hh:362
HostGrid::LevelGridView::IndexSet::Types Types
Definition: identitygridindexsets.hh:106
HostGrid::Traits::LocalIdSet::IdType IdType
define the type used for persistent local ids
Definition: identitygridindexsets.hh:257
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:228
GridImp * grid_
Definition: identitygridindexsets.hh:88
int index(const typename remove_const< GridImp >::type::template Codim< codim >::Entity &e) const
get index of an entity
Definition: identitygridindexsets.hh:127
Types types(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:68
IdType id(const typename remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:270
int size(int codim) const
get number of entities of given codim
Definition: identitygridindexsets.hh:153
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Definition: identitygridindexsets.hh:246
IdentityGridLeafIndexSet(const GridImp &grid)
constructor stores reference to a grid and level
Definition: identitygridindexsets.hh:116
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:139
Definition: identitygridindexsets.hh:30
IdType id(const typename remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:216
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:173
Index Set Interface base class.
Definition: common/grid.hh:361
IdentityGridLocalIdSet(const GridImp &g)
constructor stores reference to a grid
Definition: identitygridindexsets.hh:261
const GridImp * grid_
Definition: identitygridindexsets.hh:293
void update()
Definition: identitygridindexsets.hh:290
int index(const typename GridImp::Traits::template Codim< codim >::Entity &e) const
get index of an entity
Definition: identitygridindexsets.hh:34
const std::vector< GeometryType > & geomTypes(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:62
Definition: identitygridindexsets.hh:18
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:42
void update()
Definition: identitygridindexsets.hh:236
HostGrid::LevelGridView::IndexSet::Types Types
Definition: identitygridindexsets.hh:28
const GridImp * grid_
Definition: identitygridindexsets.hh:239
Provides base classes for index and id sets.
const std::vector< GeometryType > & geomTypes(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:160
int size(int codim) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:49
Definition: identitygridindexsets.hh:95
int size(GeometryType type) const
get number of entities of given type
Definition: identitygridindexsets.hh:146
Definition: identitygridindexsets.hh:194
IdentityGridGlobalIdSet(const GridImp &g)
constructor stores reference to a grid
Definition: identitygridindexsets.hh:204
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:75
void update(const GridImp &grid, int level)
Set up the index set.
Definition: identitygridindexsets.hh:81
remove_const< GridImp >::type::HostGridType HostGrid
Definition: identitygridindexsets.hh:27
HostGrid::Traits::GlobalIdSet::IdType IdType
define the type used for persistent indices
Definition: identitygridindexsets.hh:207
Include standard header files.
Definition: agrid.hh:59
Types types(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:166
int size(GeometryType type) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:55
GridImp * grid_
Definition: identitygridindexsets.hh:187
void update(const GridImp &grid)
Definition: identitygridindexsets.hh:181