Dune::cpgrid::Entity< codim > Class Template Reference

#include <Entity.hpp>

Inheritance diagram for Dune::cpgrid::Entity< codim >:
Inheritance graph

Classes

struct  Codim
 

Public Types

enum  { codimension = codim }
 
enum  { dimension = 3 }
 
enum  { mydimension = dimension - codimension }
 
enum  { dimensionworld = 3 }
 
typedef Entity EntitySeed
 
typedef cpgrid::Geometry< 3-codim, 3 > Geometry
 
typedef Geometry LocalGeometry
 
typedef cpgrid::IntersectionIterator LeafIntersectionIterator
 
typedef cpgrid::IntersectionIterator LevelIntersectionIterator
 
typedef cpgrid::HierarchicIterator HierarchicIterator
 
typedef double ctype
 
enum  { codimension =codim }
 
enum  { InvalidIndex = INT_MAX }
 

Public Member Functions

 Entity ()
 Constructor creating empty entity. More...
 
 Entity (const CpGridData &grid, EntityRep< codim > entityrep)
 Constructor taking a grid and an entity representation. More...
 
 Entity (const CpGridData &grid, int index_arg, bool orientation_arg)
 Constructor taking a grid, entity index, and orientation. More...
 
 Entity (int index_arg, bool orientation_arg)
 Constructor taking a entity index, and orientation. More...
 
bool operator== (const Entity &other) const
 Equality. More...
 
bool operator!= (const Entity &other) const
 Inequality. More...
 
EntitySeed seed () const
 Return an entity seed (light-weight entity). EntitySeed objects are used to obtain an Entity back when combined with the corresponding grid. For CpGrid, EntitySeed and EntityPtr are the same class. More...
 
const Geometrygeometry () const
 Return the geometry of the entity (does not depend on its orientation). More...
 
int level () const
 Return the level of the entity in the grid hierarchy. Level = 0 represents the coarsest grid. More...
 
bool isLeaf () const
 Check if the entity is in the leafview. More...
 
bool isRegular () const
 Refinement is not defined for CpGrid. More...
 
PartitionType partitionType () const
 For now, the grid is serial and the only partitionType() is InteriorEntity. Only needed when distributed_data_ is not empty. More...
 
GeometryType type () const
 Return marker object (GeometryType object) representing the reference element of the entity. Currently, cube type for all entities (cells and vertices). More...
 
unsigned int subEntities (const unsigned int cc) const
 Return the number of all subentities of the entity of a given codimension cc. More...
 
template<int cc>
Codim< cc >::Entity subEntity (int i) const
 Obtain subentity. Example: If cc = 3 and i = 5, it returns the 5th corner/vertex of the entity. More...
 
LevelIntersectionIterator ilevelbegin () const
 Start level-iterator for the cell-cell intersections of this entity. More...
 
LevelIntersectionIterator ilevelend () const
 End level-iterator for the cell-cell intersections of this entity. More...
 
LeafIntersectionIterator ileafbegin () const
 Start leaf-iterator for the cell-cell intersections of this entity. More...
 
LeafIntersectionIterator ileafend () const
 End leaf-iterator for the cell-cell intersections of this entity. More...
 
HierarchicIterator hbegin (int) const
 Iterator begin over the children. [If requested, also over descendants more than one generation away.]. More...
 
HierarchicIterator hend (int) const
 Iterator end over the children/beyond last child iterator. More...
 
bool isNew () const
 Returns true, if the entity has been created during the last call to adapt(). Dummy. More...
 
bool mightVanish () const
 Returns true, if entity might disappear during the next call to adapt(). Dummy. More...
 
bool hasFather () const
 ONLY FOR CELLS (Entity<0>) Check if the entity comes from an LGR, i.e., it has been created via refinement from coarser level. More...
 
Entity< 0 > father () const
 ONLY FOR CELLS (Entity<0>). Get the father Entity, in case entity.hasFather() is true. More...
 
Dune::cpgrid::Geometry< 3, 3 > geometryInFather () const
 Return LocalGeometry representing the embedding of the entity into its father (when hasFather() is true). Map from the entity's reference element into the reference element of its father. Currently, LGR is built via refinement of a block-shaped patch from the coarse grid. So the LocalGeometry of an entity coming from the LGR is one of the refined cells of the unit cube, with suitable amount of cells in each direction. More...
 
bool hasBoundaryIntersections () const
 
const Entityimpl () const
 Access the actual implementation class behind Entity interface class. More...
 
