3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false > Class Template Reference

Specialization of the CCTpfaForchheimersLaw grids where dim=dimWorld. More...

#include <dumux/flux/cctpfa/forchheimerslaw.hh>

Description

template<class ScalarType, class GridGeometry, class ForchheimerVelocity>
class Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >

Specialization of the CCTpfaForchheimersLaw grids where dim=dimWorld.

Public Types

using Scalar = ScalarType
 state the scalar type of the law More...
 
using DiscretizationMethod = DiscretizationMethods::CCTpfa
 
using Cache = TpfaForchheimersLawCache< ThisType, GridGeometry >
 state the type for the corresponding cache More...
 

Static Public Member Functions

template<class Problem , class ElementVolumeVariables , class ElementFluxVarsCache >
static Scalar flux (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf, int phaseIdx, const ElementFluxVarsCache &elemFluxVarsCache)
 Compute the advective flux of a phase across the given sub-control volume face using the Forchheimer equation. More...
 
template<class Problem , class ElementVolumeVariables >
static Scalar calculateTransmissibility (const Problem &problem, const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf)
 
template<class Problem , class ElementVolumeVariables >
static DimWorldMatrix calculateHarmonicMeanSqrtPermeability (const Problem &problem, const ElementVolumeVariables &elemVolVars, const SubControlVolumeFace &scvf)
 Returns the harmonic mean of \(\sqrt{K_0}\) and \(\sqrt{K_1}\). More...
 

Static Public Attributes

static constexpr DiscretizationMethod discMethod {}
 state the discretization method this implementation belongs to More...
 

Member Typedef Documentation

◆ Cache

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
using Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::Cache = TpfaForchheimersLawCache<ThisType, GridGeometry>

state the type for the corresponding cache

◆ DiscretizationMethod

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
using Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::DiscretizationMethod = DiscretizationMethods::CCTpfa

◆ Scalar

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
using Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::Scalar = ScalarType

state the scalar type of the law

Member Function Documentation

◆ calculateHarmonicMeanSqrtPermeability()

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
template<class Problem , class ElementVolumeVariables >
static DimWorldMatrix Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::calculateHarmonicMeanSqrtPermeability ( const Problem &  problem,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolumeFace &  scvf 
)
inlinestatic

Returns the harmonic mean of \(\sqrt{K_0}\) and \(\sqrt{K_1}\).

This is a specialization for scalar-valued permeabilities which returns a tensor with identical diagonal entries.

◆ calculateTransmissibility()

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
template<class Problem , class ElementVolumeVariables >
static Scalar Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::calculateTransmissibility ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolumeFace &  scvf 
)
inlinestatic

The flux variables cache has to be bound to an element prior to flux calculations During the binding, the transmissibility will be computed and stored using the method below.

◆ flux()

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
template<class Problem , class ElementVolumeVariables , class ElementFluxVarsCache >
static Scalar Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::flux ( const Problem &  problem,
const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const SubControlVolumeFace &  scvf,
int  phaseIdx,
const ElementFluxVarsCache &  elemFluxVarsCache 
)
inlinestatic

Compute the advective flux of a phase across the given sub-control volume face using the Forchheimer equation.

The flux is given in N*m, and can be converted into a volume flux (m^3/s) or mass flux (kg/s) by applying an upwind scheme for the mobility or the product of density and mobility, respectively.

Member Data Documentation

◆ discMethod

template<class ScalarType , class GridGeometry , class ForchheimerVelocity >
constexpr DiscretizationMethod Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >::discMethod {}
staticconstexpr

state the discretization method this implementation belongs to


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