dune-mmesh 1.4.1-git
Loading...
Searching...
No Matches
Dune::MMeshInterfaceGridLeafIntersection< GridImp > Class Template Reference

An intersection with a leaf neighbor elementMesh entities of codimension 0 ("elements") allow to visit all neighbors, where a neighbor is an entity of codimension 0 which has a common entity of codimension 1 These neighbors are accessed via a IntersectionIterator. This allows the implement non-matching meshes. The number of neighbors may be different from the number of an element! More...

#include <dune/mmesh/interface/intersections.hh>

Public Types

enum  { dimension = GridImp::dimension }
 
enum  { dimensionworld = GridImp::dimensionworld }
 
typedef GridImp::template Codim< 1 >::Geometry Geometry
 
typedef GridImp::template Codim< 1 >::LocalGeometry LocalGeometry
 
typedef GridImp::template Codim< 0 >::Entity Entity
 
typedef FieldVector< ctype, dimensionworldNormalVector
 

Public Member Functions

 MMeshInterfaceGridLeafIntersection ()
 
 MMeshInterfaceGridLeafIntersection (const GridImp *grid, const MMeshInterfaceEntity &hostEntity, const std::size_t index, const std::size_t nbIdx)
 
bool equals (const MMeshInterfaceGridLeafIntersection &other) const
 returns true if the host entities are equal
 
Entity inside () const
 
std::size_t numOutside () const
 
Entity outside () const
 
bool boundary () const
 return true if intersection is with boundary.
 
NormalVector centerUnitOuterNormal () const
 Return unit outer normal (length == 1)
 
bool neighbor () const
 return true if across the edge an neighbor on this level exists
 
size_t boundarySegmentIndex () const
 return the boundary segment index
 
std::size_t boundaryId () const
 Return the boundary id.
 
bool conforming () const
 Return true if this is a conforming intersection.
 
GeometryType type () const
 Geometry type of an intersection.
 
LocalGeometry geometryInInside () const
 
LocalGeometry geometryInOutside () const
 
template<int d = dimension>
std::enable_if_t< d==1, Geometrygeometry () const
 
template<int d = dimension>
std::enable_if_t< d==2, Geometrygeometry () const
 
int indexInInside () const
 local number of codim 1 entity in self where intersection is contained in
 
int indexInOutside () const
 local number of codim 1 entity in neighbor where intersection is contained
 
FieldVector< ctype, GridImp::dimensionworld > outerNormal (const FieldVector< ctype, GridImp::dimension - 1 > &local) const
 return outer normal
 
template<int d = dimension>
std::enable_if_t< d==1, NormalVectorintegrationOuterNormal (const FieldVector< ctype, dimension - 1 > &local) const
 return outer normal multiplied by the integration element
 
template<int d = dimension>
std::enable_if_t< d==2, NormalVectorintegrationOuterNormal (const FieldVector< ctype, dimension - 1 > &local) const
 
FieldVector< ctype, GridImp::dimensionworld > unitOuterNormal (const FieldVector< ctype, GridImp::dimension - 1 > &local) const
 return unit outer normal
 
const auto getHostVertex () const
 
const MMeshInterfaceEntity & getHostIntersection () const
 

Friends

class MMeshInterfaceGridLeafIntersectionIterator< GridImp >
 
struct HostGridAccess< typename std::remove_const< GridImp >::type >
 

Detailed Description

template<class GridImp>
class Dune::MMeshInterfaceGridLeafIntersection< GridImp >

An intersection with a leaf neighbor element

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

Member Typedef Documentation

◆ Entity

template<class GridImp >
typedef GridImp::template Codim<0>::Entity Dune::MMeshInterfaceGridLeafIntersection< GridImp >::Entity

◆ Geometry

template<class GridImp >
typedef GridImp::template Codim<1>::Geometry Dune::MMeshInterfaceGridLeafIntersection< GridImp >::Geometry

◆ LocalGeometry

template<class GridImp >
typedef GridImp::template Codim<1>::LocalGeometry Dune::MMeshInterfaceGridLeafIntersection< GridImp >::LocalGeometry

◆ NormalVector

template<class GridImp >
typedef FieldVector<ctype, dimensionworld> Dune::MMeshInterfaceGridLeafIntersection< GridImp >::NormalVector

Member Enumeration Documentation

◆ anonymous enum

template<class GridImp >
anonymous enum
Enumerator
dimension 

◆ anonymous enum

template<class GridImp >
anonymous enum
Enumerator
dimensionworld 

Constructor & Destructor Documentation

◆ MMeshInterfaceGridLeafIntersection() [1/2]

template<class GridImp >
Dune::MMeshInterfaceGridLeafIntersection< GridImp >::MMeshInterfaceGridLeafIntersection ( )
inline

◆ MMeshInterfaceGridLeafIntersection() [2/2]

