3.4
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Loading...
Searching...
No Matches
Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > Class Template Reference

#include <dumux/material/spatialparams/porenetwork/porenetwork2p.hh>

Inheritance diagram for Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT >:

Public Types

using PermeabilityType = Scalar

Public Member Functions

int wettingPhase (const Element &, const ElementVolumeVariables &elemVolVars) const
 The index of the wetting phase within a pore throat.
int wettingPhase (const Element &, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 The index of the wetting phase within a pore body.
Scalar contactAngle (const Element &element, const ElementVolumeVariables &elemVolVars) const
 The contact angle within a pore throat \([rad]\).
Scalar contactAngle (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 The contact angle within a pore body \([rad]\).
const Scalar pcEntry (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Return the element (throat) specific entry capillary pressure \( Pa\).
const Scalar pcSnapoff (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Return the element (throat) specific snap-off capillary pressure \( Pa\).
Scalar surfaceTension (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Returns the surface tension \( [N/m] \).
auto fluidMatrixInteraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Returns the parameter object for the pore-local pc-Sw law.
const Dune::ReservedVector< Scalar, 4 > & cornerHalfAngles (const Element &element) const
template<class ElementVolumeVariables>
Scalar throatLength (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Length of the throat \([m]\). Can be solution-dependent.
template<class ElementVolumeVariables>
Scalar throatInscribedRadius (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Inscribed radius of the throat \([m]\). Can be solution-dependent.
template<class ElementVolumeVariables>
Scalar throatCrossSectionalArea (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Cross-sectional area of the throat \([m]\). Can be solution-dependent.
template<class ElementSolutionVector>
Scalar poreInscribedRadius (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 Inscribed radius of the pore body \([m]\). Can be solution-dependent.
const GridView & gridView () const
 Returns a reference to the gridview.
template<class ElementSolutionVector>
Scalar permeability (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
const GlobalPosition & gravity (const GlobalPosition &pos) const
 Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\).
const GridGeometrygridGeometry () const
 The finite volume grid geometry.
template<class ElementSolution>
Scalar porosity (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Function for defining the porosity. That is possibly solution dependent.
Scalar porosityAtPos (const GlobalPosition &globalPos) const
template<class SolidSystem, class ElementSolution, typename std::enable_if_t< SolidSystem::isInert() &&SolidSystem::numInertComponents==1 &&!decltype(isValid(Detail::hasInertVolumeFractionAtPos< GlobalPosition, SolidSystem >())(std::declval< Implementation >()))::value, int > = 0>
Scalar inertVolumeFraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol, int compIdx) const
 Function for defining the solid volume fraction. That is possibly solution dependent.
template<class SolidSystem, class ElementSolution, typename std::enable_if_t< SolidSystem::numInertComponents==0, int > = 0>
Scalar inertVolumeFraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol, int compIdx) const
template<class SolidSystem, class ElementSolution, typename std::enable_if_t<(SolidSystem::numInertComponents > 1)||((SolidSystem::numInertComponents > 0) &&(!SolidSystem::isInert()||decltype(isValid(Detail::hasInertVolumeFractionAtPos< GlobalPosition, SolidSystem >())(std::declval< Implementation >()))::value)), int > = 0>
Scalar inertVolumeFraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol, int compIdx) const

Protected Member Functions

Implementation & asImp_ ()
const Implementation & asImp_ () const

Member Typedef Documentation

◆ PermeabilityType

template<class GridGeometry, class Scalar, class Implementation>
using Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::PermeabilityType = Scalar
inherited

Member Function Documentation

◆ asImp_() [1/2]

template<class GridGeometry, class Scalar, class Implementation>
Implementation & Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::asImp_ ( )
inlineprotectedinherited

◆ asImp_() [2/2]

template<class GridGeometry, class Scalar, class Implementation>
const Implementation & Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::asImp_ ( ) const
inlineprotectedinherited

◆ contactAngle() [1/2]

Scalar Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::contactAngle ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

The contact angle within a pore throat \([rad]\).

Note
Overload for solution-dependent values.
Parameters
elementThe element
elemVolVarsThe element volume variables

◆ contactAngle() [2/2]

Scalar Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::contactAngle ( const Element & element,
const SubControlVolume & scv,
const ElementSolutionVector & elemSol ) const
inlineinherited

The contact angle within a pore body \([rad]\).

Note
Overload for solution-dependent values.
Parameters
elementThe element
scvThe sub-control volume
elemSolThe element solution

◆ cornerHalfAngles()

const Dune::ReservedVector< Scalar, 4 > & Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::cornerHalfAngles ( const Element & element) const
inlineinherited

◆ fluidMatrixInteraction()

auto Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::fluidMatrixInteraction ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol ) const
inlineinherited

Returns the parameter object for the pore-local pc-Sw law.

Parameters
elementThe current element
scvThe sub-control volume inside the element.
elemSolThe solution at the dofs connected to the element.
Returns
The material parameters object

◆ gravity()

template<class GridGeometry, class Scalar, class Implementation>
const GlobalPosition & Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::gravity ( const GlobalPosition & pos) const
inlineinherited

Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\).

The default behaviour is a constant gravity vector; if the Problem.EnableGravity parameter is true, \(\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \), else \(\boldsymbol{g} = ( 0,\dots, 0)^T \).

Parameters
posthe spatial position at which to evaulate the gravity vector

◆ gridGeometry()

template<class GridGeometry, class Scalar, class Implementation>
const GridGeometry & Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::gridGeometry ( ) const
inlineinherited

The finite volume grid geometry.

◆ gridView()

template<class GridGeometry, class Scalar, class Implementation>
const GridView & Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::gridView ( ) const
inlineinherited

Returns a reference to the gridview.

◆ inertVolumeFraction() [1/3]

template<class GridGeometry, class Scalar, class Implementation>
template<class SolidSystem, class ElementSolution, typename std::enable_if_t<(SolidSystem::numInertComponents > 1)||((SolidSystem::numInertComponents > 0) &&(!SolidSystem::isInert()||decltype(isValid(Detail::hasInertVolumeFractionAtPos< GlobalPosition, SolidSystem >())(std::declval< Implementation >()))::value)), int > = 0>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::inertVolumeFraction ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol,
int compIdx ) const
inlineinherited

◆ inertVolumeFraction() [2/3]

template<class GridGeometry, class Scalar, class Implementation>
template<class SolidSystem, class ElementSolution, typename std::enable_if_t< SolidSystem::numInertComponents==0, int > = 0>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::inertVolumeFraction ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol,
int compIdx ) const
inlineinherited

◆ inertVolumeFraction() [3/3]

template<class GridGeometry, class Scalar, class Implementation>
template<class SolidSystem, class ElementSolution, typename std::enable_if_t< SolidSystem::isInert() &&SolidSystem::numInertComponents==1 &&!decltype(isValid(Detail::hasInertVolumeFractionAtPos< GlobalPosition, SolidSystem >())(std::declval< Implementation >()))::value, int > = 0>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::inertVolumeFraction ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol,
int compIdx ) const
inlineinherited

Function for defining the solid volume fraction. That is possibly solution dependent.

Parameters
elementThe current element
scvThe sub-control volume inside the element.
elemSolThe solution at the dofs connected to the element.
compIdxThe solid component index
Returns
the volume fraction of the inert solid component with index compIdx
Note
this overload is enable if there is only one inert solid component and the user didn't choose to implement a inertVolumeFractionAtPos overload. It then forwards to the simpler porosity interface. With more than one solid components or active solid components (i.e. dissolution) please overload the more general inertVolumeFraction/inertVolumeFractionAtPos interface.

◆ pcEntry()

const Scalar Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::pcEntry ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

Return the element (throat) specific entry capillary pressure \( Pa\).

Parameters
elementThe current element
elemVolVarsThe element volume variables

◆ pcSnapoff()

const Scalar Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::pcSnapoff ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

Return the element (throat) specific snap-off capillary pressure \( Pa\).

Parameters
elementThe current element
elemVolVarsThe element volume variables

◆ permeability()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementSolutionVector>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::permeability ( const Element & element,
const SubControlVolume & scv,
const ElementSolutionVector & elemSol ) const
inlineinherited

Intrinsic permeability tensor K \([m^2]\).

Note
This is only required for compatibility reasons.

◆ poreInscribedRadius()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementSolutionVector>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::poreInscribedRadius ( const Element & element,
const SubControlVolume & scv,
const ElementSolutionVector & elemSol ) const
inlineinherited

Inscribed radius of the pore body \([m]\). Can be solution-dependent.

Parameters
elementThe finite volume element
scvThe sub-control volume
elemSolThe element solution

◆ porosity()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementSolution>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::porosity ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol ) const
inlineinherited

Function for defining the porosity. That is possibly solution dependent.

Note
this can only be used for solids with one inert component (see inertVolumeFraction for the more general interface)
Parameters
elementThe current element
scvThe sub-control volume inside the element.
elemSolThe solution at the dofs connected to the element.
Returns
the porosity

◆ porosityAtPos()

template<class GridGeometry, class Scalar, class Implementation>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::porosityAtPos ( const GlobalPosition & globalPos) const
inlineinherited

◆ surfaceTension()

Scalar Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::surfaceTension ( const Element & element,
const SubControlVolume & scv,
const ElementSolution & elemSol ) const
inlineinherited

Returns the surface tension \( [N/m] \).

Parameters
elementThe current element
scvThe sub-control volume inside the element.
elemSolThe solution at the dofs connected to the element.

◆ throatCrossSectionalArea()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementVolumeVariables>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::throatCrossSectionalArea ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

Cross-sectional area of the throat \([m]\). Can be solution-dependent.

Parameters
elementThe finite volume element
elemVolVarsThe element volume variables.

◆ throatInscribedRadius()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementVolumeVariables>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::throatInscribedRadius ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

Inscribed radius of the throat \([m]\). Can be solution-dependent.

Parameters
elementThe finite volume element
elemVolVarsThe element volume variables.

◆ throatLength()

template<class GridGeometry, class Scalar, class Implementation>
template<class ElementVolumeVariables>
Scalar Dumux::PoreNetwork::BaseSpatialParams< GridGeometry, Scalar, Implementation >::throatLength ( const Element & element,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

Length of the throat \([m]\). Can be solution-dependent.

Parameters
elementThe finite volume element
elemVolVarsThe element volume variables.

◆ wettingPhase() [1/2]

int Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::wettingPhase ( const Element & ,
const ElementVolumeVariables & elemVolVars ) const
inlineinherited

The index of the wetting phase within a pore throat.

◆ wettingPhase() [2/2]

int Dumux::PoreNetwork::TwoPBaseSpatialParams< GridGeometry, Scalar, MaterialLawT, TwoPDefaultSpatialParams< GridGeometry, Scalar, MaterialLawT > >::wettingPhase ( const Element & ,
const SubControlVolume & scv,
const ElementSolutionVector & elemSol ) const
inlineinherited

The index of the wetting phase within a pore body.


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