dune-grid-glue  2.3.0
Classes | Public Types | Public Member Functions | Protected Types | Protected Attributes | List of all members
Dune::GridGlue::Extractor< GV, cd > Class Template Reference

Provides codimension-independent methods for grid extraction. More...

#include <dune/grid-glue/extractors/extractor.hh>

Inheritance diagram for Dune::GridGlue::Extractor< GV, cd >:
Inheritance graph

Classes

struct  CoordinateInfo
 
struct  CornerInfo
 Helpful struct holding one index for the coordinate (vertex) to which it is associated and the element's corner index;. More...
 
struct  ElementInfo
 simple struct holding an entity pointer and an index More...
 
struct  SubEntityInfo
 Holds some information about an element's subentity involved in a coupling. More...
 
struct  VertexInfo
 simple struct holding a vertex pointer and an index More...
 

Public Types

enum  { dimworld = GV::dimensionworld }
 
enum  { dim = GV::dimension }
 
enum  { codim = cd }
 
enum  { cube_corners = 1 << (dim-codim) }
 
typedef GV GridView
 
typedef GV::Grid::ctype ctype
 
typedef Dune::FieldVector
< ctype, dimworld
Coords
 
typedef Dune::FieldVector
< ctype, dim
LocalCoords
 
typedef GV::Traits::template
Codim< dim >::EntityPointer 
VertexPtr
 
typedef GV::Traits::template
Codim< dim >::Entity 
Vertex
 
typedef GV::Traits::template
Codim< 0 >::EntityPointer 
ElementPtr
 
typedef GV::Traits::template
Codim< 0 >::Entity 
Element
 
typedef GV::Traits::template
Codim< 0 >::Iterator 
ElementIter
 
typedef std::vector< unsigned int > VertexVector
 
typedef
Dune::MultipleCodimMultipleGeomTypeMapper
< GridView, MCMGElementLayout > 
CellMapper
 
typedef int IndexType
 
typedef
Dune::GenericGeometry::BasicGeometry
< dim-codim,
Dune::GenericGeometry::DefaultGeometryTraits
< ctype, dim-codim, dimworld > > 
Geometry
 
typedef
Dune::GenericGeometry::BasicGeometry
< dim-codim,
Dune::GenericGeometry::DefaultGeometryTraits
< ctype, dim-codim, dim > > 
LocalGeometry
 

Public Member Functions

 Extractor (const GV &gv)
 Constructor. More...
 
 ~Extractor ()
 Destructor frees allocated memory. More...
 
void clear ()
 delete everything build up so far and free the memory More...
 
void getCoords (std::vector< Dune::FieldVector< ctype, dimworld > > &coords) const
 getter for the coordinates array More...
 
unsigned int nCoords () const
 getter for the count of coordinates More...
 
void getGeometryTypes (std::vector< Dune::GeometryType > &geometryTypes) const
 Get the list of geometry types. More...
 
void getFaces (std::vector< VertexVector > &faces) const
 Get the corners of the extracted subentities. More...
 
bool faceIndices (const Element &e, int &first, int &count) const
 gets index of first subentity as well as the total number of subentities that were extracted from this element More...
 
int indexInInside (unsigned int index) const
 gets the number face in the parent element More...
 
const GridViewgridView () const
 tests that a given entry in the extraction set does have local couplings More...
 
const ElementPtrelement (unsigned int index) const
 gets the parent element for a given face index, throws an exception if index not valid More...
 
const VertexPtrvertex (unsigned int index) const
 gets the vertex for a given coordinate index throws an exception if index not valid More...
 
Geometry geometry (unsigned int index) const
 Get world geometry of the extracted face. More...
 
LocalGeometry geometryLocal (unsigned int index) const
 Get geometry of the extracted face in element coordinates. More...
 

Protected Types

typedef std::map< IndexType,
ElementInfo * > 
ElementInfoMap
 
typedef std::map< IndexType,
VertexInfo * > 
VertexInfoMap
 

Protected Attributes

const GridViewgv_
 the grid object to extract the surface from More...
 
std::vector< CoordinateInfocoords_
 all information about the corner vertices of the extracted More...
 
std::vector< SubEntityInfosubEntities_
 all information about the extracted subEntities More...
 
VertexInfoMap vtxInfo_
 a map enabling faster access to vertices and coordinates More...
 
ElementInfoMap elmtInfo_
 a map enabling faster access to elements and faces More...
 
