Dune::Entity< 0, dim, GridImp, EntityImp > Class Template Reference
[Entity]

Template specialization of Dune::Entity for Elements (codim==0). More...

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

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

List of all members.

Classes

struct  Codim
 EntityPointer types of the different codimensions. More...

Public Types

typedef EntityImp< 0, dim,
GridImp > 
ImplementationType

Public Member Functions

GeometryType type () const
 Return the name of the reference element. The type can be used to access the Dune::GenericReferenceElement.
EntitySeed seed () const
 Return the entity seed which contains sufficient information to generate the entity again and uses as less memory as possible.

Protected Types

typedef remove_const< GridImp >
::type 
mutableGridImp

Protected Attributes

EntityImp< 0, dim, GridImp > realEntity

Exported types and constants



enum  { codimension = 0 }
enum  { dimension = dim }
enum  { mydimension = dim }
enum  { dimensionworld = GridImp::dimensionworld }
typedef GridImp::template
Codim< 0 >::Geometry 
Geometry
 The geometry type of this entity.
typedef GridImp::template
Codim< 0 >::EntitySeed 
EntitySeed
 The corresponding entity seed (for storage of entities).
typedef GridImp::template
Codim< 0 >::LocalGeometry 
LocalGeometry
 The geometry type of this entity when the geometry is expressed embedded in the father element.
typedef GridImp::template
Codim< 0 >::EntityPointer 
EntityPointer
 The codim==0 EntityPointer type.
typedef
GridImp::LeafIntersectionIterator 
LeafIntersectionIterator
 The LeafIntersectionIterator type.
typedef
GridImp::LevelIntersectionIterator 
LevelIntersectionIterator
 The LevelIntersectionIterator type.
typedef GridImp::HierarchicIterator HierarchicIterator
 The HierarchicIterator type.
typedef GridImp::ctype ctype
 Type used for coordinates.

Exported types and constants



enum  { codimension = cd }
enum  { dimension = dim }
enum  { mydimension = dim-cd }
enum  { dimensionworld = GridImp::dimensionworld }

Protected methods



class GridDefaultImplementation< GridImp::dimension, GridImp::dimensionworld, typename GridImp::ctype, typename GridImp::GridFamily >
class Dune::EntityPointer< GridImp, typename GridImp::GridFamily::Traits::template Codim< 0 >::EntityPointerImpl >
EntityImp< 0, dim, GridImp > & getRealImp ()
 return reference to the real implementation
const EntityImp< 0, dim,
GridImp > & 
getRealImp () const
 return reference to the real implementation
 Entity (const Entity &rhs)
Entityoperator= (const Entity &rhs)

Protected methods



class Dune::EntityPointer< GridImp, typename GridImp::GridFamily::Traits::template Codim< cd >::EntityPointerImpl >

Methods shared by entities of all codimensions



int level () const
PartitionType partitionType () const
const Geometrygeometry () const

Extended interface of entities of codimension 0



template<int cc>
int count () const
 Number of subentities with codimension cc. This method is in principle redundant because this information can be obtained via the reference element of the geometry. It is there for efficiency reasons and to make the interface self-contained.
template<int codim>
Codim< codim >::EntityPointer subEntity (int i) const
 obtain a pointer to a subentity
LeafIntersectionIterator ileafbegin () const
 Access to intersections with neighboring leaf elements. A neighbor is an entity of codimension 0 which has an intersection of codimension 1 in common with this entity. Access to those neighbors is provided using the IntersectionIterator. This method returns an iterator refering to the first neighbor.
LeafIntersectionIterator ileafend () const
 Reference to an IntersectionIterator one past the last intersection.
LevelIntersectionIterator ilevelbegin () const
 Intra-level access to intersections with neighboring elements. A neighbor is an entity of codimension 0 which has an intersection of codimension 1 in common with this entity. Access to those neighbors is provided using the IntersectionIterator. This method returns an iterator refering to the first neighbor.
