3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | 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 (unsigned int localFacetIndex, unsigned int) const
 Get the corners of the (d-1)-dimensional fracture scvf. More...
 
ScvfCornerStorage getFractureScvfCorners (const Intersection &is, const typename Intersection::Geometry &isGeom, unsigned int idxOnIntersection=0) const
 Get the corners of the (d-1)-dimensional fracture scvf. More...
 
ScvfType::Traits::GlobalPosition fractureNormal (const ScvfCornerStorage &p, const Intersection &is, unsigned int edgeIndexInIntersection) 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 (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...
 

Member Function Documentation

◆ elementGeometry()

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

the wrapped element geometry

◆ 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 
) 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() [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
inlineinherited

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
inlineinherited

Create the sub control volume face geometries on the boundary.

◆ getFractureScvfCorners() [1/2]

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.

◆ getFractureScvfCorners() [2/2]

template<class GridView , class ScvType , class ScvfType >
ScvfCornerStorage Dumux::BoxDfmGeometryHelper< GridView, 2, ScvType, ScvfType >::getFractureScvfCorners ( unsigned int  localFacetIndex,
unsigned int   
) const
inline

Get the corners of the (d-1)-dimensional fracture scvf.

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

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

◆ 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

◆ numInteriorScvf()

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

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
inlineinherited

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


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