5#ifndef DUNE_GRID_COMMON_MAPPER_HH
6#define DUNE_GRID_COMMON_MAPPER_HH
10#include <dune/common/bartonnackmanifcheck.hh>
108 template <
typename G,
typename MapperImp,
typename IndexType=
int>
121 template<
class EntityType>
124 CHECK_INTERFACE_IMPLEMENTATION((asImp().map(e)));
125 return asImp().index(e);
138 unsigned int codim)
const
140 CHECK_INTERFACE_IMPLEMENTATION((asImp().map(e,i,codim)));
141 return asImp().subIndex(e,i,codim);
154 CHECK_INTERFACE_IMPLEMENTATION((asImp().
size()));
155 return asImp().size();
166 template<
class EntityType>
167 bool contains (
const EntityType& e, IndexType& result)
const
169 CHECK_INTERFACE_IMPLEMENTATION((asImp().
contains(e,result )));
170 return asImp().contains(e,result );
183 bool contains (
const typename G::Traits::template Codim<0>::Entity& e,
int i,
int cc, IndexType& result)
const
185 CHECK_INTERFACE_IMPLEMENTATION((asImp().
contains(e,i,cc,result)))
186 return asImp().contains(e,i,cc,result);
191 template <
class Gr
idView>
194 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
update(std::forward<GridView>(gridView))));
199 [[deprecated(
"Use update(gridView) instead! Will be removed after release 2.8. Mappers have to implement update(gridView).")]]
202 CHECK_AND_CALL_INTERFACE_IMPLEMENTATION((asImp().
update()));
207 MapperImp& asImp () {
return static_cast<MapperImp &
> (*this);}
209 const MapperImp& asImp ()
const {
return static_cast<const MapperImp &
>(*this);}
214#undef CHECK_INTERFACE_IMPLEMENTATION
215#undef CHECK_AND_CALL_INTERFACE_IMPLEMENTATION
Include standard header files.
Definition: agrid.hh:60
Grid view abstract base class.
Definition: common/gridview.hh:66
Mapper interface.
Definition: mapper.hh:110
auto size() const
Return total number of entities in the entity set managed by the mapper.
Definition: mapper.hh:152
void update(GridView &&gridView)
Reinitialize mapper after grid has been modified.
Definition: mapper.hh:192
void update()
Reinitialize mapper after grid has been modified.
Definition: mapper.hh:200
Index index(const EntityType &e) const
Map entity to array index.
Definition: mapper.hh:122
IndexType Index
Number type used for indices.
Definition: mapper.hh:114
Index subIndex(const typename G::Traits::template Codim< 0 >::Entity &e, int i, unsigned int codim) const
Map subentity i of codim cc of a codim 0 entity to array index.
Definition: mapper.hh:136
bool contains(const typename G::Traits::template Codim< 0 >::Entity &e, int i, int cc, IndexType &result) const
Returns true if the subentity is contained in the index set and at the same time the array index is r...
Definition: mapper.hh:183
bool contains(const EntityType &e, IndexType &result) const
Returns true if the entity is contained in the index set and at the same time the array index is retu...
Definition: mapper.hh:167