Dune::SEntity< 0, dim, GridImp > Class Template Reference

#include <sgrid.hh>

Inheritance diagram for Dune::SEntity< 0, dim, GridImp >:

Dune::SEntityBase< 0, dim, GridImp > Dune::EntityDefaultImplementation< cd, dim, GridImp, EntityImp >

List of all members.


Detailed Description

template<int dim, class GridImp>
class Dune::SEntity< 0, dim, GridImp >

A Grid is a container of grid entities. An entity is parametrized by the codimension. An entity of codimension c in dimension d is a d-c dimensional object.

Entities of codimension 0 ("elements") are defined through template specialization. Note that this specialization has an extended interface compared to the general case

Entities of codimension 0 allow to visit all neighbors, where a neighbor is an entity of codimension 0 which has a common entity of codimension 1 with the entity. These neighbors are accessed via an iterator. This allows the implementation of non-matching meshes. The number of neigbors may be different from the number of faces/edges of an element! A Grid is a container of grid entities. An entity is parametrized by the codimension. An entity of codimension c in dimension d is a d-c dimensional object.

Entities of codimension=0 ("Cells") are defined through template specialization. Note that this specialization has an extended interface compared to the general case


Public Types

enum  
 know your own codimension
enum  
 know your own dimension
enum  
 Know dimension of the entity.
enum  
 know your own dimension of world
typedef ct ctype
 define type used for coordinates in grid module

Public Member Functions

int level () const
 level of this element
int index () const
PartitionType partitionType () const
 only interior entities
const Geometrygeometry () const
 geometry of this entity
template<int cc>
int count () const
template<int cc>
Codim< cc >::EntityPointer entity (int i) const
template<int cc>
int subCompressedIndex (int i) const
 subentity compressed index
template<int cc>
int subCompressedLeafIndex (int i) const
 subentity compressed index
template<int cc>
PersistentIndexType subPersistentIndex (int i) const
 subentity persistent index
IntersectionIterator ibegin () const
IntersectionIterator iend () const
 Reference to one past the last intersection.
EntityPointer father () const
 Inter-level access to father element on coarser grid.
bool isLeaf () const
 return true if the entity is leaf
const LocalGeometry & geometryInFather () const
 Location of this element relative to the reference element element of the father.
HierarchicIterator hbegin (int maxLevel) const
 Inter-level access to son elements on higher levels<=maxLevel.
HierarchicIterator hend (int maxLevel) const
 Returns iterator to one past the last son.
 SEntity (GridImp *_grid, int _l, int _id)
 constructor
void make (int _l, int _id)
 Reinitialization.
int globalIndex () const
 global index is calculated from the index and grid size
PersistentIndexType persistentIndex () const
 globally unique, persistent index
int compressedIndex () const
 consecutive, codim-wise, level-wise index
int compressedLeafIndex () const
 consecutive, codim-wise, level-wise index
GeometryType type () const
 Return the name of the reference element. The type can be used to access the Dune::ReferenceElement.

Protected Attributes

GridImp * grid
 grid containes mapper, geometry, etc.
int l
 level where element is on
int id
 my consecutive id
array< int, dim > z
 my coordinate, number of even components = codim
MakeableGeometry geo
 geometry, is only built on demand
bool builtgeometry
 true if geometry has been constructed

Member Function Documentation

template<int dim, class GridImp>
int Dune::SEntity< 0, dim, GridImp >::index (  )  const [inline]

index is unique and consecutive per level and codim used for access to degrees of freedom

Reimplemented from Dune::SEntityBase< 0, dim, GridImp >.

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

Intra-element access to entities of codimension cc > codim. Return number of entities with codimension cc.

template<int dim, class GridImp>
template<int cc>
SEntity< 0, dim, GridImp >::template Codim< cc >::EntityPointer Dune::SEntity< 0, dim, GridImp >::entity ( int  i  )  const [inline]

Provide access to mesh entity i of given codimension. Entities are numbered 0 ... count<cc>()-1

References Dune::SEntityBase< codim, dim, GridImp >::grid, Dune::SEntityBase< codim, dim, GridImp >::l, and Dune::SEntityBase< codim, dim, GridImp >::z.

template<int dim, class GridImp>
SEntity< 0, dim, GridImp >::IntersectionIterator Dune::SEntity< 0, dim, GridImp >::ibegin (  )  const [inline]

Intra-level access to intersections with neighboring elements. A neighbor is an entity of codimension 0 which has an entity of codimension 1 in commen with this entity. Access to neighbors is provided using iterators. This allows meshes to be nonmatching. Returns iterator referencing the first neighbor.

References Dune::SEntityBase< codim, dim, GridImp >::grid.

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

Inter-level access to father element on coarser grid.

Assumes that meshes are nested.

References Dune::SEntityBase< codim, dim, GridImp >::grid, and Dune::SEntityBase< codim, dim, GridImp >::l.

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

Location of this element relative to the reference element element of the father.

This is sufficient to interpolate all dofs in conforming case. Nonconforming may require access to neighbors of father and computations with local coordinates. On the fly case is somewhat inefficient since dofs are visited several times. If we store interpolation matrices, this is tolerable. We assume that on-the-fly implementation of numerical algorithms is only done for simple discretizations. Assumes that meshes are nested.

template<int dim, class GridImp>
SEntity< 0, dim, GridImp >::HierarchicIterator Dune::SEntity< 0, dim, GridImp >::hbegin ( int  maxLevel  )  const [inline]

Inter-level access to son elements on higher levels<=maxLevel.

This is provided for sparsely stored nested unstructured meshes. Returns iterator to first son.

References Dune::SEntityBase< codim, dim, GridImp >::grid.


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

Generated on 6 Nov 2008 with Doxygen (ver 1.5.6) [logfile].