A class to create sub control volume and sub control volume face geometries per element. More...
#include <dumux/discretization/box/boxgeometryhelper.hh>
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 (const Intersection &is, const typename Intersection::Geometry &isGeom, 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... | |
Protected Attributes | |
const Element::Geometry & | elementGeometry_ |
Reference to the element geometry. More... | |
std::size_t | corners_ |
std::array< GlobalPosition, maxPoints > | p_ |
|
inline |
|
inline |
Create the sub control volume face geometries on the boundary.
|
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
|
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
|
inline |
get scvf normal vector for dim == 2, dimworld == 3
ensure the right direction of the normal
|
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
|
inline |
get scvf area
|
inline |
get scv volume for dim == 2, dimworld == 3
|
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
|
protected |
|
protected |
Reference to the element geometry.
|
protected |