dune-grid  2.3beta2
Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
Dune::Entity< cd, dim, GridImp, EntityImp > Class Template Reference

Wrapper class for entities. More...

#include <dune/grid/common/entity.hh>

Inheritance diagram for Dune::Entity< cd, dim, GridImp, EntityImp >:
Inheritance graph

Protected Types

typedef EntityImp< cd, dim,
GridImp > 
Implementation

Protected Member Functions

Implementationimpl ()
 Return reference to the real implementation.
const Implementationimpl () const
 Return const reference to the real implementation.
 Entity (const Entity &rhs)
Entityoperator= (const Entity &rhs)

Protected Attributes

Implementation realEntity

Friends

class GridDefaultImplementation< GridImp::dimension, GridImp::dimensionworld, typename GridImp::ctype, typename GridImp::GridFamily >
class DefaultLevelGridView
class DefaultLeafGridView
class Dune::EntityPointer

Exported types and constants

enum  { codimension = cd }
enum  { dimension = dim }
enum  { mydimension = dim-cd }
typedef GridImp::template
Codim< cd >::Geometry 
Geometry
 The corresponding geometry type.
typedef GridImp::template
Codim< cd >::EntitySeed 
EntitySeed
 The corresponding entity seed (for storage of entities)
typedef GridImp::ctype ctype
 coordinate type of the Grid
static const int dimensionworld = GridImp::dimensionworld
 Know the dimension of world.

Methods shared by entities of all codimensions

int level () const
 The level of this entity.
PartitionType partitionType () const
 Partition type of this entity.
Geometry geometry () const
 obtain geometric realization of the entity
GeometryType type () const
 Return the name of the reference element. The type can be used to access the Dune::ReferenceElement.
EntitySeed seed () const
 Return the entity seed which contains sufficient information to generate the entity again and uses as little memory as possible.

Interface for the implementor

 Entity (const EntityImp< cd, dim, GridImp > &e)
 Copy constructor from EntityImp.

Detailed Description

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
class Dune::Entity< cd, dim, GridImp, EntityImp >

Wrapper class for entities.

Template Parameters
cdCodimension of the entity
dimDimension of the grid
GridImpType that is a model of Dune::Grid
EntityImpClass template that is a model of Dune::Entity

Engine Concept

This class wraps a object of type EntityImp and forwards all member function calls to corresponding members of this class. In that sense Entity defines the interface and EntityImp supplies the implementation. For various reasons we do not use an inheritance hierarchy and the Barton-Nackman trick here.

Specialization

The Entity class template is specialized for cd=0 (elements, Dune::Entity<0,dim,GridImp,EntityImp>). This case has an extended interface. The methods defined in the general template are provided by the specialization as well. We did not use inheritance because different implementations for different codimensions may be required and virtual functions had to be avoided.

View concept

Entities can not be created, assigned or otherwise modified outside the interface in the user code. They are only accessible by immutable iterators provided on the corresponding grid class.

The only way to modify the entities of a grid is through grid adaptation which consists of tagging entities (of codimension 0) for refinement and then calling the adapt() method on the grid.

Member Typedef Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
typedef GridImp::ctype Dune::Entity< cd, dim, GridImp, EntityImp >::ctype

coordinate type of the Grid

Deprecated:
"Use Geometry::ctype instead!"
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
typedef GridImp::template Codim<cd>::EntitySeed Dune::Entity< cd, dim, GridImp, EntityImp >::EntitySeed

The corresponding entity seed (for storage of entities)

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
typedef GridImp::template Codim<cd>::Geometry Dune::Entity< cd, dim, GridImp, EntityImp >::Geometry

The corresponding geometry type.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
typedef EntityImp< cd, dim, GridImp > Dune::Entity< cd, dim, GridImp, EntityImp >::Implementation
protected

Member Enumeration Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
anonymous enum
Enumerator:
codimension 

Know your own codimension.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
anonymous enum
Enumerator:
dimension 

Know the grid dimension.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
anonymous enum
Enumerator:
mydimension 

Dimensionality of the reference element of the entity.

Constructor & Destructor Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Dune::Entity< cd, dim, GridImp, EntityImp >::Entity ( const EntityImp< cd, dim, GridImp > &  e)
inlineexplicit

Copy constructor from EntityImp.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Dune::Entity< cd, dim, GridImp, EntityImp >::Entity ( const Entity< cd, dim, GridImp, EntityImp > &  rhs)
inlineprotected

hide copy constructor

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

Member Function Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Geometry Dune::Entity< cd, dim, GridImp, EntityImp >::geometry ( ) const
inline

obtain geometric realization of the entity

Each entity provides an object of type Dune::Geometry< dimension-codimension, dimensionworld, ... > that represents the map from a reference element to world coordinates.

Note
Previously, the geometry was encapsulated in the entity object and a const reference was returned.
The returned geometry object is guaranteed to remain valid until the grid is modified (or deleted).

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

References Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Implementation& Dune::Entity< cd, dim, GridImp, EntityImp >::impl ( )
inlineprotected

Return reference to the real implementation.

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

References Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
const Implementation& Dune::Entity< cd, dim, GridImp, EntityImp >::impl ( ) const
inlineprotected

Return const reference to the real implementation.

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

References Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
int Dune::Entity< cd, dim, GridImp, EntityImp >::level ( ) const
inline
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Entity& Dune::Entity< cd, dim, GridImp, EntityImp >::operator= ( const Entity< cd, dim, GridImp, EntityImp > &  rhs)
inlineprotected
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
PartitionType Dune::Entity< cd, dim, GridImp, EntityImp >::partitionType ( ) const
inline
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
EntitySeed Dune::Entity< cd, dim, GridImp, EntityImp >::seed ( ) const
inline

Return the entity seed which contains sufficient information to generate the entity again and uses as little memory as possible.

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

References Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
GeometryType Dune::Entity< cd, dim, GridImp, EntityImp >::type ( ) const
inline

Return the name of the reference element. The type can be used to access the Dune::ReferenceElement.

Reimplemented in Dune::Entity< 0, dim, GridImp, EntityImp >.

References Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity.

Friends And Related Function Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
friend class DefaultLeafGridView
friend
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
friend class DefaultLevelGridView
friend
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
friend class Dune::EntityPointer
friend
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
friend class GridDefaultImplementation< GridImp::dimension, GridImp::dimensionworld,typename GridImp::ctype,typename GridImp::GridFamily >
friend

Member Data Documentation

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
const int Dune::Entity< cd, dim, GridImp, EntityImp >::dimensionworld = GridImp::dimensionworld
static

Know the dimension of world.

Deprecated:
"Use Geometry::coorddimension instead!"
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
Implementation Dune::Entity< cd, dim, GridImp, EntityImp >::realEntity
protected

Referenced by Dune::Entity< 0, dim, GridImp, EntityImp >::count(), Dune::Entity< 0, dim, GridImp, EntityImp >::father(), Dune::Entity< cd, dim, GridImp, EntityImp >::geometry(), Dune::Entity< 0, dim, GridImp, EntityImp >::geometry(), Dune::Entity< 0, dim, GridImp, EntityImp >::geometryInFather(), Dune::Entity< 0, dim, GridImp, EntityImp >::hasBoundaryIntersections(), Dune::Entity< 0, dim, GridImp, EntityImp >::hasFather(), Dune::Entity< 0, dim, GridImp, EntityImp >::hbegin(), Dune::Entity< 0, dim, GridImp, EntityImp >::hend(), Dune::Entity< 0, dim, GridImp, EntityImp >::ileafbegin(), Dune::Entity< 0, dim, GridImp, EntityImp >::ileafend(), Dune::Entity< 0, dim, GridImp, EntityImp >::ilevelbegin(), Dune::Entity< 0, dim, GridImp, EntityImp >::ilevelend(), Dune::Entity< cd, dim, GridImp, EntityImp >::impl(), Dune::Entity< 0, dim, GridImp, EntityImp >::impl(), Dune::Entity< 0, dim, GridImp, EntityImp >::isLeaf(), Dune::Entity< 0, dim, GridImp, EntityImp >::isNew(), Dune::Entity< 0, dim, GridImp, EntityImp >::isRegular(), Dune::Entity< cd, dim, GridImp, EntityImp >::level(), Dune::Entity< 0, dim, GridImp, EntityImp >::level(), Dune::Entity< 0, dim, GridImp, EntityImp >::mightVanish(), Dune::Entity< cd, dim, GridImp, EntityImp >::operator=(), Dune::Entity< 0, dim, GridImp, EntityImp >::operator=(), Dune::Entity< cd, dim, GridImp, EntityImp >::partitionType(), Dune::Entity< 0, dim, GridImp, EntityImp >::partitionType(), Dune::Entity< cd, dim, GridImp, EntityImp >::seed(), Dune::Entity< 0, dim, GridImp, EntityImp >::seed(), Dune::Entity< 0, dim, GridImp, EntityImp >::subEntity(), Dune::Entity< cd, dim, GridImp, EntityImp >::type(), and Dune::Entity< 0, dim, GridImp, EntityImp >::type().


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