Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout > Class Template Reference
[Mappers]

#include <mcmgmapper.hh>

Inheritance diagram for Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >:

Dune::Mapper< G, MapperImp > List of all members.

Detailed Description

template<typename G, typename IS, template< int > class Layout>
class Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >

Implementation class for a multiple codim and multiple geometry type mapper.

In this implementation of a mapper the entity set used as domain for the map consists of the entities of a subset of codimensions in the given index set. The index set may contain entities of several geometry types. This version is usually not used directly but is used to implement versions for leafwise and levelwise entity sets.

Template parameters are:

G
A Dune grid type.
IS
LeafIndexSet or LevelIndexSet type of the given grid
Layout
A helper class with a method contains(), that returns true for all geometry types that are in the domain of the map. The class should be of the following shape
    template<int dim>
    struct LayoutClass {
        bool contains (Dune::GeometryType gt) {
            // Return true if gt is in the domain of the map
        }
    };


Public Member Functions

 MultipleCodimMultipleGeomTypeMapper (const G &grid, const IS &indexset)
 Construct mapper from grid and one of its index sets.
template<class EntityType>
int map (const EntityType &e) const
 Map entity to array index.
template<int cc>
int map (const typename G::Traits::template Codim< 0 >::Entity &e, int i) const
 Map subentity of codim 0 entity to array index.
int size () const
 Return total number of entities in the entity set managed by the mapper.
template<class EntityType>
bool contains (const EntityType &e, int &result) const
 Returns true if the entity is contained in the index set.
template<int cc>
bool contains (const typename G::Traits::template Codim< 0 >::Entity &e, int i, int &result) const
 Returns true if the entity is contained in the index set.
void update ()
 Recalculates map after mesh adaptation.

Constructor & Destructor Documentation

template<typename G, typename IS, template< int > class Layout>
Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::MultipleCodimMultipleGeomTypeMapper ( const G &  grid,
const IS &  indexset 
) [inline]

Construct mapper from grid and one of its index sets.

Parameters:
grid A Dune grid object.
indexset IndexSet object returned by grid.


Member Function Documentation

template<typename G, typename IS, template< int > class Layout>
template<class EntityType>
int Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::map ( const EntityType &  e  )  const [inline]

Map entity to array index.

Parameters:
e Reference to codim cc entity, where cc is the template parameter of the function.
Returns:
An index in the range 0 ... Max number of entities in set - 1.

Reimplemented from Dune::Mapper< G, MapperImp >.

template<typename G, typename IS, template< int > class Layout>
template<int cc>
int Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::map ( const typename G::Traits::template Codim< 0 >::Entity e,
int  i 
) const [inline]

Map subentity of codim 0 entity to array index.

Parameters:
e Reference to codim 0 entity.
i Number of codim cc subentity of e, where cc is the template parameter of the function.
Returns:
An index in the range 0 ... Max number of entities in set - 1.

Reimplemented from Dune::Mapper< G, MapperImp >.

template<typename G, typename IS, template< int > class Layout>
int Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::size (  )  const [inline]

Return total number of entities in the entity set managed by the mapper.

This number can be used to allocate a vector of data elements associated with the entities of the set. In the parallel case this number is per process (i.e. it may be different in different processes).

Returns:
Size of the entity set.

Reimplemented from Dune::Mapper< G, MapperImp >.

template<typename G, typename IS, template< int > class Layout>
template<class EntityType>
bool Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::contains ( const EntityType &  e,
int &  result 
) const [inline]

Returns true if the entity is contained in the index set.

Parameters:
e Reference to entity
result integer reference where corresponding index is stored if true
Returns:
true if entity is in entity set of the mapper

Reimplemented from Dune::Mapper< G, MapperImp >.

template<typename G, typename IS, template< int > class Layout>
template<int cc>
bool Dune::MultipleCodimMultipleGeomTypeMapper< G, IS, Layout >::contains ( const typename G::Traits::template Codim< 0 >::Entity e,
int  i,
int &  result 
) const [inline]

Returns true if the entity is contained in the index set.

Parameters:
e Reference to codim 0 entity
i subentity number
result integer reference where corresponding index is stored if true
Returns:
true if entity is in entity set of the mapper

Reimplemented from Dune::Mapper< G, MapperImp >.


The documentation for this class was generated from the following file:

Generated on 12 Dec 2007 with Doxygen (ver 1.5.1)