3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > Class Template Reference

The default class for spatial parameters for two-phase pore-network models. More...

#include <dumux/porenetwork/2p/spatialparams.hh>

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

Description

template<class GridGeometry, class Scalar, class LocalRules>
class Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >

The default class for spatial parameters for two-phase pore-network models.

Public Types

using PermeabilityType = Scalar
 

Public Member Functions

 TwoPDefaultSpatialParams (std::shared_ptr< const GridGeometry > gridGeometry)
 
template<class FluidSystem >
int wettingPhaseAtPos (const GlobalPosition &globalPos) const
 Function for defining which phase is to be considered as the wetting phase. More...
 
int contactAngleAtPos (const GlobalPosition &globalPos) const
 Function for defining the Contact Angle. More...
 
Scalar surfaceTensionAtPos (const GlobalPosition &globalPos) const
 Function for defining the surface Tension. More...
 
int wettingPhase (const Element &element, const ElementVolumeVariables &elemVolVars) const
 The index of the wetting phase within a pore throat. More...
 
int wettingPhase (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 The index of the wetting phase within a pore body. More...
 
Scalar contactAngle (const Element &element, const ElementVolumeVariables &elemVolVars) const
 The contact angle within a pore throat \([rad]\). More...
 
Scalar contactAngle (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 The contact angle within a pore body \([rad]\). More...
 
Scalar surfaceTension (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Returns the surface tension \( [N/m] \). More...
 
const Scalar pcEntry (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Return the element (throat) specific entry capillary pressure \( Pa\). More...
 
const Scalar pcSnapoff (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Return the element (throat) specific snap-off capillary pressure \( Pa\). More...
 
auto fluidMatrixInteraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Returns the parameter object for the pore-local pc-Sw law. More...
 
const Dune::ReservedVector< Scalar, 4 > & cornerHalfAngles (const Element &element) const
 
Scalar throatLength (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Length of the throat \([m]\). Can be solution-dependent. More...
 
Scalar throatInscribedRadius (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Inscribed radius of the throat \([m]\). Can be solution-dependent. More...
 
Scalar throatCrossSectionalArea (const Element &element, const ElementVolumeVariables &elemVolVars) const
 Cross-sectional area of the throat \([m]\). Can be solution-dependent. More...
 
Scalar poreInscribedRadius (const Element &element, const SubControlVolume &scv, const ElementSolutionVector &elemSol) const
 Inscribed radius of the pore body \([m]\). Can be solution-dependent. More...
 
const GridView & gridView () const
 Returns a reference to the gridview. More...
 
Scalar permeabilityAtPos (const GlobalPosition &globalPos) const
 Required for compatibility reasons with porous medium-flow models. More...
 
Scalar porosityAtPos (const GlobalPosition &globalPos) const
 Required for compatibility reasons with porous medium-flow models. More...
 
decltype(auto) permeability (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Function for defining the (intrinsic) permeability \([m^2]\). More...
 
Scalar beaversJosephCoeffAtPos (const GlobalPosition &globalPos) const
 Function for defining the Beavers-Joseph coefficient for multidomain problems \(\mathrm{[-]}\). More...
 
Scalar forchCoeff (const SubControlVolumeFace &scvf) const
 Apply the Forchheimer coefficient for inertial forces calculation. More...
 
Scalar porosity (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Function for defining the porosity. That is possibly solution dependent. More...
 
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. More...
 
Scalar inertVolumeFraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol, int compIdx) const
 
Scalar inertVolumeFraction (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol, int compIdx) const
 
Scalar extrusionFactor (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Return how much the domain is extruded at a given sub-control volume. More...
 
Scalar extrusionFactorAtPos (const GlobalPosition &globalPos) const
 Return how much the domain is extruded at a given position. More...
 
Scalar temperature (const Element &element, const SubControlVolume &scv, const ElementSolution &elemSol) const
 Return the temperature in the given sub-control volume. More...
 
Scalar temperatureAtPos (const GlobalPosition &globalPos) const
 Return the temperature in the domain at the given position. More...
 
const GravityVector & gravity (const GlobalPosition &pos) const
 Returns the acceleration due to gravity \(\mathrm{[m/s^2]}\). More...
 
const GridGeometrygridGeometry () const
 The finite volume grid geometry. More...
 

Static Public Member Functions

static constexpr bool evaluatePermeabilityAtScvfIP ()
 If the permeability should be evaluated directly at the scvf integration point (for convergence tests with analytical and continuous perm functions) or is evaluated at the scvs (for permeability fields with discontinuities) -> default. More...
 

Protected Member Functions

TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > & asImp_ ()
 Returns the implementation of the spatial parameters (static polymorphism) More...
 
const TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > & asImp_ () const
 Returns the implementation of the spatial parameters (static polymorphism) More...
 

Member Typedef Documentation

◆ PermeabilityType

using Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::PermeabilityType = Scalar
inherited

Constructor & Destructor Documentation

◆ TwoPDefaultSpatialParams()

template<class GridGeometry , class Scalar , class LocalRules >
Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >::TwoPDefaultSpatialParams ( std::shared_ptr< const GridGeometry gridGeometry)
inline

Member Function Documentation

◆ asImp_() [1/2]

TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > & Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::asImp_ ( )
inlineprotectedinherited

Returns the implementation of the spatial parameters (static polymorphism)

◆ asImp_() [2/2]

const TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > & Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::asImp_ ( ) const
inlineprotectedinherited

Returns the implementation of the spatial parameters (static polymorphism)

◆ beaversJosephCoeffAtPos()

Scalar Dumux::FVPorousMediumFlowSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::beaversJosephCoeffAtPos ( const GlobalPosition &  globalPos) const
inlineinherited

Function for defining the Beavers-Joseph coefficient for multidomain problems \(\mathrm{[-]}\).

Returns
Beavers-Joseph coefficient \(\mathrm{[-]}\)
Parameters
globalPosThe global position

◆ contactAngle() [1/2]

Scalar Dumux::PoreNetwork::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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

◆ contactAngleAtPos()

template<class GridGeometry , class Scalar , class LocalRules >
int Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >::contactAngleAtPos ( const GlobalPosition &  globalPos) const
inline

Function for defining the Contact Angle.

Returns
the contact angle
Parameters
globalPosThe global position

◆ cornerHalfAngles()

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

◆ evaluatePermeabilityAtScvfIP()

static constexpr bool Dumux::FVPorousMediumFlowSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::evaluatePermeabilityAtScvfIP ( )
inlinestaticconstexprinherited

If the permeability should be evaluated directly at the scvf integration point (for convergence tests with analytical and continuous perm functions) or is evaluated at the scvs (for permeability fields with discontinuities) -> default.

◆ extrusionFactor()

Scalar Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::extrusionFactor ( const Element &  element,
const SubControlVolume &  scv,
const ElementSolution &  elemSol 
) const
inlineinherited

Return how much the domain is extruded at a given sub-control volume.

This means the factor by which a lower-dimensional (1D or 2D) entity needs to be expanded to get a full dimensional cell. The default is 1.0 which means that 1D problems are actually thought as pipes with a cross section of 1 m^2 and 2D problems are assumed to extend 1 m to the back.

◆ extrusionFactorAtPos()

Scalar Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::extrusionFactorAtPos ( const GlobalPosition &  globalPos) const
inlineinherited

Return how much the domain is extruded at a given position.

◆ fluidMatrixInteraction()

auto Dumux::PoreNetwork::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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

◆ forchCoeff()

Scalar Dumux::FVPorousMediumFlowSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::forchCoeff ( const SubControlVolumeFace &  scvf) const
inlineinherited

Apply the Forchheimer coefficient for inertial forces calculation.

Parameters
scvfThe sub-control volume face where the intrinsic velocity ought to be calculated.

◆ gravity()

const GravityVector & Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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 evaluate the gravity vector

◆ gridGeometry()

const GridGeometry & Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::gridGeometry ( ) const
inlineinherited

The finite volume grid geometry.

◆ gridView()

const GridView & Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::gridView ( ) const
inlineinherited

Returns a reference to the gridview.

◆ inertVolumeFraction() [1/3]

Scalar Dumux::FVPorousMediumSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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.

◆ inertVolumeFraction() [2/3]

Scalar Dumux::FVPorousMediumSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::inertVolumeFraction ( const Element &  element,
const SubControlVolume &  scv,
const ElementSolution &  elemSol,
int  compIdx 
) const
inlineinherited

◆ inertVolumeFraction() [3/3]

Scalar Dumux::FVPorousMediumSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::inertVolumeFraction ( const Element &  element,
const SubControlVolume &  scv,
const ElementSolution &  elemSol,
int  compIdx 
) const
inlineinherited

◆ pcEntry()

const Scalar Dumux::PoreNetwork::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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()

decltype(auto) Dumux::FVPorousMediumFlowSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::permeability ( const Element &  element,
const SubControlVolume &  scv,
const ElementSolution &  elemSol 
) const
inlineinherited

Function for defining the (intrinsic) permeability \([m^2]\).

Note
It is possibly solution dependent.
Parameters
elementThe current element
scvThe sub-control volume inside the element.
elemSolThe solution at the dofs connected to the element.
Returns
permeability

◆ permeabilityAtPos()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::permeabilityAtPos ( const GlobalPosition &  globalPos) const
inlineinherited

Required for compatibility reasons with porous medium-flow models.

◆ poreInscribedRadius()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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()

Scalar Dumux::FVPorousMediumSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::porosityAtPos ( const GlobalPosition &  globalPos) const
inlineinherited

Required for compatibility reasons with porous medium-flow models.

◆ surfaceTension()

Scalar Dumux::PoreNetwork::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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.

◆ surfaceTensionAtPos()

template<class GridGeometry , class Scalar , class LocalRules >
Scalar Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >::surfaceTensionAtPos ( const GlobalPosition &  globalPos) const
inline

Function for defining the surface Tension.

Returns
the surface tension
Parameters
globalPosThe global position

◆ temperature()

Scalar Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::temperature ( const Element &  element,
const SubControlVolume &  scv,
const ElementSolution &  elemSol 
) const
inlineinherited

Return the temperature in the given sub-control volume.

◆ temperatureAtPos()

Scalar Dumux::FVSpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::temperatureAtPos ( const GlobalPosition &  globalPos) const
inlineinherited

Return the temperature in the domain at the given position.

Parameters
globalPosThe position in global coordinates where the temperature should be specified.

◆ throatCrossSectionalArea()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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()

Scalar Dumux::PoreNetwork::SpatialParams< GridGeometry, Scalar, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::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::TwoPSpatialParams< GridGeometry, Scalar, LocalRules, TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules > >::wettingPhase ( const Element &  element,
const ElementVolumeVariables &  elemVolVars 
) const
inlineinherited

The index of the wetting phase within a pore throat.

◆ wettingPhase() [2/2]

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

The index of the wetting phase within a pore body.

◆ wettingPhaseAtPos()

template<class GridGeometry , class Scalar , class LocalRules >
template<class FluidSystem >
int Dumux::PoreNetwork::TwoPDefaultSpatialParams< GridGeometry, Scalar, LocalRules >::wettingPhaseAtPos ( const GlobalPosition &  globalPos) const
inline

Function for defining which phase is to be considered as the wetting phase.

Returns
the wetting phase index
Parameters
globalPosThe global position

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