3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Attributes | List of all members
Dumux::CCTpfaFVElementGeometry< GG, true > Class Template Reference

Stencil-local finite volume geometry (scvs and scvfs) for cell-centered TPFA models Specialization for grid caching enabled. More...

#include <dumux/discretization/cellcentered/tpfa/fvelementgeometry.hh>

Inheritance diagram for Dumux::CCTpfaFVElementGeometry< GG, true >:

Description

template<class GG>
class Dumux::CCTpfaFVElementGeometry< GG, true >

Stencil-local finite volume geometry (scvs and scvfs) for cell-centered TPFA models Specialization for grid caching enabled.

Note
The finite volume geometries are stored in the corresponding GridGeometry

Public Types

using Element = typename GridView::template Codim< 0 >::Entity
 export type of the element More...
 
using SubControlVolume = typename GG::SubControlVolume
 export type of subcontrol volume More...
 
using SubControlVolumeFace = typename GG::SubControlVolumeFace
 export type of subcontrol volume face More...
 
using GridGeometry = GG
 export type of finite volume grid geometry More...
 

Public Member Functions

 CCTpfaFVElementGeometry (const GridGeometry &gridGeometry)
 Constructor. More...
 
const SubControlVolumescv (GridIndexType scvIdx) const
 
const SubControlVolumeFacescvf (GridIndexType scvfIdx) const
 
const SubControlVolumeFaceflipScvf (GridIndexType scvfIdx, unsigned int outsideScvIdx=0) const
 
std::size_t numScv () const
 number of sub control volumes in this fv element geometry More...
 
std::size_t numScvf () const
 number of sub control volumes in this fv element geometry More...
 
CCTpfaFVElementGeometry bind (const Element &element) &&
 bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bind(element); More...
 
void bind (const Element &element) &
 
CCTpfaFVElementGeometry bindElement (const Element &element) &&
 bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bindElement(element); More...
 
void bindElement (const Element &element) &
 Bind only element-local. More...
 
bool isBound () const
 Returns true if bind/bindElement has already been called. More...
 
const Elementelement () const
 The bound element. More...
 
const GridGeometrygridGeometry () const
 The global finite volume geometry we are a restriction of. More...
 
bool hasBoundaryScvf () const
 Returns whether one of the geometry's scvfs lies on a boundary. More...
 
SubControlVolume::Traits::Geometry geometry (const SubControlVolume &scv) const
 
SubControlVolumeFace::Traits::Geometry geometry (const SubControlVolumeFace &scvf) const
 

Static Public Attributes

static constexpr std::size_t maxNumElementScvs = 1
 the maximum number of scvs per element More...
 
static constexpr std::size_t maxNumElementScvfs = 2*GridView::dimension
 the maximum number of scvfs per element (use cubes for maximum) More...
 

Member Typedef Documentation

◆ Element

template<class GG >
using Dumux::CCTpfaFVElementGeometry< GG, true >::Element = typename GridView::template Codim<0>::Entity

export type of the element

◆ GridGeometry

template<class GG >
using Dumux::CCTpfaFVElementGeometry< GG, true >::GridGeometry = GG

export type of finite volume grid geometry

◆ SubControlVolume

template<class GG >
using Dumux::CCTpfaFVElementGeometry< GG, true >::SubControlVolume = typename GG::SubControlVolume

export type of subcontrol volume

◆ SubControlVolumeFace

template<class GG >
using Dumux::CCTpfaFVElementGeometry< GG, true >::SubControlVolumeFace = typename GG::SubControlVolumeFace

export type of subcontrol volume face

Constructor & Destructor Documentation

◆ CCTpfaFVElementGeometry()

template<class GG >
Dumux::CCTpfaFVElementGeometry< GG, true >::CCTpfaFVElementGeometry ( const GridGeometry gridGeometry)
inline

Constructor.

Member Function Documentation

◆ bind() [1/2]

