dune-grid 2.9.0
|
Wrapper class for entities. More...
#include <dune/grid/common/entity.hh>
Public Types | |
typedef EntityImp< cd, dim, GridImp > | Implementation |
type of underlying implementation More... | |
Public Member Functions | |
Implementation & | impl () |
access to the underlying implementation More... | |
const Implementation & | impl () const |
access to the underlying implementation More... | |
Protected Attributes | |
Implementation | realEntity |
Related Functions | |
(Note that these are not member functions.) | |
template<int cd, int dim, class GridImp , template< int, int, class > class EntityImp> | |
auto | referenceElement (const Entity< cd, dim, GridImp, EntityImp > &entity) -> decltype(referenceElement< typename GridImp::ctype, GridImp::template Codim< cd >::Geometry::mydimension >(entity.type())) |
Second-level dispatch to select the correct reference element for a grid entity. More... | |
Exported types and constants | |
typedef GridImp::template Codim< cd >::Geometry | Geometry |
The corresponding geometry type. More... | |
typedef GridImp::template Codim< cd >::EntitySeed | EntitySeed |
The corresponding entity seed (for storage of entities) More... | |
static constexpr int | codimension = cd |
Know your own codimension. More... | |
static constexpr int | dimension = dim |
Know the grid dimension. More... | |
static constexpr int | mydimension = dim - cd |
Dimensionality of the reference element of the entity. More... | |
Methods shared by entities of all codimensions | |
int | level () const |
The level of this entity. More... | |
PartitionType | partitionType () const |
Partition type of this entity. More... | |
Geometry | geometry () const |
obtain geometric realization of the entity More... | |
GeometryType | type () const |
Return the name of the reference element. The type can be used to access the Dune::ReferenceElement. More... | |
unsigned int | subEntities (unsigned int codim) const |
Number of subentities for a given codimension. More... | |
EntitySeed | seed () const |
Return the entity seed which contains sufficient information to generate the entity again and uses as little memory as possible. More... | |
bool | operator== (const Entity &other) const |
Compares two entities for equality. More... | |
bool | operator!= (const Entity &other) const |
Compares two entities for inequality. More... | |
Entity () | |
Entity (const Entity &other) | |
Copy constructor from an existing entity. More... | |
Entity (Entity &&other) | |
Move constructor from an existing entity. More... | |
Entity & | operator= (const Entity &other) |
Copy assignment operator from an existing entity. More... | |
Entity & | operator= (Entity &&other) |
Move assignment operator from an existing entity. More... | |
Interface for the implementor | |
Entity (const EntityImp< cd, dim, GridImp > &e) | |
Copy constructor from EntityImp. More... | |
Entity (EntityImp< cd, dim, GridImp > &&e) | |
Move constructor from EntityImp. More... | |
Intersection Range | |
Iterator range for intersections . | |
template<typename GV , typename Entity > | |
IteratorRange<... > | intersections (const GV &gv, const Entity &e) |
Iterates over all Intersections of an Entity with respect to the given GridView. More... | |
Hierarchic Entity range | |
Iterator range for hierarchic access to the more-refined entities that result from the subdivision of a given element. | |
template<typename Entity > | |
IteratorRange<... > | descendantElements (const Entity &e, int maxLevel) |
Iterates over all descendant elements of the given element up to a maximum level. More... | |
Generic entity ranges for non-standard parallel partitions | |
These Entity ranges allow for the maximum flexibility; they are parameterized on both the co(cimension) and the parallel PartitionSet. | |
template<typename E , int codim> | |
IteratorRange<... > | subEntities (const E &e, Codim< codim > c) |
Iterates over all sub-entities of an entity given the codimension of the sub-entities. More... | |
Wrapper class for entities.
cd | Codimension of the entity |
dim | Dimension of the grid |
GridImp | Type that is a model of Dune::Grid |
EntityImp | Class template that is a model of Dune::Entity |
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.
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.
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.
typedef GridImp::template Codim<cd>::EntitySeed Dune::Entity< cd, dim, GridImp, EntityImp >::EntitySeed |
The corresponding entity seed (for storage of entities)
typedef GridImp::template Codim<cd>::Geometry Dune::Entity< cd, dim, GridImp, EntityImp >::Geometry |
The corresponding geometry type.
typedef EntityImp< cd, dim, GridImp > Dune::Entity< cd, dim, GridImp, EntityImp >::Implementation |
type of underlying implementation
|
inline |
|
inline |
Copy constructor from an existing entity.
|
inline |
Move constructor from an existing entity.
|
inline |
Copy constructor from EntityImp.
|
inline |
Move constructor from EntityImp.
|
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.
|
inline |
access to the underlying implementation
|
inline |
access to the underlying implementation
|
inline |
The level of this entity.
|
inline |
Compares two entities for inequality.
|
inline |
Copy assignment operator from an existing entity.
|
inline |
Move assignment operator from an existing entity.
|
inline |
Compares two entities for equality.
|
inline |
Partition type of this entity.
|
inline |
Return the entity seed which contains sufficient information to generate the entity again and uses as little memory as possible.
|
inline |
Number of subentities for a given codimension.
codim | codimension to obtain number of subentities for |
|
inline |
Return the name of the reference element. The type can be used to access the Dune::ReferenceElement.
|
related |
Second-level dispatch to select the correct reference element for a grid entity.
This function is the default implementation of the second-level reference element dispatch performed by Entity.
When referenceElement() is called with an Entity, it will forward the call to referenceElement<ctype, mydim>(const GeometryType&)
. This default implementation will do the right thing as long as your geometry is based on a standard Dune ReferenceElement. If it is not and you want to supply your own reference element implementation, provide an override of this function for your specific geometry implementation.
|
staticconstexpr |
Know your own codimension.
|
staticconstexpr |
Know the grid dimension.
|
staticconstexpr |
Dimensionality of the reference element of the entity.
|
protected |