Entityimpl ()
 
bool isValid () const
 
Entity< 0 > getOrigin () const
 
Entity< 0 > getLevelElem () const
 Get equivalent element on the level grid view for an element on the leaf grid view. More...
 
int getLevelCartesianIdx () const
 Get Cartesian Index in the level grid view where the Entity was born. More...
 
template<int cc>
Entity< codim >::template Codim< cc >::Entity subEntity (int i) const
 
void setValue (int index_arg, bool orientation_arg)
 Set entity value. More...
 
int index () const
 The (positive) index of an entity. Not a Dune interface method. More...
 
int signedIndex () const
 The signed index that also tells us the orientation. More...
 
bool orientation () const
 Returns true if the entity has positive orientation. Not a Dune interface method. More...
 
EntityRep opposite () const
 Returns an EntityRep with opposite orientation. More...
 
void increment ()
 Increments the entityrep's index() by one. More...
 
bool operator< (const EntityRep &other) const
 Ordering relation used for maps etc. More...
 
bool operator== (const EntityRep &other) const
 Equality operator. More...
 
bool operator!= (const EntityRep &other) const
 Inequality operator. More...
 

Protected Attributes

const CpGridDatapgrid_
 

Friends

class LevelGlobalIdSet
 
class GlobalIdSet
 
class HierarchicIterator
 
class CpGridData
 

Detailed Description

template<int codim>
class Dune::cpgrid::Entity< codim >
Template Parameters

Member Typedef Documentation

◆ ctype

template<int codim>
typedef double Dune::cpgrid::Entity< codim >::ctype

◆ EntitySeed

template<int codim>
typedef Entity Dune::cpgrid::Entity< codim >::EntitySeed

◆ Geometry

template<int codim>
typedef cpgrid::Geometry<3-codim,3> Dune::cpgrid::Entity< codim >::Geometry

◆ HierarchicIterator

template<int codim>
typedef cpgrid::HierarchicIterator Dune::cpgrid::Entity< codim >::HierarchicIterator

◆ LeafIntersectionIterator

template<int codim>
typedef cpgrid::IntersectionIterator Dune::cpgrid::Entity< codim >::LeafIntersectionIterator

◆ LevelIntersectionIterator

template<int codim>
typedef cpgrid::IntersectionIterator Dune::cpgrid::Entity< codim >::LevelIntersectionIterator

◆ LocalGeometry

template<int codim>
typedef Geometry Dune::cpgrid::Entity< codim >::LocalGeometry

Member Enumeration Documentation

◆ anonymous enum

template<int codim>
anonymous enum
inherited
Enumerator
InvalidIndex 

◆ anonymous enum

template<int codim>
anonymous enum
Enumerator
codimension 

◆ anonymous enum

template<int codim>
anonymous enum
Enumerator
dimension 

◆ anonymous enum

template<int codim>
anonymous enum
Enumerator
mydimension 

◆ anonymous enum

template<int codim>
anonymous enum
Enumerator
dimensionworld 

◆ anonymous enum

template<int codim>
anonymous enum
inherited
Enumerator
codimension 

Constructor & Destructor Documentation

◆ Entity() [1/4]

template<int codim>
Dune::cpgrid::Entity< codim >::Entity ( )
inline

Constructor creating empty entity.

Constructor taking a grid and an integer entity representation. This constructor should probably be removed, since it exposes details of the implementation of

See also
EntityRep, see comment in EntityRep<>::EntityRep(int).

◆ Entity() [2/4]

template<int codim>
Dune::cpgrid::Entity< codim >::Entity ( const CpGridData grid,
EntityRep< codim >  entityrep 
)
inline

Constructor taking a grid and an entity representation.

◆ Entity() [3/4]

template<int codim>
Dune::cpgrid::Entity< codim >::Entity ( const CpGridData grid,
int  index_arg,
bool  orientation_arg 
)
inline

Constructor taking a grid, entity index, and orientation.

◆ Entity() [4/4]

template<int codim>
Dune::cpgrid::Entity< codim >::Entity ( int  index_arg,
bool  orientation_arg 
)
inline

Constructor taking a entity index, and orientation.

Member Function Documentation

◆ father()

template<int codim>
Entity< 0 > Dune::cpgrid::Entity< codim >::father

ONLY FOR CELLS (Entity<0>). Get the father Entity, in case entity.hasFather() is true.

Returns
father-entity

◆ geometry()

template<int codim>
const Entity< codim >::Geometry & Dune::cpgrid::Entity< codim >::geometry

