My Project
Loading...
Searching...
No Matches
Dune::cpgrid::Entity< int > Class Template Reference

#include <Entity.hpp>

Inheritance diagram for Dune::cpgrid::Entity< int >:
Dune::cpgrid::EntityRep< codim >

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
 
- Public Types inherited from Dune::cpgrid::EntityRep< codim >
enum  
 
enum  
 

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 Geometrygeometry () 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 Entityimpl () const
 Access the actual implementation class behind Entity interface class.
 
Entityimpl ()
 
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
 
- Public Member Functions inherited from Dune::cpgrid::EntityRep< codim >
 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 CpGridDatapgrid_
 

Friends

class LevelGlobalIdSet
 
class GlobalIdSet
 
class HierarchicIterator
 
class CpGridData
 

Detailed Description

template<int>
class Dune::cpgrid::Entity< int >
Todo
Doc me!
Template Parameters

Member Enumeration Documentation

◆ anonymous enum

template<int >
anonymous enum
Todo
Doc me!

Constructor & Destructor Documentation

◆ Entity()

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

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). Constructor creating empty entity

Member Function Documentation

◆ father()

template<int codim>
Entity< 0 > Dune::cpgrid::Entity< codim >::father ( ) const

ONLY FOR CELLS (Entity<0>).

Get the father Entity (in the level-grid the father cell was born), in case entity.hasFather() is true.

Returns
father-entity

◆ geometryInFather()

template<int codim>
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.

◆ getOrigin()

template<int codim>
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".

◆ hasBoundaryIntersections()

template<int codim>
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.

◆ hasFather()

template<int codim>
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.

◆ 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.

◆ isLeaf()

template<int codim>
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. 

◆ isValid()

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

isValid method for EntitySeed

Returns
return true if seed is pointing to a valid entity

◆ mightVanish()

template<int codim>
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()

template<int codim>
PartitionType Dune::cpgrid::Entity< codim >::partitionType ( ) const

In serial run, the only partitionType() is InteriorEntity.

Only needed when distributed_data_ is not empty.

◆ partitionTypeWhenLgrs()

template<int codim>
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.

◆ seed()

template<int >
EntitySeed Dune::cpgrid::Entity< int >::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.

◆ subEntity()

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

Obtain subentity.

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

◆ type()

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

Return marker object (GeometryType object) representing the reference element of the entity.

Currently, cube type for all entities (cells and vertices).


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