3 #ifndef DUNE_GEOGRID_INDEXSETS_HH
4 #define DUNE_GEOGRID_INDEXSETS_HH
8 #include <dune/common/typetraits.hh>
24 template<
class Gr
id,
class HostIndexSet >
26 :
public Dune::IndexSet< Grid, IndexSet< Grid, HostIndexSet >, typename HostIndexSet::IndexType >
31 typedef typename remove_const< Grid >::type::Traits Traits;
33 typedef typename Traits::HostGrid HostGrid;
44 explicit IndexSet (
const HostIndexSet &hostIndexSet )
45 : hostIndexSet_( &hostIndexSet )
49 : hostIndexSet_( other.hostIndexSet_ )
54 hostIndexSet_ = other.hostIndexSet_;
62 IndexType index (
const typename Traits::template Codim< cc >::Entity &entity )
const
64 return Grid::getRealImplementation( entity ).index( hostIndexSet() );
68 IndexType subIndex (
const typename Traits::template Codim< cc >::Entity &entity,
int i,
unsigned int codim )
const
70 return Grid::getRealImplementation( entity ).subIndex( hostIndexSet(), i, codim );
75 return hostIndexSet().size( type );
78 int size (
int codim )
const
80 return hostIndexSet().size( codim );
83 template<
class Entity >
86 return Grid::getRealImplementation( entity ).isContained( hostIndexSet() );
89 const std::vector< GeometryType > &
geomTypes (
int codim )
const
91 return hostIndexSet().geomTypes( codim );
94 operator bool ()
const {
return bool( hostIndexSet_ ); }
97 const HostIndexSet &hostIndexSet ()
const
100 return *hostIndexSet_;
103 const HostIndexSet *hostIndexSet_;
110 #endif // #ifndef DUNE_GEOGRID_INDEXSETS_HH
Base::IndexType IndexType
Definition: geometrygrid/indexsets.hh:38
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Index Set Interface base class.
Definition: common/grid.hh:359
const This & operator=(const This &other)
Definition: geometrygrid/indexsets.hh:52
DUNE-conform implementation of the entityThis class merely changes the template parameters of the ent...
Definition: geometrygrid/entity.hh:49
IndexTypeImp IndexType
The type used for the indices.
Definition: indexidset.hh:85
Provides base classes for index and id sets.
IndexType index(const typename remove_const< GridImp >::type::Traits::template Codim< cc >::Entity &e) const
Map entity to index. The result of calling this method with an entity that is not in the index set is...
Definition: indexidset.hh:107
const std::vector< GeometryType > & geomTypes(int codim) const
Definition: geometrygrid/indexsets.hh:89
IndexType size(GeometryType type) const
Definition: geometrygrid/indexsets.hh:73
IndexSet(const HostIndexSet &hostIndexSet)
Definition: geometrygrid/indexsets.hh:44
int size(int codim) const
Definition: geometrygrid/indexsets.hh:78
static const int dimension
Definition: geometrygrid/indexsets.hh:36
bool contains(const Entity &entity) const
Definition: geometrygrid/indexsets.hh:84
IndexType subIndex(const typename Traits::template Codim< cc >::Entity &entity, int i, unsigned int codim) const
Definition: geometrygrid/indexsets.hh:68
IndexSet(const This &other)
Definition: geometrygrid/indexsets.hh:48
IndexType subIndex(const typename Traits::template Codim< cc >::Entity &e, int i, unsigned int codim) const
Map a subentity to an index.
Definition: indexidset.hh:146
IndexType index(const typename Traits::template Codim< cc >::Entity &entity) const
Definition: geometrygrid/indexsets.hh:62
IndexSet()
Definition: geometrygrid/indexsets.hh:40
Definition: geometrygrid/indexsets.hh:25