LevelIntersectionIterator ilevelend () const
 Reference to an IntersectionIterator one past the last intersection.
EntityPointer father () const
 Inter-level access to father entity on the next-coarser grid. The given entity resulted directly from a subdivision of its father entity. For the macro elements dereferencing the EntityPointer is undefined.
bool hasFather () const
 Return true if entity has a father entity which can be accessed using the father() method.
bool isLeaf () const
 Returns true if the entity is contained in the leaf grid.
bool isRegular () const
 Returns true if element is of regular type in red/green type refinement. In bisection or hanging node refinement this is always true.
const LocalGeometrygeometryInFather () const
 Provides information how this element has been subdivided from its father element. The returned LocalGeometry is a model of Dune::Geometry<dimension,dimension,...> mapping from the reference element of the given element to the reference element of the father element. This is sufficient to interpolate all degrees of freedom in the conforming case. Nonconforming may require access to neighbors of father and computations with local coordinates. On the fly case is somewhat inefficient since degrees of freedom may be visited several times. If we store interpolation matrices, this is tolerable. We assume that on-the-fly implementation of interpolation is only done for simple discretizations.
HierarchicIterator hbegin (int maxlevel) const
 Inter-level access to elements that resulted from (recursive) subdivision of this element.
HierarchicIterator hend (int maxlevel) const
 Returns iterator to one past the last son element.
bool isNew () const
 Returns true, if the entity has been created during the last call to adapt().
bool mightVanish () const
 Returns true, if entity might disappear during the next call to adapt(). If the method returns false, the entity is guaranteed to still be present after adaptation.

Interface for the implementor



bool hasBoundaryIntersections () const
 Returns true, if entity has intersections with boundary, see default implementation.
 Entity (const EntityImp< 0, dim, GridImp > &e)
 Copy constructor from EntityImp.

Detailed Description

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

Template specialization of Dune::Entity for Elements (codim==0).

See also:
Dune::Entity (general version) for the full documentation

<int cd, int dim, class GridImp, template<int,int,class> class EntityImp>


Member Typedef Documentation

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

Type used for coordinates.

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::template Codim<0>::EntityPointer Dune::Entity< 0, dim, GridImp, EntityImp >::EntityPointer

The codim==0 EntityPointer type.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::template Codim<0>::EntitySeed Dune::Entity< 0, dim, GridImp, EntityImp >::EntitySeed

The corresponding entity seed (for storage of entities).

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

The geometry type of this entity.

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::HierarchicIterator Dune::Entity< 0, dim, GridImp, EntityImp >::HierarchicIterator

The HierarchicIterator type.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef EntityImp<0,dim,GridImp> Dune::Entity< 0, dim, GridImp, EntityImp >::ImplementationType
template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::LeafIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::LeafIntersectionIterator

The LeafIntersectionIterator type.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::LevelIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::LevelIntersectionIterator

The LevelIntersectionIterator type.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef GridImp::template Codim<0>::LocalGeometry Dune::Entity< 0, dim, GridImp, EntityImp >::LocalGeometry

The geometry type of this entity when the geometry is expressed embedded in the father element.

This differs from Geometry in particular when dim != dimworld, but even when dim == dimworld the implementation may choose to use a different type here.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
typedef remove_const<GridImp>::type Dune::Entity< 0, dim, GridImp, EntityImp >::mutableGridImp [protected]

Member Enumeration Documentation

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

Know your own codimension.

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

Know the grid dimension.

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

Dimensionality of the reference element of the entity.

template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
anonymous enum [inherited]
Enumerator:
dimensionworld 

Know the dimension of world.

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

Know your own codimension.

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

Know the grid's dimension.

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

Know dimension of the entity.

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

Know the world dimension.


Constructor & Destructor Documentation

template<int dim, class GridImp , template< int, int, class > class EntityImp>
Dune::Entity< 0, dim, GridImp, EntityImp >::Entity ( const EntityImp< 0, dim, GridImp > &  e  )  [inline, explicit]