template<class GG >
void Dumux::CCTpfaFVElementGeometry< GG, true >::bind ( const Element element) &
inline

◆ bind() [2/2]

template<class GG >
CCTpfaFVElementGeometry Dumux::CCTpfaFVElementGeometry< GG, true >::bind ( const Element element) &&
inline

bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bind(element);

◆ bindElement() [1/2]

template<class GG >
void Dumux::CCTpfaFVElementGeometry< GG, true >::bindElement ( const Element element) &
inline

Bind only element-local.

◆ bindElement() [2/2]

template<class GG >
CCTpfaFVElementGeometry Dumux::CCTpfaFVElementGeometry< GG, true >::bindElement ( const Element element) &&
inline

bind the local view (r-value overload) This overload is called when an instance of this class is a temporary in the usage context This allows a usage like this: const auto view = localView(...).bindElement(element);

◆ element()

template<class GG >
const Element & Dumux::CCTpfaFVElementGeometry< GG, true >::element ( ) const
inline

The bound element.

◆ flipScvf()

template<class GG >
const SubControlVolumeFace & Dumux::CCTpfaFVElementGeometry< GG, true >::flipScvf ( GridIndexType  scvfIdx,
unsigned int  outsideScvIdx = 0 
) const
inline

Get the scvf on the same face but from the other side Note that e.g. the normals might be different in the case of surface grids

◆ geometry() [1/2]

template<class GG >
SubControlVolume::Traits::Geometry Dumux::CCTpfaFVElementGeometry< GG, true >::geometry ( const SubControlVolume scv) const
inline

◆ geometry() [2/2]

template<class GG >
SubControlVolumeFace::Traits::Geometry Dumux::CCTpfaFVElementGeometry< GG, true >::geometry ( const SubControlVolumeFace scvf) const
inline

◆ gridGeometry()

template<class GG >
const GridGeometry & Dumux::CCTpfaFVElementGeometry< GG, true >::gridGeometry ( ) const
inline

The global finite volume geometry we are a restriction of.

◆ hasBoundaryScvf()

template<class GG >
bool Dumux::CCTpfaFVElementGeometry< GG, true >::hasBoundaryScvf ( ) const
inline

Returns whether one of the geometry's scvfs lies on a boundary.

◆ isBound()

template<class GG >
bool Dumux::CCTpfaFVElementGeometry< GG, true >::isBound ( ) const
inline

Returns true if bind/bindElement has already been called.

◆ numScv()

template<class GG >
std::size_t Dumux::CCTpfaFVElementGeometry< GG, true >::numScv ( ) const
inline

number of sub control volumes in this fv element geometry

◆ numScvf()

template<class GG >
std::size_t Dumux::CCTpfaFVElementGeometry< GG, true >::numScvf ( ) const
inline

number of sub control volumes in this fv element geometry

◆ scv()

template<class GG >
const SubControlVolume & Dumux::CCTpfaFVElementGeometry< GG, true >::scv ( GridIndexType  scvIdx) const
inline

Get an element sub control volume with a global scv index We separate element and neighbor scvs to speed up mapping

◆ scvf()

template<class GG >
const SubControlVolumeFace & Dumux::CCTpfaFVElementGeometry< GG, true >::scvf ( GridIndexType  scvfIdx) const
inline

Get an element sub control volume face with a global scvf index We separate element and neighbor scvfs to speed up mapping

Member Data Documentation

◆ maxNumElementScvfs

template<class GG >
constexpr std::size_t Dumux::CCTpfaFVElementGeometry< GG, true >::maxNumElementScvfs = 2*GridView::dimension
staticconstexpr

the maximum number of scvfs per element (use cubes for maximum)

◆ maxNumElementScvs

template<class GG >
constexpr std::size_t Dumux::CCTpfaFVElementGeometry< GG, true >::maxNumElementScvs = 1
staticconstexpr

the maximum number of scvs per element


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