3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | Protected Attributes | List of all members
Dumux::BoxDfmGeometryHelper< 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/porousmediumflow/boxdfm/geometryhelper.hh>

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

Description

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

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

Public Member Functions

ScvfCornerStorage getFractureScvfCorners (const Intersection &is, const typename Intersection::Geometry &isGeom, unsigned int idxOnIntersection=0) const
 
ScvfType::Traits::GlobalPosition fractureNormal (const ScvfCornerStorage &p, const Intersection &is, unsigned int edgeIndexInIntersection=0) const
 
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_
 

Member Function Documentation

◆ fractureNormal()

template<class GridView , class ScvType , class ScvfType >
ScvfType::Traits::GlobalPosition Dumux::BoxDfmGeometryHelper< GridView, 2, ScvType, ScvfType >::fractureNormal ( const ScvfCornerStorage &  p,
const Intersection &  is,
unsigned int  edgeIndexInIntersection = 0 
) const
inline

get fracture scvf normal vector (simply the unit vector of the edge) The third argument is for compatibility reasons with the 3d case!

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

Create the sub control volume face geometries on the boundary.

◆ getFractureScvfCorners()

template<class GridView , class ScvType , class ScvfType >
ScvfCornerStorage Dumux::BoxDfmGeometryHelper< GridView, 2, ScvType, ScvfType >::getFractureScvfCorners ( const Intersection &  is,
const typename Intersection::Geometry &  isGeom,
unsigned int  idxOnIntersection = 0 
) const
inline

Get the corners of the (d-1)-dimensional fracture scvf The second argument is for compatibility reasons with the 3d case!

◆ getScvCorners()

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

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
inlineinherited

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==3, GlobalPosition >::type Dumux::BoxGeometryHelper< GridView, 2, ScvType, ScvfType >::normal ( const ScvfCornerStorage &  scvfCorners,
const std::vector< unsigned int > &  scvIndices 
) const
inlineinherited

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
inlineinherited

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

◆ scvfArea()

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

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
inlineinherited

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
inlineinherited

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

Member Data Documentation

◆ corners_

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

◆ elementGeometry_

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

Reference to the element geometry.

◆ p_

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

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