3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
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 >:
Inheritance graph

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.
ScvfCornerStorage getScvfCorners (unsigned int localScvfIdx) const
 Create a vector with the corners of sub control volume faces.
ScvfCornerStorage getBoundaryScvfCorners (const Intersection &is, const typename Intersection::Geometry &isGeom, unsigned int indexInIntersection) const
 Create the sub control volume face geometries on the boundary.
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
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
template<int w = dimWorld>
std::enable_if< w==3, Scalar >::type scvVolume (const ScvCornerStorage &p) const
 get scv volume for dim == 2, dimworld == 3
template<int w = dimWorld>
std::enable_if< w==2, Scalar >::type scvVolume (const ScvCornerStorage &p) const
 get scv volume for dim == 2, dimworld == 2
Scalar scvfArea (const ScvfCornerStorage &p) const
 get scvf area

Protected Attributes

const Element::Geometry & elementGeometry_
 Reference to the element geometry.
std::size_t corners_
std::array< GlobalPosition, maxPoints > p_

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

◆ getBoundaryScvfCorners()

template<class GridView, class ScvType, class ScvfType>
ScvfCornerStorage Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::getBoundaryScvfCorners ( const Intersection & is,
const typename Intersection::Geometry & isGeom,
unsigned int indexInIntersection ) 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.

Only build the maps the first time we encounter a triangle

< vertex offset in point vector p

< face offset in point vector p

Only build the maps the first time we encounter a quadrilateral

< vertex offset in point vector p

< face offset in point vector p

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

Only build the maps the first time we encounter a triangle

< face offset in point vector p

Only build the maps the first time we encounter a quadrilateral

< face offset in point vector p

◆ normal() [1/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

◆ normal() [2/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

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

◆ scvVolume() [2/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

Member Data Documentation

◆ corners_

template<class GridView, class ScvType, class ScvfType>
std::size_t Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::corners_
protected

◆ elementGeometry_

template<class GridView, class ScvType, class ScvfType>
const Element::Geometry& Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::elementGeometry_
protected

Reference to the element geometry.

◆ p_

template<class GridView, class ScvType, class ScvfType>
std::array<GlobalPosition, maxPoints> Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::p_
protected

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