dune-grid  2.4.1-rc2
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
Dune::ALU3dGridIntersectionIterator< GridImp > Class Template Reference

#include <dune/grid/alugrid/3d/entity.hh>

Inheritance diagram for Dune::ALU3dGridIntersectionIterator< GridImp >:
Inheritance graph

Public Types

typedef GridImp::GridObjectFactoryType FactoryType
 
typedef GridImp::template Codim< 0 >::Entity Entity
 
typedef GridImp::template Codim< 1 >::Geometry Geometry
 
typedef GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
 
typedef ALU3dGridIntersectionIterator< GridImp > ImplementationType
 
typedef Dune::Intersection< GridImp, Dune::ALU3dGridIntersectionIterator< GridImp > > Intersection
 type of the intersection More...
 
typedef FieldVector< alu3d_ctype, dimworld > NormalType
 
typedef ALU3dGridEntityPointer< 0, GridImp > EntityPointer
 
typedef ALUMemoryProvider< ThisTypeStorageType
 

Public Member Functions

 ALU3dGridIntersectionIterator (const FactoryType &factory, HElementType *el, int wLevel, bool end=false)
 
 ALU3dGridIntersectionIterator (const FactoryType &factory, int wLevel)
 
 ALU3dGridIntersectionIterator (const ALU3dGridIntersectionIterator< GridImp > &org)
 The copy constructor. More...
 
void assign (const ALU3dGridIntersectionIterator< GridImp > &org)
 assignment of iterators More...
 
bool equals (const ALU3dGridIntersectionIterator< GridImp > &i) const
 The copy constructor. More...
 
void increment ()
 increment iterator More...
 
EntityPointer outside () const
 access neighbor More...
 
EntityPointer inside () const
 access entity where iteration started More...
 
bool boundary () const
 return true if intersection is with boundary. More...
 
bool neighbor () const
 return true if across the face an neighbor on leaf exists More...
 
int boundaryId () const
 return information about the Boundary More...
 
size_t boundarySegmentIndex () const
 return the boundary segment index More...
 
LocalGeometry geometryInInside () const
 
Geometry geometry () const
 
GeometryType type () const
 obtain the type of reference element for this intersection More...
 
int indexInInside () const
 
LocalGeometry geometryInOutside () const
 
int indexInOutside () const
 
int twistInInside () const
 returns twist of face compared to inner element More...
 
int twistInOutside () const
 returns twist of face compared to outer element More...
 
NormalTypeunitOuterNormal (const FieldVector< alu3d_ctype, dim-1 > &local) const
 
NormalTypeouterNormal (const FieldVector< alu3d_ctype, dim-1 > &local) const
 
NormalTypeintegrationOuterNormal (const FieldVector< alu3d_ctype, dim-1 > &local) const
 
int level () const
 return level of iterator (level of item) More...
 
int outsideLevel () const
 
bool conforming () const
 return true if intersection is conforming More...
 
const GEOFaceType & getItem () const
 return current face More...
 

Protected Types

enum  IntersectionIteratorType { IntersectionLeaf, IntersectionLevel, IntersectionBoth }
 
typedef GridImp::Traits::template Codim< 1 >::GeometryImpl GeometryImpl
 
typedef GridImp::Traits::template Codim< 1 >::LocalGeometryImpl LocalGeometryImpl
 

Protected Member Functions

void done ()
 
template<class EntityType >
void done (const EntityType &en)
 
void setFirstItem (const HElementType &elem, int wLevel)
 
void setInteriorItem (const HElementType &elem, const BNDFaceType &bnd, int wLevel)
 
template<class EntityType >
void first (const EntityType &en, int wLevel)
 
void setNewFace (const GEOFaceType &newFace)
 
void buildLocalGeometries () const
 
const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace (const GEOTriangleBndType &bnd, int index) const
 
const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace (const GEOQuadBndType &bnd, int index) const
 
const ALU3dImplTraits< tetra, Comm >::GEOFaceType * getFace (const GEOTetraElementType &elem, int index) const
 
const ALU3dImplTraits< hexa, Comm >::GEOFaceType * getFace (const GEOHexaElementType &elem, int index) const
 

Protected Attributes

FaceInfoType connector_
 
GeometryInfoType geoProvider_
 
const FactoryTypefactory_
 
const IMPLElementType * item_
 current element from which we started the intersection iterator More...
 
const BNDFaceType * ghost_
 current pointer to ghost face if iterator was started from ghost element More...
 
int innerLevel_
 
int index_
 
GeometryImpl intersectionGlobal_
 
GeometryImpl intersectionSelfLocal_
 
GeometryImpl intersectionNeighborLocal_
 
NormalType unitOuterNormal_
 

Detailed Description

template<class GridImp>
class Dune::ALU3dGridIntersectionIterator< GridImp >

Mesh entities of codimension 0 ("elements") allow to visit all neighbors, wh a neighbor is an entity of codimension 0 which has a common entity of codimens These neighbors are accessed via a IntersectionIterator. This allows the implement non-matching meshes. The number of neigbors may be different from the number o of an element!