template<class GridImp >
Dune::MMeshInterfaceGridLeafIntersection< GridImp >::MMeshInterfaceGridLeafIntersection ( const GridImp *  grid,
const MMeshInterfaceEntity &  hostEntity,
const std::size_t  index,
const std::size_t  nbIdx 
)
inline

Member Function Documentation

◆ boundary()

template<class GridImp >
bool Dune::MMeshInterfaceGridLeafIntersection< GridImp >::boundary ( ) const
inline

return true if intersection is with boundary.

◆ boundaryId()

template<class GridImp >
std::size_t Dune::MMeshInterfaceGridLeafIntersection< GridImp >::boundaryId ( ) const
inline

Return the boundary id.

◆ boundarySegmentIndex()

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

return the boundary segment index

◆ centerUnitOuterNormal()

template<class GridImp >
NormalVector Dune::MMeshInterfaceGridLeafIntersection< GridImp >::centerUnitOuterNormal ( ) const
inline

Return unit outer normal (length == 1)

The returned vector is the normal at the center() of the intersection's geometry. It is scaled to have unit length.

◆ conforming()

template<class GridImp >
bool Dune::MMeshInterfaceGridLeafIntersection< GridImp >::conforming ( ) const
inline

Return true if this is a conforming intersection.

◆ equals()

template<class GridImp >
bool Dune::MMeshInterfaceGridLeafIntersection< GridImp >::equals ( const MMeshInterfaceGridLeafIntersection< GridImp > &  other) const
inline

returns true if the host entities are equal

◆ geometry() [1/2]

template<class GridImp >
template<int d = dimension>
std::enable_if_t< d==1, Geometry > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::geometry ( ) const
inline

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.

◆ geometry() [2/2]

template<class GridImp >
template<int d = dimension>
std::enable_if_t< d==2, Geometry > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::geometry ( ) const
inline

◆ geometryInInside()

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

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.

◆ geometryInOutside()

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

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

◆ getHostIntersection()

template<class GridImp >
const MMeshInterfaceEntity & Dune::MMeshInterfaceGridLeafIntersection< GridImp >::getHostIntersection ( ) const
inline

◆ getHostVertex()

template<class GridImp >
const auto Dune::MMeshInterfaceGridLeafIntersection< GridImp >::getHostVertex ( ) const
inline

◆ indexInInside()

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

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

◆ indexInOutside()

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

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

◆ inside()

template<class GridImp >
Entity Dune::MMeshInterfaceGridLeafIntersection< GridImp >::inside ( ) const
inline

return Entity on the inside of this intersection (that is the Entity where we started this Iterator)

◆ integrationOuterNormal() [1/2]

template<class GridImp >
template<int d = dimension>
std::enable_if_t< d==1, NormalVector > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::integrationOuterNormal ( const FieldVector< ctype, dimension - 1 > &  local) const
inline

return outer normal multiplied by the integration element

◆ integrationOuterNormal() [2/2]

template<class GridImp >
template<int d = dimension>
std::enable_if_t< d==2, NormalVector > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::integrationOuterNormal ( const FieldVector< ctype, dimension - 1 > &  local) const
inline

◆ neighbor()

template<class GridImp >
bool Dune::MMeshInterfaceGridLeafIntersection< GridImp >::neighbor ( ) const
inline

return true if across the edge an neighbor on this level exists

◆ numOutside()

template<class GridImp >
std::size_t Dune::MMeshInterfaceGridLeafIntersection< GridImp >::numOutside ( ) const
inline

return Entity on the outside of this intersection (that is the neighboring Entity)

◆ outerNormal()

template<class GridImp >
FieldVector< ctype, GridImp::dimensionworld > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::outerNormal ( const FieldVector< ctype, GridImp::dimension - 1 > &  local) const
inline

return outer normal

◆ outside()

template<class GridImp >
Entity Dune::MMeshInterfaceGridLeafIntersection< GridImp >::outside ( ) const
inline

return Entity on the outside of this intersection (that is the neighboring Entity)

◆ type()

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

Geometry type of an intersection.

◆ unitOuterNormal()

template<class GridImp >
FieldVector< ctype, GridImp::dimensionworld > Dune::MMeshInterfaceGridLeafIntersection< GridImp >::unitOuterNormal ( const FieldVector< ctype, GridImp::dimension - 1 > &  local) const
inline

return unit outer normal

Friends And Related Symbol Documentation

◆ HostGridAccess< typename std::remove_const< GridImp >::type >

template<class GridImp >
friend struct HostGridAccess< typename std::remove_const< GridImp >::type >
friend

◆ MMeshInterfaceGridLeafIntersectionIterator< GridImp >

template<class GridImp >
friend class MMeshInterfaceGridLeafIntersectionIterator< GridImp >
friend

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