3#ifndef DUNE_POLYHEDRALGRID_IDSET_HH
4#define DUNE_POLYHEDRALGRID_IDSET_HH
6#include <dune/grid/common/indexidset.hh>
10 template <
int dim,
int dimworld,
typename coord_t>
class PolyhedralGrid;
15 template<
int dim,
int dimworld,
typename coord_t >
17 :
public IdSet< PolyhedralGrid< dim, dimworld, coord_t >, PolyhedralGridIdSet< dim, dimworld, coord_t >, std::size_t >
21 typedef typename std::remove_const< Grid >::type::Traits
Traits;
25 typedef IdSet< Grid, This, IdType >
Base;
32 for(
int i=1; i<=dim; ++i )
40 IdType id (
const typename Traits::template Codim< codim >::Entity &entity )
const
42 const int index = entity.seed().index();
53 template<
class Entity >
56 return id< Entity::codimension >( entity );
60 template<
class IntersectionImpl >
61 IdType id (
const Dune::Intersection< const Grid, IntersectionImpl >& intersection )
const
63 return intersection.impl().id();
67 template<
class Entity >
68 IdType subId (
const Entity &entity,
int i,
unsigned int codim )
const
72 else if ( codim == 1 )
73 return id( entity.template subEntity< 1 >( i ) );
74 else if ( codim == dim )
76 return id( entity.template subEntity< dim >( i ) );
80 DUNE_THROW(NotImplemented,
"codimension not available");
PolyhedralGrid< dim, dimworld, coord_t > Grid
Definition: idset.hh:20
PolyhedralGridIdSet(const Grid &grid)
Definition: idset.hh:27
IdType codimOffset_[dim+1]
Definition: idset.hh:88
const Grid & grid_
Definition: idset.hh:86
IdType id(const typename Traits::template Codim< codim >::Entity &entity) const
id meethod for entity and specific codim
Definition: idset.hh:40
const int * globalCellPtr_
Definition: idset.hh:87
IdType id(const Dune::Intersection< const Grid, IntersectionImpl > &intersection) const
id method of all entities
Definition: idset.hh:61
PolyhedralGridIdSet< dim, dimworld, coord_t > This
Definition: idset.hh:24
IdType subId(const Entity &entity, int i, unsigned int codim) const
subId method for entities
Definition: idset.hh:68
IdSet< Grid, This, IdType > Base
Definition: idset.hh:25
std::remove_const< Grid >::type::Traits Traits
Definition: idset.hh:21
IdType id(const Entity &entity) const
id method of all entities
Definition: idset.hh:54
std::size_t IdType
Definition: idset.hh:22
identical grid wrapper
Definition: grid.hh:159
int size(int, int codim) const
obtain number of entites on a level
Definition: grid.hh:427
The namespace Dune is the main namespace for all Dune code.
Definition: common/CartesianIndexMapper.hpp:10