My Project
Loading...
Searching...
No Matches
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
 
using BoundaryFace = SubControlVolumeFace
 compatibility alias
 

Public Member Functions

 VcfvStencil (const GridView &gridView, const Mapper &mapper)
 
void updateTopology (const Element &e)
 Update the non-geometric part of the stencil.
 
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.
 
Entity entity (unsigned dofIdx) const
 Return the global space index given the index of a degree of freedom.
 

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

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


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