3 #ifndef DUNE_IDENTITYGRID_INDEXSETS_HH
4 #define DUNE_IDENTITYGRID_INDEXSETS_HH
17 template<
class Gr
idImp>
20 IdentityGridLevelIndexSet<GridImp>,
21 typename std::remove_const<GridImp>::type::HostGridType::LevelGridView::IndexSet::IndexType,
22 typename std::remove_const<GridImp>::type::HostGridType::LevelGridView::IndexSet::Types
27 typedef typename std::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 std::size_t
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 std::remove_const<GridImp>::type::HostGridType::LeafGridView::IndexSet::IndexType,
99 typename std::remove_const<GridImp>::type::HostGridType::LeafGridView::IndexSet::Types
102 typedef typename std::remove_const<GridImp>::type::HostGridType HostGrid;
106 typedef typename HostGrid::LevelGridView::IndexSet::Types
Types;
112 enum {
dim = std::remove_const<GridImp>::type::dimension};
127 int index (
const typename std::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 std::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);
153 std::size_t
size (
int codim)
const
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 std::remove_const<GridImp>::type::HostGridType::Traits::GlobalIdSet::IdType>
199 typedef typename std::remove_const<GridImp>::type::HostGridType HostGrid;
207 typedef typename HostGrid::Traits::GlobalIdSet::IdType
IdType;
216 IdType id (
const typename std::remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
219 return grid_->hostgrid_->globalIdSet().id(e.impl().hostEntity_);
228 IdType subId (
const typename std::remove_const<GridImp>::type::Traits::template Codim<0>::Entity& e,
int i,
int codim)
const
231 return grid_->hostgrid_->globalIdSet().subId(e.impl().hostEntity_,i, codim);
245 template<
class Gr
idImp>
247 public IdSet<GridImp,IdentityGridLocalIdSet<GridImp>,
248 typename std::remove_const<GridImp>::type::HostGridType::Traits::LocalIdSet::IdType>
252 typedef typename std::remove_const<GridImp>::type::HostGridType HostGrid;
257 typedef typename HostGrid::Traits::LocalIdSet::IdType
IdType;
270 IdType id (
const typename std::remove_const<GridImp>::type::Traits::template Codim<cd>::Entity& e)
const
273 return grid_->hostgrid_->localIdSet().id(e.impl().hostEntity_);
282 IdType subId (
const typename std::remove_const<GridImp>::type::template Codim<0>::Entity& e,
int i,
int codim)
const
285 return grid_->hostgrid_->localIdSet().subId(e.impl().hostEntity_,i,codim);
Provides base classes for index and id sets.
Include standard header files.
Definition: agrid.hh:58
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:130
Index Set Interface base class.
Definition: indexidset.hh:76
Id Set Interface.
Definition: indexidset.hh:450
Definition: identitygridindexsets.hh:24
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:75
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
GridImp * grid_
Definition: identitygridindexsets.hh:88
std::remove_const< GridImp >::type::HostGridType HostGrid
Definition: identitygridindexsets.hh:27
Types types(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:68
std::size_t size(GeometryType type) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:55
HostGrid::LevelGridView::IndexSet::Types Types
Definition: identitygridindexsets.hh:28
std::size_t size(int codim) const
get number of entities of given codim, type and on this level
Definition: identitygridindexsets.hh:49
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
@ dim
Definition: identitygridindexsets.hh:30
int level_
Definition: identitygridindexsets.hh:90
void update(const GridImp &grid, int level)
Set up the index set.
Definition: identitygridindexsets.hh:81
Definition: identitygridindexsets.hh:101
IdentityGridLeafIndexSet(const GridImp &grid)
constructor stores reference to a grid and level
Definition: identitygridindexsets.hh:116
const std::vector< GeometryType > & geomTypes(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:160
std::size_t size(int codim) const
get number of entities of given codim
Definition: identitygridindexsets.hh:153
bool contains(const EntityType &e) const
Return true if the given entity is contained in the index set.
Definition: identitygridindexsets.hh:173
std::size_t size(GeometryType type) const
get number of entities of given type
Definition: identitygridindexsets.hh:146
HostGrid::LevelGridView::IndexSet::Types Types
Definition: identitygridindexsets.hh:106
int index(const typename std::remove_const< GridImp >::type::template Codim< codim >::Entity &e) const
get index of an entity
Definition: identitygridindexsets.hh:127
int subIndex(const typename std::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
Types types(int codim) const
Deliver all geometry types used in this grid.
Definition: identitygridindexsets.hh:166
GridImp * grid_
Definition: identitygridindexsets.hh:187
void update(const GridImp &grid)
Definition: identitygridindexsets.hh:181
@ dim
Definition: identitygridindexsets.hh:112
Definition: identitygridindexsets.hh:197
IdentityGridGlobalIdSet(const GridImp &g)
constructor stores reference to a grid
Definition: identitygridindexsets.hh:204
void update()
Definition: identitygridindexsets.hh:236
const GridImp * grid_
Definition: identitygridindexsets.hh:239
HostGrid::Traits::GlobalIdSet::IdType IdType
define the type used for persistent indices
Definition: identitygridindexsets.hh:207
IdType subId(const typename std::remove_const< GridImp >::type::Traits::template Codim< 0 >::Entity &e, int i, int codim) const
get id of subEntity
Definition: identitygridindexsets.hh:228
IdType id(const typename std::remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:216
Definition: identitygridindexsets.hh:249
IdType subId(const typename std::remove_const< GridImp >::type::template Codim< 0 >::Entity &e, int i, int codim) const
get id of subEntity
Definition: identitygridindexsets.hh:282
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
IdType id(const typename std::remove_const< GridImp >::type::Traits::template Codim< cd >::Entity &e) const
get id of an entity
Definition: identitygridindexsets.hh:270
HostGrid::Traits::LocalIdSet::IdType IdType
define the type used for persistent local ids
Definition: identitygridindexsets.hh:257