3 #ifndef DUNE_POLYHEDRALGRID_INDEXSET_HH 4 #define DUNE_POLYHEDRALGRID_INDEXSET_HH 8 #include <dune/common/typetraits.hh> 10 #include <dune/grid/common/gridenums.hh> 11 #include <dune/grid/common/indexidset.hh> 13 #include <dune/grid/polyhedralgrid/declaration.hh> 21 template<
int dim,
int dimworld >
23 :
public IndexSet< PolyhedralGrid< dim, dimworld >, PolyhedralGridIndexSet< dim, dimworld >, int >
29 typedef IndexSet< GridType, This, int > Base;
31 typedef typename std::remove_const< GridType >::type::Traits Traits;
34 static const int dimension = Traits::dimension;
36 typedef typename Base::IndexType IndexType;
43 template<
class Entity >
44 IndexType index (
const Entity &entity )
const 46 return index< Entity::codimension >( entity );
50 IndexType index (
const typename Traits::template Codim< cd >::Entity &entity )
const 52 return grid().getRealImplementation(entity).index();
55 #if ! DUNE_VERSION_NEWER(DUNE_GRID,2,4) 57 IndexType index (
const typename Traits::template Codim< cd >::EntityPointer &entityPointer )
const 59 return index( *entityPointer );
63 template<
class Entity >
64 IndexType subIndex (
const Entity &entity,
int i,
unsigned int codim )
const 67 return index( entity );
68 else if ( codim == 1 )
69 return index( grid().getRealImplementation( entity ).
template subEntity< 1 > ( i ) );
70 else if ( codim == dimension )
71 return index( grid().getRealImplementation( entity ).
template subEntity< dimension > ( i ) );
74 DUNE_THROW(NotImplemented,
"codimension not available");
75 return IndexType( -1 );
79 IndexType size ( GeometryType type )
const 81 return grid().size( type );
84 int size (
int codim )
const 86 return grid().size( codim );
89 template<
class Entity >
90 bool contains (
const Entity &entity )
const 92 return index(entity) >= 0 && index(entity) < size(Entity::codimension);
95 const std::vector< GeometryType > &geomTypes (
int codim )
const 97 return grid().geomTypes(codim);
100 const std::vector< GeometryType >& types(
int codim)
const 102 return grid().geomTypes(codim);
105 const GridType& grid()
const { assert( grid_ );
return *grid_; }
113 #endif // #ifndef DUNE_POLYHEDRALGRID_INDEXSET_HH Holds the implementation of the CpGrid as a pimple.
Definition: OpmParserIncludes.hpp:42
identical grid wrapper
Definition: declaration.hh:10
Definition: indexset.hh:22