My Project
|
#include <Entity.hpp>
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 taking a grid and an integer entity representation. | |
Entity (const CpGridData &grid, EntityRep< codim > entityrep) | |
Constructor taking a grid and an entity representation. | |
Entity (const CpGridData &grid, int index_arg, bool orientation_arg) | |
Constructor taking a grid, entity index, and orientation. | |
Entity (int index_arg, bool orientation_arg) | |
Constructor taking a entity index, and orientation. | |
bool | operator== (const Entity &other) const |
Equality. | |
bool | operator!= (const Entity &other) const |
Inequality. | |
EntitySeed | seed () const |
Return an entity seed (light-weight entity). | |
const Geometry & | geometry () const |
Return the geometry of the entity (does not depend on its orientation). | |
int | level () const |
Return the level of the entity in the grid hierarchy. Level = 0 represents the coarsest grid. | |
bool | isLeaf () const |
Check if the entity is in the leafview. | |
bool | isRegular () const |
Refinement is not defined for CpGrid. | |
PartitionType | partitionType () const |
In serial run, the only partitionType() is InteriorEntity. | |
PartitionType | partitionTypeWhenLgrs (bool) const |
For parallel run, the entity - for now - does not see the CpGrid therefore we pass a bool to make the entity aware of the fact the the grid has been distributed. | |
GeometryType | type () const |
Return marker object (GeometryType object) representing the reference element of the entity. | |
unsigned int | subEntities (const unsigned int cc) const |
Return the number of all subentities of the entity of a given codimension cc. | |
template<int cc> | |
Codim< cc >::Entity | subEntity (int i) const |
Obtain subentity. | |
LevelIntersectionIterator | ilevelbegin () const |
Start level-iterator for the cell-cell intersections of this entity. | |
LevelIntersectionIterator | ilevelend () const |
End level-iterator for the cell-cell intersections of this entity. | |
LeafIntersectionIterator | ileafbegin () const |
Start leaf-iterator for the cell-cell intersections of this entity. | |
LeafIntersectionIterator | ileafend () const |
End leaf-iterator for the cell-cell intersections of this entity. | |
HierarchicIterator | hbegin (int) const |
Iterator begin over the children. [If requested, also over descendants more than one generation away.]. | |
HierarchicIterator | hend (int) const |
Iterator end over the children/beyond last child iterator. | |
bool | isNew () const |
Returns true, if the entity has been created during the last call to adapt(). Dummy. | |
bool | mightVanish () const |
Returns true, if entity might disappear during the next call to adapt(). | |
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. | |
Entity< 0 > | father () const |
ONLY FOR CELLS (Entity<0>). | |
Dune::cpgrid::Geometry< 3, 3 > | geometryInFather () const |
Return LocalGeometry representing the embedding of the entity into its father (when hasFather() is true). | |
bool | hasBoundaryIntersections () const |
Returns true if any of my intersections are on the boundary. | |
const Entity & | impl () const |
Access the actual implementation class behind Entity interface class. | |
Entity & | impl () |
bool | isValid () const |
isValid method for EntitySeed | |
Entity< 0 > | getOrigin () const |
Returns (1) parent entity in the level-grid the parent cell was born, if the entity was born in any LGR. | |
Entity< 0 > | getLevelElem () const |
To be invoked only for leaf-grid-view entities. Get equivalent element on the level grid the leaf-entity was born. | |
Entity< 0 > | getEquivLevelElem () const |
Get equivalent element on the level grid where the entity was born, if grid = leaf-grid-view. Otherwise, return itself. | |
int | getLevelCartesianIdx () const |
Get Cartesian Index in the level grid view where the Entity was born. | |
template<int cc> | |
Entity< codim >::template Codim< cc >::Entity | subEntity (int i) const |
![]() | |
EntityRep () | |
Default constructor. | |
EntityRep (int index_arg, bool orientation_arg) | |
Constructor taking an entity index and an orientation. | |
void | setValue (int index_arg, bool orientation_arg) |
Set entity value. | |
int | index () const |
The (positive) index of an entity. | |
int | signedIndex () const |
The signed index that also tells us the orientation. | |
bool | orientation () const |
Returns true if the entity has positive orientation. | |
EntityRep | opposite () const |
Returns an EntityRep with opposite orientation. | |
void | increment () |
Increments the entityrep's index() by one. | |
bool | operator< (const EntityRep &other) const |
Ordering relation used for maps etc. | |
bool | operator== (const EntityRep &other) const |
Equality operator. | |
bool | operator!= (const EntityRep &other) const |
Inequality operator. | |
Protected Attributes | |
const CpGridData * | pgrid_ |
Friends | |
class | LevelGlobalIdSet |
class | GlobalIdSet |
class | HierarchicIterator |
class | CpGridData |
anonymous enum |
|
inline |
Constructor taking a grid and an integer entity representation.
This constructor should probably be removed, since it exposes details of the implementation of
Entity< 0 > Dune::cpgrid::Entity< codim >::father | ( | ) | const |
Dune::cpgrid::Geometry< 3, 3 > Dune::cpgrid::Entity< codim >::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.
Dune::cpgrid::Entity< 0 > Dune::cpgrid::Entity< codim >::getOrigin | ( | ) | const |
Returns (1) parent entity in the level-grid the parent cell was born, if the entity was born in any LGR.
(2) if the entity has no father, and is a leaf-grid-view entity, it returns the equivalent element on the level that it was born. Namely, for coarse cells on the leaf never involved in any refinement process, we get the equivalent entity in the GLOBAL grid (level 0). Notice that if it's a refined cell on the leaf, it does have a father, in that case, this method returns the father entity. (3) Otherwise, returns itself. Notice that if the element is a refined one, this method returns the father() entity. For a coarse cell never involved in any refinement, if it's also a leaf-grid-cell, it returns the equivalent cell from level 0. Otherwise, it returns itself, which means that its grid is level 0 and the entity itself is already its "origin".
bool Dune::cpgrid::Entity< codim >::hasBoundaryIntersections | ( | ) | const |
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.
bool Dune::cpgrid::Entity< codim >::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.
@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.
HierarchicIterator Dune::cpgrid::Entity< codim >::hend | ( | int | maxLevel | ) | const |
Iterator end over the children/beyond last child iterator.
Dummy beyond last child iterator.
bool Dune::cpgrid::Entity< codim >::isLeaf | ( | ) | const |
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.
bool Dune::cpgrid::Entity< codim >::isValid | ( | ) | const |
isValid method for EntitySeed
bool Dune::cpgrid::Entity< codim >::mightVanish | ( | ) | const |
Returns true, if entity might disappear during the next call to adapt().
Currently, returns true if the element has been marked to be refined. Therefore, it "vanishes" in the sense that it gets replaced by its children. To be modified: When supporting coarsening, mightVanish should return true for all the "siblings" refined cells of one refined cell that got marked to be coarsened.
PartitionType Dune::cpgrid::Entity< codim >::partitionType | ( | ) | const |
In serial run, the only partitionType() is InteriorEntity.
Only needed when distributed_data_ is not empty.
PartitionType Dune::cpgrid::Entity< codim >::partitionTypeWhenLgrs | ( | bool | lgrsOnDistributedGrid | ) | const |
For parallel run, the entity - for now - does not see the CpGrid therefore we pass a bool to make the entity aware of the fact the the grid has been distributed.
Each cell inherits the partition type of its origin (either parent cell or equivalent cell in level 0). Only needed when distributed_data_ is not empty.
|
inline |
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.
|
inline |
Return marker object (GeometryType object) representing the reference element of the entity.
Currently, cube type for all entities (cells and vertices).