3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false > Class Template Reference

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

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

Inheritance diagram for Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false >:

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
using DiscretizationMethod = DiscretizationMethods::CCTpfa
using Cache = TpfaForchheimersLawCache<ThisType, GridGeometry>
 state the type for the corresponding cache

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.
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}\).

Static Public Attributes

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

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>
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>
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>
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>
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: