My Project
Loading...
Searching...
No Matches
Opm::EcfvStencil< Scalar, GridView, needFaceIntegrationPos, needFaceNormal > Class Template Reference

Represents the stencil (finite volume geometry) of a single element in the ECFV discretization. More...

#include <ecfvstencil.hh>

Classes

class  EcfvSubControlVolumeFace
 Represents a face of a sub-control volume. More...
 
class  SubControlVolume
 Represents a sub-control volume. More...
 

Public Types

using Entity = Element
 
using Mapper = ElementMapper
 
using LocalGeometry = typename Element::Geometry
 
using SubControlVolumeFace = EcfvSubControlVolumeFace<needFaceIntegrationPos, needFaceNormal>
 
using BoundaryFace = EcfvSubControlVolumeFace<true, needFaceNormal>
 

Public Member Functions

 EcfvStencil (const GridView &gridView, const Mapper &mapper)
 
void updateTopology (const Element &element)
 
void updatePrimaryTopology (const Element &element)
 
void update (const Element &element)
 
void updateCenterGradients ()
 
const Element & element () const
 Return the element to which the stencil refers.
 
const GridView & gridView () const
 Return the grid view of the element to which the stencil refers.
 
size_t numDof () const
 Returns the number of degrees of freedom which the current element interacts with.
 
size_t numPrimaryDof () const
 Returns the number of degrees of freedom which are contained by within the current element.
 
unsigned globalSpaceIndex (unsigned dofIdx) const
 Return the global space index given the index of a degree of freedom.
 
Dune::PartitionType partitionType (unsigned dofIdx) const
 Return partition type of a given degree of freedom.
 
const Element & element (unsigned dofIdx) const
 Return the element given the index of a degree of freedom.
 
const Entity & entity (unsigned dofIdx) const
 Return the entity given the index of a degree of freedom.
 
const SubControlVolumesubControlVolume (unsigned dofIdx) const
 Returns the sub-control volume object belonging to a given degree of freedom.
 
size_t numInteriorFaces () const
 Returns the number of interior faces of the stencil.
 
const SubControlVolumeFaceinteriorFace (unsigned faceIdx) const
 Returns the face object belonging to a given face index in the interior of the domain.
 
size_t numBoundaryFaces () const
 Returns the number of boundary faces of the stencil.
 
const BoundaryFaceboundaryFace (unsigned bfIdx) const
 Returns the boundary face object belonging to a given boundary face index.
 

Protected Attributes

const GridView & gridView_
 
const ElementMapper & elementMapper_
 
std::vector< Element > elements_
 
std::vector< SubControlVolumesubControlVolumes_
 
std::vector< SubControlVolumeFaceinteriorFaces_
 
std::vector< BoundaryFaceboundaryFaces_
 

Detailed Description

template<class Scalar, class GridView, bool needFaceIntegrationPos = true, bool needFaceNormal = true>
class Opm::EcfvStencil< Scalar, GridView, needFaceIntegrationPos, needFaceNormal >

Represents the stencil (finite volume geometry) of a single element in the ECFV discretization.

The ECFV discretization is a element centered finite volume approach. This means that each element corresponds to a control volume.

Member Function Documentation

◆ element()

template<class Scalar , class GridView , bool needFaceIntegrationPos = true, bool needFaceNormal = true>
const Element & Opm::EcfvStencil< Scalar, GridView, needFaceIntegrationPos, needFaceNormal >::element ( unsigned dofIdx) const
inline

Return the element given the index of a degree of freedom.

If no degree of freedom index is passed, the element which was passed to the update() method is returned...

◆ numPrimaryDof()

template<class Scalar , class GridView , bool needFaceIntegrationPos = true, bool needFaceNormal = true>
size_t Opm::EcfvStencil< Scalar, GridView, needFaceIntegrationPos, needFaceNormal >::numPrimaryDof ( ) const
inline

Returns the number of degrees of freedom which are contained by within the current element.

Primary DOFs are always expected to have a lower index than "secondary" DOFs.

For element centered finite elements, this is only the central DOF.


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