Opm::VcfvStencil< Scalar, GridView > Class Template Reference

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 SubControlVolume & subControlVolume (unsigned scvIdx) const
 
unsigned numInteriorFaces () const
 
unsigned numBoundaryFaces () const
 
const SubControlVolumeFace & interiorFace (unsigned faceIdx) const
 
const BoundaryFace & boundaryFace (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()

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

◆ updatePrimaryTopology()

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

◆ updateScvGeometry()

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

◆ updateTopology()

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

Update the non-geometric part of the stencil.

I.e., indices and neighboring information, but nothing else...

Referenced by Opm::VcfvStencil< Scalar, GridView >::update(), and Opm::VcfvStencil< Scalar, GridView >::updatePrimaryTopology().


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