Copy constructor from EntityImp.

template<int dim, class GridImp , template< int, int, class > class EntityImp>
Dune::Entity< 0, dim, GridImp, EntityImp >::Entity ( const Entity< 0, dim, GridImp, EntityImp > &  rhs  )  [inline, protected]

hide copy constructor

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.


Member Function Documentation

template<int dim, class GridImp , template< int, int, class > class EntityImp>
template<int cc>
int Dune::Entity< 0, dim, GridImp, EntityImp >::count (  )  const [inline]

Number of subentities with codimension cc. This method is in principle redundant because this information can be obtained via the reference element of the geometry. It is there for efficiency reasons and to make the interface self-contained.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
EntityPointer Dune::Entity< 0, dim, GridImp, EntityImp >::father (  )  const [inline]

Inter-level access to father entity on the next-coarser grid. The given entity resulted directly from a subdivision of its father entity. For the macro elements dereferencing the EntityPointer is undefined.

Note:
If the partitionType of the Entity is GhostEntity, it is not guaranteed that this method is working or implemented in general. For some grids it might be available, though.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
const Geometry& Dune::Entity< 0, dim, GridImp, EntityImp >::geometry (  )  const [inline]

Each entity encapsulates an object of type Dune::Geometry<dimension-codimension,dimensionworld,...> that gives (among other things) the map from a reference element to world coordinates. This method delivers a const reference to such a geometry.

Note:
Be careful when storing such references. If the state of any object is changed, e.g. an iterator is advanced, there is no guarantee that the reference remains valid.

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
const LocalGeometry& Dune::Entity< 0, dim, GridImp, EntityImp >::geometryInFather (  )  const [inline]

Provides information how this element has been subdivided from its father element. The returned LocalGeometry is a model of Dune::Geometry<dimension,dimension,...> mapping from the reference element of the given element to the reference element of the father element. This is sufficient to interpolate all degrees of freedom in the conforming case. Nonconforming may require access to neighbors of father and computations with local coordinates. On the fly case is somewhat inefficient since degrees of freedom may be visited several times. If we store interpolation matrices, this is tolerable. We assume that on-the-fly implementation of interpolation is only done for simple discretizations.

Note:
If the partitionType of the Entity is GhostEntity, it is not guaranteed that this method is working or implemented in general. For some grids it might be available, though.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
EntityImp<0,dim,GridImp>& Dune::Entity< 0, dim, GridImp, EntityImp >::getRealImp (  )  [inline, protected]

return reference to the real implementation

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
const EntityImp<0,dim,GridImp>& Dune::Entity< 0, dim, GridImp, EntityImp >::getRealImp (  )  const [inline, protected]

return reference to the real implementation

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::hasBoundaryIntersections (  )  const [inline]

Returns true, if entity has intersections with boundary, see default implementation.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::hasFather (  )  const [inline]

Return true if entity has a father entity which can be accessed using the father() method.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
HierarchicIterator Dune::Entity< 0, dim, GridImp, EntityImp >::hbegin ( int  maxlevel  )  const [inline]

Inter-level access to elements that resulted from (recursive) subdivision of this element.

Parameters:
[in] maxlevel Iterator does not stop at elements with level greater than maxlevel.
Returns:
Iterator to the first son (level is not greater than maxlevel)
Note:
If the partitionType of the Entity is GhostEntity, it is not guaranteed that this method is working or implemented in general. For some grids it might be available, though.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
HierarchicIterator Dune::Entity< 0, dim, GridImp, EntityImp >::hend ( int  maxlevel  )  const [inline]

Returns iterator to one past the last son element.

Note:
If the partitionType of the Entity is GhostEntity, it is not guaranteed that this method is working or implemented in general. For some grids it might be available, though.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
LeafIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::ileafbegin (  )  const [inline]

