Represents the finite volume geometry of a single element in the VCFV discretization. More...

#include <vcfvstencil.hh>

Classes

class  ScvGeometry
 
struct  SubControlVolume
 finite volume intersected with element More...
 
struct  SubControlVolumeFace
 interior face of a sub control volume More...
 

Public Types

using Entity = typename GridView::Traits::template Codim< dim >::Entity
 
using Mapper = Dune::MultipleCodimMultipleGeomTypeMapper< GridView >
 exported Mapper type More...
 
using BoundaryFace = SubControlVolumeFace
 compatibility alias More...
 

Public Member Functions

 VcfvStencil (const GridView &gridView, const Mapper &mapper)
 
void updateTopology (const Element &e)
 Update the non-geometric part of the stencil. More...
 
void updatePrimaryTopology (const Element &element)
 
void update (const Element &e)
 
void updateScvGeometry (const Element &element)
 
unsigned numDof () const
 
unsigned numPrimaryDof () const
 
Dune::PartitionType partitionType (unsigned scvIdx) const
 
const SubControlVolumesubControlVolume (unsigned scvIdx) const
 
unsigned numInteriorFaces () const
 
unsigned numBoundaryFaces () const
 
const SubControlVolumeFaceinteriorFace (unsigned faceIdx) const
 
const BoundaryFaceboundaryFace (unsigned bfIdx) const
 
unsigned globalSpaceIndex (unsigned dofIdx) const
 Return the global space index given the index of a degree of freedom. More...
 
Entity entity (unsigned dofIdx) const
 Return the global space index given the index of a degree of freedom. More...
 

Detailed Description

template<class Scalar, class GridView>
class Opm::VcfvStencil< Scalar, GridView >

Represents the finite volume geometry of a single element in the VCFV discretization.

The VCFV discretization is a vertex centered finite volume approach. This means that each vertex corresponds to a control volume which intersects each of the vertex' neighboring elements. If only looking at a single element of the primary grid (which is what this class does), the element is subdivided into multiple fragments of control volumes called sub-control volumes. Each of the element's vertices corresponds to exactly one sub-control volume in this scenario.

For the vertex-cented finite volume method the sub-control volumes are constructed by connecting the element's center with each edge of the element.

Member Typedef Documentation

◆ BoundaryFace

template<class Scalar , class GridView >
using Opm::VcfvStencil< Scalar, GridView >::BoundaryFace = SubControlVolumeFace

compatibility alias

◆ Entity

template<class Scalar , class GridView >
using Opm::VcfvStencil< Scalar, GridView >::Entity = typename GridView::Traits::template Codim<dim>::Entity

◆ Mapper

template<class Scalar , class GridView >
using Opm::VcfvStencil< Scalar, GridView >::Mapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>

exported Mapper type

Constructor & Destructor Documentation

◆ VcfvStencil()

template<class Scalar , class GridView >
Opm::VcfvStencil< Scalar, GridView >::VcfvStencil ( const GridView &  gridView,
const Mapper mapper 
)
inline

References Opm::cube, and Opm::simplex.

Member Function Documentation

◆ boundaryFace()

template<class Scalar , class GridView >
const BoundaryFace & Opm::VcfvStencil< Scalar, GridView >::boundaryFace ( unsigned  bfIdx) const
inline

◆ entity()

template<class Scalar , class GridView >
Entity Opm::VcfvStencil< Scalar, GridView >::entity ( unsigned  dofIdx) const
inline

Return the global space index given the index of a degree of freedom.

References Opm::VcfvStencil< Scalar, GridView >::numDof().

◆ globalSpaceIndex()

template<class Scalar , class GridView >
unsigned Opm::VcfvStencil< Scalar, GridView >::globalSpaceIndex ( unsigned  dofIdx) const
inline

Return the global space index given the index of a degree of freedom.

References Opm::VcfvStencil< Scalar, GridView >::numDof().

◆ interiorFace()

template<class Scalar , class GridView >
const SubControlVolumeFace & Opm::VcfvStencil< Scalar, GridView >::interiorFace ( unsigned  faceIdx) const
inline

◆ numBoundaryFaces()

template<class Scalar , class GridView >
unsigned Opm::VcfvStencil< Scalar, GridView >::numBoundaryFaces ( ) const
inline

◆ numDof()

◆ numInteriorFaces()

template<class Scalar , class GridView >
unsigned Opm::VcfvStencil< Scalar, GridView >::numInteriorFaces ( ) const
inline

◆ numPrimaryDof()

template<class Scalar , class GridView >
unsigned Opm::VcfvStencil< Scalar, GridView >::numPrimaryDof ( ) const
inline

◆ partitionType()

template<class Scalar , class GridView >
Dune::PartitionType Opm::VcfvStencil< Scalar, GridView >::partitionType ( unsigned  scvIdx) const
inline

◆ subControlVolume()

template<class Scalar , class GridView >
const SubControlVolume & Opm::VcfvStencil< Scalar, GridView >::subControlVolume ( unsigned  scvIdx) const
inline

◆ update()

◆ updatePrimaryTopology()

template<class Scalar , class GridView >
void Opm::VcfvStencil< Scalar, GridView >::updatePrimaryTopology ( const Element &  element)
inline

◆ updateScvGeometry()

◆ updateTopology()

template<class Scalar , class GridView >
void Opm::VcfvStencil< Scalar, GridView >::updateTopology ( const Element &  e)
inline

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