CellMapper cellMapper_
 

Detailed Description

template<typename GV, int cd>
class Dune::GridGlue::Extractor< GV, cd >

Provides codimension-independent methods for grid extraction.

Template Parameters
GVthe grid view type
cdcodimension of the extracted entities

Member Typedef Documentation

template<typename GV, int cd>
typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, MCMGElementLayout> Dune::GridGlue::Extractor< GV, cd >::CellMapper
template<typename GV, int cd>
typedef Dune::FieldVector<ctype, dimworld> Dune::GridGlue::Extractor< GV, cd >::Coords
template<typename GV, int cd>
typedef GV::Grid::ctype Dune::GridGlue::Extractor< GV, cd >::ctype
template<typename GV, int cd>
typedef GV::Traits::template Codim<0>::Entity Dune::GridGlue::Extractor< GV, cd >::Element
template<typename GV, int cd>
typedef std::map<IndexType, ElementInfo* > Dune::GridGlue::Extractor< GV, cd >::ElementInfoMap
protected
template<typename GV, int cd>
typedef GV::Traits::template Codim<0>::Iterator Dune::GridGlue::Extractor< GV, cd >::ElementIter
template<typename GV, int cd>
typedef GV::Traits::template Codim<0>::EntityPointer Dune::GridGlue::Extractor< GV, cd >::ElementPtr
template<typename GV, int cd>
typedef Dune::GenericGeometry::BasicGeometry<dim-codim, Dune::GenericGeometry::DefaultGeometryTraits<ctype,dim-codim,dimworld> > Dune::GridGlue::Extractor< GV, cd >::Geometry
template<typename GV, int cd>
typedef GV Dune::GridGlue::Extractor< GV, cd >::GridView
template<typename GV, int cd>
typedef int Dune::GridGlue::Extractor< GV, cd >::IndexType
template<typename GV, int cd>
typedef Dune::FieldVector<ctype, dim> Dune::GridGlue::Extractor< GV, cd >::LocalCoords
template<typename GV, int cd>
typedef Dune::GenericGeometry::BasicGeometry<dim-codim, Dune::GenericGeometry::DefaultGeometryTraits<ctype,dim-codim,dim> > Dune::GridGlue::Extractor< GV, cd >::LocalGeometry
template<typename GV, int cd>
typedef GV::Traits::template Codim<dim>::Entity Dune::GridGlue::Extractor< GV, cd >::Vertex
template<typename GV, int cd>
typedef std::map<IndexType, VertexInfo* > Dune::GridGlue::Extractor< GV, cd >::VertexInfoMap
protected
template<typename GV, int cd>
typedef GV::Traits::template Codim<dim>::EntityPointer Dune::GridGlue::Extractor< GV, cd >::VertexPtr
template<typename GV, int cd>
typedef std::vector<unsigned int> Dune::GridGlue::Extractor< GV, cd >::VertexVector

Member Enumeration Documentation

template<typename GV, int cd>
anonymous enum
Enumerator
dimworld 
template<typename GV, int cd>
anonymous enum
Enumerator
dim 
template<typename GV, int cd>
anonymous enum
Enumerator
codim 
template<typename GV, int cd>
anonymous enum
Enumerator
cube_corners 

Constructor & Destructor Documentation

template<typename GV, int cd>
Dune::GridGlue::Extractor< GV, cd >::Extractor ( const GV &  gv)
inline

Constructor.

Parameters
gvthe grid view object to work with
template<typename GV , int cd>
Dune::GridGlue::Extractor< GV, cd >::~Extractor ( )

Destructor frees allocated memory.

References Dune::GridGlue::Extractor< GV, cd >::clear().

Member Function Documentation

template<typename GV, int cd>
void Dune::GridGlue::Extractor< GV, cd >::clear ( )
inline

delete everything build up so far and free the memory

Referenced by Dune::GridGlue::Extractor< GV, cd >::~Extractor().

template<typename GV, int cd>
const ElementPtr& Dune::GridGlue::Extractor< GV, cd >::element ( unsigned int  index) const
inline

gets the parent element for a given face index, throws an exception if index not valid

Parameters
indexthe index of the face
Returns
a reference to the element's stored pointer
template<typename GV, int cd>
bool Dune::GridGlue::Extractor< GV, cd >::faceIndices ( const Element e,
int &  first,
int &  count 
) const
inline

gets index of first subentity as well as the total number of subentities that were extracted from this element