Return the geometry of the entity (does not depend on its orientation).

◆ geometryInFather()

template<int codim>
Dune::cpgrid::Geometry< 3, 3 > Dune::cpgrid::Entity< codim >::geometryInFather

Return LocalGeometry representing the embedding of the entity into its father (when hasFather() is true). Map from the entity's reference element into the reference element of its father. Currently, LGR is built via refinement of a block-shaped patch from the coarse grid. So the LocalGeometry of an entity coming from the LGR is one of the refined cells of the unit cube, with suitable amount of cells in each direction.

◆ getLevelCartesianIdx()

template<int codim>
int Dune::cpgrid::Entity< codim >::getLevelCartesianIdx

Get Cartesian Index in the level grid view where the Entity was born.

◆ getLevelElem()

template<int codim>
Dune::cpgrid::Entity< 0 > Dune::cpgrid::Entity< codim >::getLevelElem

Get equivalent element on the level grid view for an element on the leaf grid view.

◆ getOrigin()

template<int codim>
Dune::cpgrid::Entity< 0 > Dune::cpgrid::Entity< codim >::getOrigin

getOrigin() Returns parent entity in level 0, if the entity was born in any LGR. Otherwise, returns itself.

◆ hasBoundaryIntersections()

template<int codim>
bool Dune::cpgrid::Entity< codim >::hasBoundaryIntersections

Returns true if any of my intersections are on the boundary. Implementation note: This is a slow, computed, function. Could be speeded up by putting boundary info in the CpGrid class.

◆ hasFather()

template<int codim>
bool Dune::cpgrid::Entity< codim >::hasFather

ONLY FOR CELLS (Entity<0>) Check if the entity comes from an LGR, i.e., it has been created via refinement from coarser level.

@TODO: When distributed_data_ is not empty, check whether the father element exists on the local process, which can be used to test whether it is safe to call father.

◆ hbegin()

template<int codim>
HierarchicIterator Dune::cpgrid::Entity< codim >::hbegin ( int  maxLevel) const

Iterator begin over the children. [If requested, also over descendants more than one generation away.].

◆ hend()

template<int codim>
HierarchicIterator Dune::cpgrid::Entity< codim >::hend ( int  maxLevel) const

Iterator end over the children/beyond last child iterator.

Dummy beyond last child iterator.

◆ ileafbegin()

template<int codim>
Entity< codim >::LeafIntersectionIterator Dune::cpgrid::Entity< codim >::ileafbegin
inline

Start leaf-iterator for the cell-cell intersections of this entity.

◆ ileafend()

template<int codim>
Entity< codim >::LeafIntersectionIterator Dune::cpgrid::Entity< codim >::ileafend
inline

End leaf-iterator for the cell-cell intersections of this entity.

◆ ilevelbegin()

template<int codim>
Entity< codim >::LevelIntersectionIterator Dune::cpgrid::Entity< codim >::ilevelbegin
inline

Start level-iterator for the cell-cell intersections of this entity.

◆ ilevelend()

template<int codim>
Entity< codim >::LevelIntersectionIterator Dune::cpgrid::Entity< codim >::ilevelend
inline

End level-iterator for the cell-cell intersections of this entity.

◆ impl() [1/2]

template<int codim>
Entity & Dune::cpgrid::Entity< codim >::impl ( )
inline

◆ impl() [2/2]

template<int codim>
const Entity & Dune::cpgrid::Entity< codim >::impl ( ) const
inline

Access the actual implementation class behind Entity interface class.

Referenced by Dune::cpgrid::Entity< codim >::seed().

◆ increment()

template<int codim>
void Dune::cpgrid::EntityRep< codim >::increment ( )
inlineinherited

◆ index()

◆ isLeaf()

template<int codim>
bool Dune::cpgrid::Entity< codim >::isLeaf

Check if the entity is in the leafview.

   @TODO: Modify the definition to cover serial and parallel cases.
   Serial: an element is a leaf <-> hbegin and hend return the same iterator
   Parallel: true <-> the element is a leaf entity of the global refinement hierarchy. 

◆ isNew()

template<int codim>
bool Dune::cpgrid::Entity< codim >::isNew ( ) const
inline

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

◆ isRegular()

template<int codim>
bool Dune::cpgrid::Entity< codim >::isRegular ( ) const
inline

Refinement is not defined for CpGrid.

◆ isValid()

template<int codim>
bool Dune::cpgrid::Entity< codim >::isValid