Member Typedef Documentation

template<class GridImp>
typedef GridImp::template Codim<0>::Entity Dune::ALU3dGridIntersectionIterator< GridImp >::Entity
template<class GridImp>
typedef ALU3dGridEntityPointer<0,GridImp> Dune::ALU3dGridIntersectionIterator< GridImp >::EntityPointer
template<class GridImp>
typedef GridImp::GridObjectFactoryType Dune::ALU3dGridIntersectionIterator< GridImp >::FactoryType
template<class GridImp>
typedef GridImp::template Codim<1>::Geometry Dune::ALU3dGridIntersectionIterator< GridImp >::Geometry
template<class GridImp>
typedef GridImp::Traits::template Codim< 1 >::GeometryImpl Dune::ALU3dGridIntersectionIterator< GridImp >::GeometryImpl
protected
template<class GridImp>
typedef ALU3dGridIntersectionIterator< GridImp > Dune::ALU3dGridIntersectionIterator< GridImp >::ImplementationType
template<class GridImp>
typedef Dune::Intersection< GridImp, Dune::ALU3dGridIntersectionIterator< GridImp > > Dune::ALU3dGridIntersectionIterator< GridImp >::Intersection

type of the intersection

template<class GridImp>
typedef GridImp::template Codim<1>::LocalGeometry Dune::ALU3dGridIntersectionIterator< GridImp >::LocalGeometry
template<class GridImp>
typedef GridImp::Traits::template Codim< 1 >::LocalGeometryImpl Dune::ALU3dGridIntersectionIterator< GridImp >::LocalGeometryImpl
protected
template<class GridImp>
typedef FieldVector<alu3d_ctype, dimworld> Dune::ALU3dGridIntersectionIterator< GridImp >::NormalType
template<class GridImp>
typedef ALUMemoryProvider< ThisType > Dune::ALU3dGridIntersectionIterator< GridImp >::StorageType

Member Enumeration Documentation

template<class GridImp>
enum Dune::ALU3dGridIntersectionIterator::IntersectionIteratorType
protected
Enumerator
IntersectionLeaf 
IntersectionLevel 
IntersectionBoth 

Constructor & Destructor Documentation

template<class GridImp>
Dune::ALU3dGridIntersectionIterator< GridImp >::ALU3dGridIntersectionIterator ( const FactoryType factory,
HElementType *  el,
int  wLevel,
bool  end = false 
)

The default Constructor , level tells on which level we want neighbours

template<class GridImp>
Dune::ALU3dGridIntersectionIterator< GridImp >::ALU3dGridIntersectionIterator ( const FactoryType factory,
int  wLevel 
)
template<class GridImp>
Dune::ALU3dGridIntersectionIterator< GridImp >::ALU3dGridIntersectionIterator ( const ALU3dGridIntersectionIterator< GridImp > &  org)

The copy constructor.

Member Function Documentation

template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::assign ( const ALU3dGridIntersectionIterator< GridImp > &  org)
template<class GridImp>
bool Dune::ALU3dGridIntersectionIterator< GridImp >::boundary ( ) const

return true if intersection is with boundary.

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::boundaryId ( ) const

return information about the Boundary

template<class GridImp>
size_t Dune::ALU3dGridIntersectionIterator< GridImp >::boundarySegmentIndex ( ) const

return the boundary segment index

template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::buildLocalGeometries ( ) const
protected
template<class GridImp>
bool Dune::ALU3dGridIntersectionIterator< GridImp >::conforming ( ) const
inline
template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::done ( )
protected
template<class GridImp>
template<class EntityType >
void Dune::ALU3dGridIntersectionIterator< GridImp >::done ( const EntityType &  en)
inlineprotected
template<class GridImp>
bool Dune::ALU3dGridIntersectionIterator< GridImp >::equals ( const ALU3dGridIntersectionIterator< GridImp > &  i) const

The copy constructor.

template<class GridImp>
template<class EntityType >
void Dune::ALU3dGridIntersectionIterator< GridImp >::first ( const EntityType &  en,
int  wLevel 
)
protected
template<class GridImp>
Geometry Dune::ALU3dGridIntersectionIterator< GridImp >::geometry ( ) const

intersection of codimension 1 of this neighbor with element where iteration started. Here returned element is in GLOBAL coordinates of the element where iteration started.

template<class GridImp>
LocalGeometry Dune::ALU3dGridIntersectionIterator< GridImp >::geometryInInside ( ) const

intersection of codimension 1 of this neighbor with element where iteration started. Here returned element is in LOCAL coordinates of the element where iteration started.

template<class GridImp>
LocalGeometry Dune::ALU3dGridIntersectionIterator< GridImp >::geometryInOutside ( ) const

intersection of codimension 1 of this neighbor with element where iteration started. Here returned element is in LOCAL coordinates of neighbor

