version 3.10.0
Loading...
Searching...
No Matches
Dumux::CCTpfaForchheimersLaw< ScalarType, GridGeometry, ForchheimerVelocity, false > Class Template Reference

Specialization of the CCTpfaForchheimersLaw grids where dim=dimWorld.

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

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

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>

◆ 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

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

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

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

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