version 3.8.0
Loading...
Searching...
No Matches
Dumux::StaggeredFVElementGeometry< GG, true > Class Template Reference

Base class for the finite volume geometry vector for staggered models This locally builds up the sub control volumes and sub control volume faces for each element. Specialization for grid caching enabled. More...

#include <dumux/discretization/staggered/fvelementgeometry.hh>

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

Description

template<class GG>
class Dumux::StaggeredFVElementGeometry< GG, true >
Template Parameters
GGthe finite volume grid geometry type

Public Types

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

Public Member Functions

template<class CellCenterOrFaceFVGridGeometry >
 StaggeredFVElementGeometry (const CellCenterOrFaceFVGridGeometry &gridGeometry)
 
const SubControlVolumeFacescvf (GridIndexType eIdx, LocalIndexType localScvfIdx) const
 
const SubControlVolumeFacescvf (GridIndexType scvfIdx) const
 Get a sub control volume face with an element index and a local scvf index.
 
const SubControlVolumescv (GridIndexType scvIdx) 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
 
std::size_t numScvf () const
 number of sub control volumes in this fv element geometry
 
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);
 
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);
 
void bindElement (const Element &element) &
 Bind only element-local.
 
bool isBound () const
 Returns true if bind/bindElement has already been called.
 
const Elementelement () const
 The bound element.
 
const GridGeometrygridGeometry () const
 The global finite volume geometry we are a restriction of.
 
bool hasBoundaryScvf () const
 Returns whether one of the geometry's scvfs lies on a boundary.
 
Element::Geometry geometry (const SubControlVolume &scv) const
 
GridView::Intersection::Geometry geometry (const SubControlVolumeFace &scvf) const
 

Static Public Attributes

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

Member Typedef Documentation

◆ Element

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

◆ GridGeometry

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

◆ SubControlVolume

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

◆ SubControlVolumeFace

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

Constructor & Destructor Documentation

◆ StaggeredFVElementGeometry()

template<class GG >
template<class CellCenterOrFaceFVGridGeometry >
Dumux::StaggeredFVElementGeometry< GG, true >::StaggeredFVElementGeometry ( const CellCenterOrFaceFVGridGeometry & gridGeometry)
inline

Constructor getting a auxiliary cell center of face specific FvGridGeometry type. Needed for the multi-domain framework.

Member Function Documentation

◆ bind() [1/2]

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

◆ bind() [2/2]

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

◆ bindElement() [1/2]

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

◆ bindElement() [2/2]

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

◆ element()

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

◆ flipScvf()

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

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 >
Element::Geometry Dumux::CCTpfaFVElementGeometry< GG, true >::geometry ( const SubControlVolume & scv) const
inlineinherited

◆ geometry() [2/2]

template<class GG >
GridView::Intersection::Geometry Dumux::CCTpfaFVElementGeometry< GG, true >::geometry ( const SubControlVolumeFace & scvf) const
inlineinherited

◆ gridGeometry()

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

◆ hasBoundaryScvf()

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

◆ isBound()

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

◆ numScv()

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

◆ numScvf()

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

◆ scv()

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

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

◆ scvf() [1/2]

template<class GG >
const SubControlVolumeFace & Dumux::StaggeredFVElementGeometry< GG, true >::scvf ( GridIndexType eIdx,
LocalIndexType localScvfIdx ) const
inline

◆ scvf() [2/2]

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

Member Data Documentation

◆ maxNumElementScvfs

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

◆ maxNumElementScvs

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

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