template<class GridImp>
const ALU3dImplTraits< tetra, Comm >::GEOFaceType* Dune::ALU3dGridIntersectionIterator< GridImp >::getFace ( const GEOTriangleBndType &  bnd,
int  index 
) const
protected
template<class GridImp>
const ALU3dImplTraits< hexa, Comm >::GEOFaceType* Dune::ALU3dGridIntersectionIterator< GridImp >::getFace ( const GEOQuadBndType &  bnd,
int  index 
) const
protected
template<class GridImp>
const ALU3dImplTraits< tetra, Comm >::GEOFaceType* Dune::ALU3dGridIntersectionIterator< GridImp >::getFace ( const GEOTetraElementType &  elem,
int  index 
) const
protected
template<class GridImp>
const ALU3dImplTraits< hexa, Comm >::GEOFaceType* Dune::ALU3dGridIntersectionIterator< GridImp >::getFace ( const GEOHexaElementType &  elem,
int  index 
) const
protected
template<class GridImp>
const GEOFaceType& Dune::ALU3dGridIntersectionIterator< GridImp >::getItem ( ) const
inline
template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::increment ( )

increment iterator

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::indexInInside ( ) const

local index of codim 1 entity in self where intersection is contained in

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::indexInOutside ( ) const

local index of codim 1 entity in neighbor where intersection is contained

template<class GridImp>
EntityPointer Dune::ALU3dGridIntersectionIterator< GridImp >::inside ( ) const

access entity where iteration started

template<class GridImp>
NormalType& Dune::ALU3dGridIntersectionIterator< GridImp >::integrationOuterNormal ( const FieldVector< alu3d_ctype, dim-1 > &  local) const

return outer normal, this should be dependent on local coordinates for higher order boundary

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::level ( ) const
template<class GridImp>
bool Dune::ALU3dGridIntersectionIterator< GridImp >::neighbor ( ) const

return true if across the face an neighbor on leaf exists

Referenced by Dune::ALU3dGridLevelIntersectionIterator< GridImp >::conforming().

template<class GridImp>
NormalType& Dune::ALU3dGridIntersectionIterator< GridImp >::outerNormal ( const FieldVector< alu3d_ctype, dim-1 > &  local) const

return outer normal, this should be dependent on local coordinates for higher order boundary

template<class GridImp>
EntityPointer Dune::ALU3dGridIntersectionIterator< GridImp >::outside ( ) const

access neighbor

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::outsideLevel ( ) const
inline
template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::setFirstItem ( const HElementType &  elem,
int  wLevel 
)
protected
template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::setInteriorItem ( const HElementType &  elem,
const BNDFaceType &  bnd,
int  wLevel 
)
protected
template<class GridImp>
void Dune::ALU3dGridIntersectionIterator< GridImp >::setNewFace ( const GEOFaceType &  newFace)
protected
template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::twistInInside ( ) const

returns twist of face compared to inner element

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::twistInOutside ( ) const

returns twist of face compared to outer element

template<class GridImp>
GeometryType Dune::ALU3dGridIntersectionIterator< GridImp >::type ( ) const

obtain the type of reference element for this intersection

template<class GridImp>
NormalType& Dune::ALU3dGridIntersectionIterator< GridImp >::unitOuterNormal ( const FieldVector< alu3d_ctype, dim-1 > &  local) const

return unit outer normal, this should be dependent on local coordinates for higher order boundary

Member Data Documentation

template<class GridImp>
FaceInfoType Dune::ALU3dGridIntersectionIterator< GridImp >::connector_
mutableprotected
template<class GridImp>
const FactoryType& Dune::ALU3dGridIntersectionIterator< GridImp >::factory_
protected
template<class GridImp>
GeometryInfoType Dune::ALU3dGridIntersectionIterator< GridImp >::geoProvider_
mutableprotected
template<class GridImp>
const BNDFaceType* Dune::ALU3dGridIntersectionIterator< GridImp >::ghost_
protected

current pointer to ghost face if iterator was started from ghost element

Referenced by Dune::ALU3dGridLeafIterator< cdim, pitype, GridImp >::releaseEntity().

template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::index_
mutableprotected
template<class GridImp>
int Dune::ALU3dGridIntersectionIterator< GridImp >::innerLevel_
mutableprotected
template<class GridImp>
GeometryImpl Dune::ALU3dGridIntersectionIterator< GridImp >::intersectionGlobal_
mutableprotected
template<class GridImp>
GeometryImpl Dune::ALU3dGridIntersectionIterator< GridImp >::intersectionNeighborLocal_
mutableprotected
template<class GridImp>
GeometryImpl Dune::ALU3dGridIntersectionIterator< GridImp >::intersectionSelfLocal_
mutableprotected
template<class GridImp>
const IMPLElementType* Dune::ALU3dGridIntersectionIterator< GridImp >::item_
protected

current element from which we started the intersection iterator

template<class GridImp>
NormalType Dune::ALU3dGridIntersectionIterator< GridImp >::unitOuterNormal_
mutableprotected

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