isValid method for EntitySeed

Returns
return true if seed is pointing to a valid entity

References Dune::cpgrid::EntityRep< codim >::index().

Referenced by Dune::cpgrid::HierarchicIterator::operator*(), and Dune::cpgrid::HierarchicIterator::operator->().

◆ level()

template<int codim>
int Dune::cpgrid::Entity< codim >::level

Return the level of the entity in the grid hierarchy. Level = 0 represents the coarsest grid.

◆ mightVanish()

template<int codim>
bool Dune::cpgrid::Entity< codim >::mightVanish ( ) const
inline

Returns true, if entity might disappear during the next call to adapt(). Dummy.

◆ operator!=() [1/2]

template<int codim>
bool Dune::cpgrid::Entity< codim >::operator!= ( const Entity< codim > &  other) const
inline

◆ operator!=() [2/2]

template<int codim>
bool Dune::cpgrid::EntityRep< codim >::operator!= ( const EntityRep< codim > &  other) const
inlineinherited

Inequality operator.

Parameters
otherThe other entity representation.
Returns
true if this and the other element are not equal.

References Dune::cpgrid::EntityRep< codim >::operator==().

◆ operator<()

template<int codim>
bool Dune::cpgrid::EntityRep< codim >::operator< ( const EntityRep< codim > &  other) const
inlineinherited

Ordering relation used for maps etc.

Sorting on index and then orientation, with positive orientations first.

Parameters
otherThe other entity representation.
Returns
true if this element is less than the other.

References Dune::cpgrid::EntityRep< codim >::index(), and Dune::cpgrid::EntityRep< codim >::orientation().

◆ operator==() [1/2]

template<int codim>
bool Dune::cpgrid::Entity< codim >::operator== ( const Entity< codim > &  other) const
inline

◆ operator==() [2/2]

template<int codim>
bool Dune::cpgrid::EntityRep< codim >::operator== ( const EntityRep< codim > &  other) const
inlineinherited

Equality operator.

Parameters
otherThe other entity representation.
Returns
true if this and the other element are equal.

Referenced by Dune::cpgrid::EntityRep< codim >::operator!=(), and Dune::cpgrid::Entity< codim >::operator==().

◆ opposite()

◆ orientation()

◆ partitionType()

template<int codim>
PartitionType Dune::cpgrid::Entity< codim >::partitionType

◆ seed()

template<int codim>
EntitySeed Dune::cpgrid::Entity< codim >::seed ( ) const
inline

Return an entity seed (light-weight entity). EntitySeed objects are used to obtain an Entity back when combined with the corresponding grid. For CpGrid, EntitySeed and EntityPtr are the same class.

References Dune::cpgrid::Entity< codim >::impl().

◆ setValue()

template<int codim>
void Dune::cpgrid::EntityRep< codim >::setValue ( int  index_arg,
bool  orientation_arg 
)
inlineinherited

Set entity value.

Parameters
indexEntity index
orientationTrue if the entity's orientation is positive.

◆ signedIndex()

template<int codim>
int Dune::cpgrid::EntityRep< codim >::signedIndex ( ) const
inlineinherited

The signed index that also tells us the orientation.

◆ subEntities()

template<int codim>
unsigned int Dune::cpgrid::Entity< codim >::subEntities ( const unsigned int  cc) const

Return the number of all subentities of the entity of a given codimension cc.

◆ subEntity() [1/2]

template<int codim>
template<int cc>
Codim< cc >::Entity Dune::cpgrid::Entity< codim >::subEntity ( int  i) const

Obtain subentity. Example: If cc = 3 and i = 5, it returns the 5th corner/vertex of the entity.

◆ subEntity() [2/2]

template<int codim>
template<int cc>
Entity< codim >::template Codim< cc >::Entity Dune::cpgrid::Entity< codim >::subEntity ( int  i) const

◆ type()

template<int codim>
GeometryType Dune::cpgrid::Entity< codim >::type ( ) const
inline

Return marker object (GeometryType object) representing the reference element of the entity. Currently, cube type for all entities (cells and vertices).

Friends And Related Function Documentation

◆ CpGridData

template<int codim>
friend class CpGridData
friend

◆ GlobalIdSet

template<int codim>
friend class GlobalIdSet
friend

◆ HierarchicIterator

template<int codim>
friend class HierarchicIterator
friend

◆ LevelGlobalIdSet

template<int codim>
friend class LevelGlobalIdSet
friend

Member Data Documentation

◆ pgrid_


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