3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | List of all members
Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType > Class Template Reference

A class to create sub control volume and sub control volume face geometries per element. More...

#include <dumux/discretization/box/boxgeometryhelper.hh>

Inheritance diagram for Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >:

Description

template<class GridView, class ScvType, class ScvfType>
class Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >

A class to create sub control volume and sub control volume face geometries per element.

Public Member Functions

 BoxGeometryHelper (const typename Element::Geometry &geometry)
 
ScvCornerStorage getScvCorners (unsigned int localScvIdx) const
 Create a vector with the scv corners. More...
 
ScvfCornerStorage getScvfCorners (unsigned int localScvfIdx) const
 Create a vector with the corners of sub control volume faces. More...
 
ScvfCornerStorage getBoundaryScvfCorners (unsigned int localFacetIndex, unsigned int indexInFacet) const
 Create the sub control volume face geometries on the boundary. More...
 
ScvfCornerStorage getBoundaryScvfCorners (const Intersection &is, const typename Intersection::Geometry &isGeometry, unsigned int indexInIntersection) const
 Create the sub control volume face geometries on the boundary. More...
 
template<int w = dimWorld>
std::enable_if< w==3, GlobalPosition >::type normal (const ScvfCornerStorage &scvfCorners, const std::vector< unsigned int > &scvIndices) const
 get scvf normal vector for dim == 2, dimworld == 3 More...
 
template<int w = dimWorld>
std::enable_if< w==2, GlobalPosition >::type normal (const ScvfCornerStorage &scvfCorners, const std::vector< unsigned int > &scvIndices) const
 get scvf normal vector for dim == 2, dimworld == 2 More...
 
template<int w = dimWorld>
std::enable_if< w==3, Scalar >::type scvVolume (const ScvCornerStorage &p) const
 get scv volume for dim == 2, dimworld == 3 More...
 
template<int w = dimWorld>
std::enable_if< w==2, Scalar >::type scvVolume (const ScvCornerStorage &p) const
 get scv volume for dim == 2, dimworld == 2 More...
 
Scalar scvfArea (const ScvfCornerStorage &p) const
 get scvf area More...
 
std::size_t numInteriorScvf () const
 number of sub control volume faces (number of edges) More...
 
std::size_t numScv () const
 number of sub control volumes (number of vertices) More...
 
const Element::Geometry & elementGeometry () const
 the wrapped element geometry More...
 

Constructor & Destructor Documentation

◆ BoxGeometryHelper()

template<class GridView , class ScvType , class ScvfType >
Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::BoxGeometryHelper ( const typename Element::Geometry &  geometry)
inline

Member Function Documentation

◆ elementGeometry()

template<class GridView , class ScvType , class ScvfType >
const Element::Geometry & Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::elementGeometry ( ) const
inline

the wrapped element geometry

◆ getBoundaryScvfCorners() [1/2]

template<class GridView , class ScvType , class ScvfType >
ScvfCornerStorage Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::getBoundaryScvfCorners ( const Intersection &  is,
const typename Intersection::Geometry &  isGeometry,
unsigned int  indexInIntersection 
) const
inline

Create the sub control volume face geometries on the boundary.

◆ getBoundaryScvfCorners() [2/2]

template<class GridView , class ScvType , class ScvfType >
ScvfCornerStorage Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::getBoundaryScvfCorners ( unsigned int  localFacetIndex,
unsigned int  indexInFacet 
) const
inline

Create the sub control volume face geometries on the boundary.

◆ getScvCorners()

template<class GridView , class ScvType , class ScvfType >
ScvCornerStorage Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::getScvCorners ( unsigned int  localScvIdx) const
inline

Create a vector with the scv corners.

◆ getScvfCorners()

template<class GridView , class ScvType , class ScvfType >
ScvfCornerStorage Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::getScvfCorners ( unsigned int  localScvfIdx) const
inline

Create a vector with the corners of sub control volume faces.

◆ normal() [1/2]

template<class GridView , class ScvType , class ScvfType >
template<int w = dimWorld>
std::enable_if< w==3, GlobalPosition >::type Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::normal ( const ScvfCornerStorage &  scvfCorners,
const std::vector< unsigned int > &  scvIndices 
) const
inline

get scvf normal vector for dim == 2, dimworld == 3

ensure the right direction of the normal

◆ normal() [2/2]

template<class GridView , class ScvType , class ScvfType >
template<int w = dimWorld>
std::enable_if< w==2, GlobalPosition >::type Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::normal ( const ScvfCornerStorage &  scvfCorners,
const std::vector< unsigned int > &  scvIndices 
) const
inline

get scvf normal vector for dim == 2, dimworld == 2

obtain normal vector by 90° counter-clockwise rotation of t

ensure the right direction of the normal

◆ numInteriorScvf()

template<class GridView , class ScvType , class ScvfType >
std::size_t Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::numInteriorScvf ( ) const
inline

number of sub control volume faces (number of edges)

◆ numScv()

template<class GridView , class ScvType , class ScvfType >
std::size_t Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::numScv ( ) const
inline

number of sub control volumes (number of vertices)

◆ scvfArea()

template<class GridView , class ScvType , class ScvfType >
Scalar Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::scvfArea ( const ScvfCornerStorage &  p) const
inline

get scvf area

◆ scvVolume() [1/2]

template<class GridView , class ScvType , class ScvfType >
template<int w = dimWorld>
std::enable_if< w==3, Scalar >::type Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::scvVolume ( const ScvCornerStorage &  p) const
inline

get scv volume for dim == 2, dimworld == 3

◆ scvVolume() [2/2]

template<class GridView , class ScvType , class ScvfType >
template<int w = dimWorld>
std::enable_if< w==2, Scalar >::type Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::scvVolume ( const ScvCornerStorage &  p) const
inline

get scv volume for dim == 2, dimworld == 2

make sure we are using positive volumes Cross product of diagonals might be negative, depending on element orientation


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