Parameters
[in]ethe element
[out]firstwill contain the index of the first subentity if it exists, else -1
[out]countwill contain the number of subentities extracted from this element
Returns
true if at least one subentity was extracted from this element
template<typename GV , int cd>
Extractor< GV, cd >::Geometry Dune::GridGlue::Extractor< GV, cd >::geometry ( unsigned int  index) const

Get world geometry of the extracted face.

Get World geometry of the extracted face.

References Dune::GridGlue::Extractor< GV, cd >::coords_, and Dune::GridGlue::Extractor< GV, cd >::subEntities_.

template<typename GV , int cd>
Extractor< GV, cd >::LocalGeometry Dune::GridGlue::Extractor< GV, cd >::geometryLocal ( unsigned int  index) const
template<typename GV, int cd>
void Dune::GridGlue::Extractor< GV, cd >::getCoords ( std::vector< Dune::FieldVector< ctype, dimworld > > &  coords) const
inline

getter for the coordinates array

Parameters
coordsa vector that will be resized (!) and filled with the coordinates, note that the single components are written consecutively

Referenced by Dune::GridGlue::GridGlue< P0, P1 >::extractGrid().

template<typename GV, int cd>
void Dune::GridGlue::Extractor< GV, cd >::getFaces ( std::vector< VertexVector > &  faces) const
inline

Get the corners of the extracted subentities.

Referenced by Dune::GridGlue::GridGlue< P0, P1 >::extractGrid().

template<typename GV, int cd>
void Dune::GridGlue::Extractor< GV, cd >::getGeometryTypes ( std::vector< Dune::GeometryType > &  geometryTypes) const
inline

Get the list of geometry types.

Referenced by Dune::GridGlue::GridGlue< P0, P1 >::extractGrid().

template<typename GV, int cd>
const GridView& Dune::GridGlue::Extractor< GV, cd >::gridView ( ) const
inline

tests that a given entry in the extraction set does have local couplings

Todo:
parallel interface

give access to the Dune::GridView where this Patch belongs to

template<typename GV, int cd>
int Dune::GridGlue::Extractor< GV, cd >::indexInInside ( unsigned int  index) const
inline

gets the number face in the parent element

Parameters
indexthe index of the face
Returns
if failed -1, else the index
template<typename GV, int cd>
unsigned int Dune::GridGlue::Extractor< GV, cd >::nCoords ( ) const
inline

getter for the count of coordinates

Returns
the count
template<typename GV, int cd>
const VertexPtr& Dune::GridGlue::Extractor< GV, cd >::vertex ( unsigned int  index) const
inline

gets the vertex for a given coordinate index throws an exception if index not valid

Parameters
indexthe index of the coordinate
Returns
a reference to the vertex' stored pointer

Member Data Documentation

template<typename GV, int cd>
CellMapper Dune::GridGlue::Extractor< GV, cd >::cellMapper_
protected
template<typename GV, int cd>
std::vector<CoordinateInfo> Dune::GridGlue::Extractor< GV, cd >::coords_
protected

all information about the corner vertices of the extracted

Referenced by Dune::GridGlue::Extractor< GV, cd >::geometry().

template<typename GV, int cd>
ElementInfoMap Dune::GridGlue::Extractor< GV, cd >::elmtInfo_
protected

a map enabling faster access to elements and faces

Maps an element's index (from index set) to an object holding the locally associated index of its first face in _indices (if there are more they are positioned consecutively) and an entity pointer to the codim<0> entity.

Referenced by Dune::GridGlue::Extractor< GV, cd >::geometryLocal().

template<typename GV, int cd>
const GridView& Dune::GridGlue::Extractor< GV, cd >::gv_
protected

the grid object to extract the surface from

Referenced by Dune::GridGlue::Extractor< GV, 1 >::gridView().

template<typename GV, int cd>
std::vector<SubEntityInfo> Dune::GridGlue::Extractor< GV, cd >::subEntities_
protected

all information about the extracted subEntities

Referenced by Dune::GridGlue::Extractor< GV, cd >::geometry(), and Dune::GridGlue::Extractor< GV, cd >::geometryLocal().

template<typename GV, int cd>
VertexInfoMap Dune::GridGlue::Extractor< GV, cd >::vtxInfo_
protected

a map enabling faster access to vertices and coordinates

Maps a vertex' index (from index set) to an object holding the locally associated index of the vertex' coordinate in coords_ and an entity pointer to the codim<dim> entity.


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