Access to intersections with neighboring leaf elements. A neighbor is an entity of codimension 0 which has an intersection of codimension 1 in common with this entity. Access to those neighbors is provided using the IntersectionIterator. This method returns an iterator refering to the first neighbor.

Note:
If the partitionType of the Entity is GhostEntity, this method might give you only one neighbor, which is the interior Entity the GhostEntity is connected to.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
LeafIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::ileafend (  )  const [inline]

Reference to an IntersectionIterator one past the last intersection.

Note:
If the partitionType of the Entity is GhostEntity, this method might give you only one neighbor, which is the interior Entity the GhostEntity is connected to.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
LevelIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::ilevelbegin (  )  const [inline]

Intra-level access to intersections with neighboring elements. A neighbor is an entity of codimension 0 which has an intersection of codimension 1 in common with this entity. Access to those neighbors is provided using the IntersectionIterator. This method returns an iterator refering to the first neighbor.

Note:
If the partitionType of the Entity is GhostEntity, this method might give you only one neighbor, which is the interior Entity the GhostEntity is connected to.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
LevelIntersectionIterator Dune::Entity< 0, dim, GridImp, EntityImp >::ilevelend (  )  const [inline]

Reference to an IntersectionIterator one past the last intersection.

Note:
If the partitionType of the Entity is GhostEntity, this method might give you only one neighbor, which is the interior Entity the GhostEntity is connected to.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::isLeaf (  )  const [inline]

Returns true if the entity is contained in the leaf grid.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::isNew (  )  const [inline]

Returns true, if the entity has been created during the last call to adapt().

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::isRegular (  )  const [inline]

Returns true if element is of regular type in red/green type refinement. In bisection or hanging node refinement this is always true.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
int Dune::Entity< 0, dim, GridImp, EntityImp >::level (  )  const [inline]
template<int dim, class GridImp , template< int, int, class > class EntityImp>
bool Dune::Entity< 0, dim, GridImp, EntityImp >::mightVanish (  )  const [inline]

Returns true, if entity might disappear during the next call to adapt(). If the method returns false, the entity is guaranteed to still be present after adaptation.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
Entity& Dune::Entity< 0, dim, GridImp, EntityImp >::operator= ( const Entity< 0, dim, GridImp, EntityImp > &  rhs  )  [inline, protected]
template<int dim, class GridImp , template< int, int, class > class EntityImp>
PartitionType Dune::Entity< 0, dim, GridImp, EntityImp >::partitionType (  )  const [inline]

Partition type of this entity.

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
EntitySeed Dune::Entity< 0, dim, GridImp, EntityImp >::seed (  )  const [inline]

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

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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

template<int dim, class GridImp , template< int, int, class > class EntityImp>
template<int codim>
Codim< codim >::EntityPointer Dune::Entity< 0, dim, GridImp, EntityImp >::subEntity ( int  i  )  const [inline]

obtain a pointer to a subentity

Template Parameters:
codim codimension of the desired subentity
Parameters:
[in] i number of the subentity (in generic numbering)
Returns:
an EntityPointer to the specified subentity
Note:
The subentities are numbered 0, ..., count< codim >-1

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

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

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

Reimplemented from Dune::Entity< cd, dim, GridImp, EntityImp >.

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


Friends And Related Function Documentation

template<int dim, class GridImp , template< int, int, class > class EntityImp>
friend class Dune::EntityPointer< GridImp,typename GridImp::GridFamily::Traits::template Codim< 0 >::EntityPointerImpl > [friend]
template<int cd, int dim, class GridImp, template< int, int, class > class EntityImp>
friend class Dune::EntityPointer< GridImp,typename GridImp::GridFamily::Traits::template Codim< cd >::EntityPointerImpl > [friend, inherited]
template<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 dim, class GridImp , template< int, int, class > class EntityImp>
EntityImp<0,dim,GridImp> Dune::Entity< 0, dim, GridImp, EntityImp >::realEntity [protected]

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

Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].