3.2-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
Dumux::RichardsVolumeVariables< Traits > Class Template Reference

Volume averaged quantities required by the Richards model. More...

#include <dumux/porousmediumflow/richards/volumevariables.hh>

Inheritance diagram for Dumux::RichardsVolumeVariables< Traits >:
Inheritance graph

Description

template<class Traits>
class Dumux::RichardsVolumeVariables< Traits >

Volume averaged quantities required by the Richards model.

This contains the quantities which are are constant within a finite volume in the Richards model.

Public Types

using FluidSystem = typename Traits::FluidSystem
 Export type of the fluid system. More...
 
using FluidState = typename Traits::FluidState
 Export type of the fluid state. More...
 
using SolidState = typename Traits::SolidState
 
using SolidSystem = typename Traits::SolidSystem
 Export type of solid system. More...
 
using Indices = typename Traits::ModelTraits::Indices
 
using PrimaryVariables = typename Traits::PrimaryVariables
 Export the type used for the primary variables. More...
 

Public Member Functions

template<class ElemSol , class Problem , class Element , class Scv >
void update (const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv)
 Updates all quantities for a given control volume. More...
 
template<class ElemSol , class Problem , class Element , class Scv >
void completeFluidState (const ElemSol &elemSol, const Problem &problem, const Element &element, const Scv &scv, FluidState &fluidState, SolidState &solidState)
 Fills the fluid state according to the primary variables. More...
 
const FluidStatefluidState () const
 Returns the fluid configuration at the given primary variables. More...
 
const SolidStatesolidState () const
 Returns the phase state for the control volume. More...
 
Scalar temperature () const
 Returns the temperature. More...
 
Scalar porosity () const
 Returns the average porosity [] within the control volume. More...
 
const PermeabilityType & permeability () const
 Returns the permeability within the control volume in \([m^2]\). More...
 
Scalar saturation (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the average absolute saturation [] of a given fluid phase within the finite volume. More...
 
Scalar density (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the average mass density \(\mathrm{[kg/m^3]}\) of a given fluid phase within the control volume. More...
 
Scalar pressure (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the effective pressure \(\mathrm{[Pa]}\) of a given phase within the control volume. More...
 
Scalar mobility (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the effective mobility \(\mathrm{[1/(Pa*s)]}\) of a given phase within the control volume. More...
 
Scalar viscosity (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the dynamic viscosity \(\mathrm{[Pa*s]}\) of a given phase within the control volume. More...
 
Scalar relativePermeability (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns relative permeability [-] of a given phase within the control volume. More...
 
Scalar capillaryPressure () const
 Returns the effective capillary pressure \(\mathrm{[Pa]}\) within the control volume. More...
 
Scalar pressureHead (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the pressureHead \(\mathrm{[cm]}\) of a given phase within the control volume. More...
 
Scalar waterContent (const int phaseIdx=FluidSystem::liquidPhaseIdx) const
 Returns the water content of a fluid phase within the finite volume. More...
 
Scalar moleFraction (const int phaseIdx, const int compIdx) const
 Returns the mole fraction of a given component in a given phase within the control volume in \([-]\). More...
 
Scalar massFraction (const int phaseIdx, const int compIdx) const
 Returns the mole fraction of a given component in a given phase within the control volume in \([-]\). More...
 
Scalar molarDensity (const int phaseIdx) const
 Returns the mass density of a given phase within the control volume in \([mol/m^3]\). More...
 
Scalar diffusionCoefficient (int phaseIdx, int compIdx) const
 Returns the binary diffusion coefficients for a phase in \([m^2/s]\). More...
 
Scalar diffusionCoefficient (int phaseIdx, int compIIdx, int compJIdx) const
 Returns the binary diffusion coefficients for a phase in \([m^2/s]\). More...
 
Scalar effectiveDiffusionCoefficient (int phaseIdx, int compIIdx, int compJIdx) const
 Returns the effective diffusion coefficients for a phase in \([m^2/s]\). More...
 
const PrimaryVariablespriVars () const
 Returns the vector of primary variables. More...
 
Scalar priVar (const int pvIdx) const
 Returns a component of primary variable vector. More...
 
Scalar extrusionFactor () const
 Returns how much the sub-control volume is extruded. More...
 

Static Public Member Functions

static constexpr bool enableWaterDiffusionInAir ()
 If water diffusion in air is enabled. More...
 
static constexpr int numFluidPhases ()
 Return number of phases considered by the model. More...
 
static constexpr int numFluidComponents ()
 Return number of components considered by the model. More...
 

Protected Attributes

FluidState fluidState_
 the fluid state More...
 
SolidState solidState_
 
Scalar relativePermeabilityWetting_
 the relative permeability of the wetting phase More...
 
PermeabilityType permeability_
 the instrinsic permeability More...
 
Scalar minPc_
 the minimum capillary pressure (entry pressure) More...
 
Scalar moleFraction_ [numPhases]
 The water mole fractions in water and air. More...
 
Scalar massFraction_ [numPhases]
 The water mass fractions in water and air. More...
 
Scalar molarDensity_ [numPhases]
 The molar density of water and air. More...
 
Scalar effectiveDiffCoeff_
 

Member Typedef Documentation

◆ FluidState

template<class Traits >
using Dumux::RichardsVolumeVariables< Traits >::FluidState = typename Traits::FluidState

Export type of the fluid state.

◆ FluidSystem

template<class Traits >
using Dumux::RichardsVolumeVariables< Traits >::FluidSystem = typename Traits::FluidSystem

Export type of the fluid system.

◆ Indices

template<class Traits >
using Dumux::RichardsVolumeVariables< Traits >::Indices = typename Traits::ModelTraits::Indices

◆ PrimaryVariables

template<class Traits >
using Dumux::PorousMediumFlowVolumeVariables< Traits >::PrimaryVariables = typename Traits::PrimaryVariables
inherited

Export the type used for the primary variables.

◆ SolidState

template<class Traits >
using Dumux::RichardsVolumeVariables< Traits >::SolidState = typename Traits::SolidState

Export type of the fluid state Export type of solid state

◆ SolidSystem

template<class Traits >
using Dumux::RichardsVolumeVariables< Traits >::SolidSystem = typename Traits::SolidSystem

Export type of solid system.

Member Function Documentation

◆ capillaryPressure()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::capillaryPressure ( ) const
inline

Returns the effective capillary pressure \(\mathrm{[Pa]}\) within the control volume.

The capillary pressure is defined as the difference in pressures of the non-wetting and the wetting phase, i.e.

\[ p_c = p_n - p_w \]

Note
Capillary pressures are always larger than the entry pressure This regularization doesn't affect the residual in which pc is not needed.

◆ completeFluidState()

template<class Traits >
template<class ElemSol , class Problem , class Element , class Scv >
void Dumux::RichardsVolumeVariables< Traits >::completeFluidState ( const ElemSol &  elemSol,
const Problem &  problem,
const Element &  element,
const Scv &  scv,
FluidState fluidState,
SolidState solidState 
)
inline

Fills the fluid state according to the primary variables.

Taking the information from the primary variables, the fluid state is filled with every information that is necessary to evaluate the model's local residual.

Parameters
elemSolA vector containing all primary variables connected to the element
problemThe problem at hand.
elementThe current element.
scvThe subcontrol volume.
fluidStateThe fluid state to fill.
solidStateThe solid state to fill.

◆ density()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::density ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the average mass density \(\mathrm{[kg/m^3]}\) of a given fluid phase within the control volume.

Parameters
phaseIdxThe index of the fluid phase

◆ diffusionCoefficient() [1/2]

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::diffusionCoefficient ( int  phaseIdx,
int  compIdx 
) const
inline

Returns the binary diffusion coefficients for a phase in \([m^2/s]\).

Parameters
phaseIdxThe phase index
compIdxThe component index

◆ diffusionCoefficient() [2/2]

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::diffusionCoefficient ( int  phaseIdx,
int  compIIdx,
int  compJIdx 
) const
inline

Returns the binary diffusion coefficients for a phase in \([m^2/s]\).

◆ effectiveDiffusionCoefficient()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::effectiveDiffusionCoefficient ( int  phaseIdx,
int  compIIdx,
int  compJIdx 
) const
inline

Returns the effective diffusion coefficients for a phase in \([m^2/s]\).

◆ enableWaterDiffusionInAir()

template<class Traits >
static constexpr bool Dumux::RichardsVolumeVariables< Traits >::enableWaterDiffusionInAir ( )
inlinestaticconstexpr

If water diffusion in air is enabled.

◆ extrusionFactor()

template<class Traits >
Scalar Dumux::PorousMediumFlowVolumeVariables< Traits >::extrusionFactor ( ) const
inlineinherited

Returns how much the sub-control volume is extruded.

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.

◆ fluidState()

template<class Traits >
const FluidState & Dumux::RichardsVolumeVariables< Traits >::fluidState ( ) const
inline

Returns the fluid configuration at the given primary variables.

◆ massFraction()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::massFraction ( const int  phaseIdx,
const int  compIdx 
) const
inline

Returns the mole fraction of a given component in a given phase within the control volume in \([-]\).

Parameters
phaseIdxThe phase index
compIdxThe component index

◆ mobility()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::mobility ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the effective mobility \(\mathrm{[1/(Pa*s)]}\) of a given phase within the control volume.

The mobility of a fluid phase is defined as the relative permeability of the phase (given by the chosen material law) divided by the dynamic viscosity of the fluid, i.e.

\[ \lambda_\alpha := \frac{k_{r\alpha}}{\mu_\alpha} \]

Parameters
phaseIdxThe index of the fluid phase

◆ molarDensity()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::molarDensity ( const int  phaseIdx) const
inline

Returns the mass density of a given phase within the control volume in \([mol/m^3]\).

Parameters
phaseIdxThe phase index

◆ moleFraction()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::moleFraction ( const int  phaseIdx,
const int  compIdx 
) const
inline

Returns the mole fraction of a given component in a given phase within the control volume in \([-]\).

Parameters
phaseIdxThe phase index
compIdxThe component index

◆ numFluidComponents()

template<class Traits >
static constexpr int Dumux::PorousMediumFlowVolumeVariables< Traits >::numFluidComponents ( )
inlinestaticconstexprinherited

Return number of components considered by the model.

◆ numFluidPhases()

template<class Traits >
static constexpr int Dumux::PorousMediumFlowVolumeVariables< Traits >::numFluidPhases ( )
inlinestaticconstexprinherited

Return number of phases considered by the model.

◆ permeability()

template<class Traits >
const PermeabilityType & Dumux::RichardsVolumeVariables< Traits >::permeability ( ) const
inline

Returns the permeability within the control volume in \([m^2]\).

◆ porosity()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::porosity ( ) const
inline

Returns the average porosity [] within the control volume.

The porosity is defined as the ratio of the pore space to the total volume, i.e.

\[ \Phi := \frac{V_{pore}}{V_{pore} + V_{rock}} \]

◆ pressure()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::pressure ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the effective pressure \(\mathrm{[Pa]}\) of a given phase within the control volume.

For the non-wetting phase (i.e. the gas phase), we assume infinite mobility, which implies that the non-wetting phase pressure is equal to the finite volume's reference pressure defined by the problem.

Parameters
phaseIdxThe index of the fluid phase

◆ pressureHead()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::pressureHead ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the pressureHead \(\mathrm{[cm]}\) of a given phase within the control volume.

For the non-wetting phase (i.e. the gas phase), we assume infinite mobility, which implies that the non-wetting phase pressure is equal to the finite volume's reference pressure defined by the problem.

Parameters
phaseIdxThe index of the fluid phase
Note
this function is here as a convenience to the user to not have to manually do a conversion. It is not correct if the density is not constant or the gravity different

◆ priVar()

template<class Traits >
Scalar Dumux::PorousMediumFlowVolumeVariables< Traits >::priVar ( const int  pvIdx) const
inlineinherited

Returns a component of primary variable vector.

Parameters
pvIdxThe index of the primary variable of interest

◆ priVars()

template<class Traits >
const PrimaryVariables & Dumux::PorousMediumFlowVolumeVariables< Traits >::priVars ( ) const
inlineinherited

Returns the vector of primary variables.

◆ relativePermeability()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::relativePermeability ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns relative permeability [-] of a given phase within the control volume.

Parameters
phaseIdxThe index of the fluid phase

◆ saturation()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::saturation ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the average absolute saturation [] of a given fluid phase within the finite volume.

The saturation of a fluid phase is defined as the fraction of the pore volume filled by it, i.e.

\[ S_\alpha := \frac{V_\alpha}{V_{pore}} = \phi \frac{V_\alpha}{V} \]

Parameters
phaseIdxThe index of the fluid phase

◆ solidState()

template<class Traits >
const SolidState & Dumux::RichardsVolumeVariables< Traits >::solidState ( ) const
inline

Returns the phase state for the control volume.

◆ temperature()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::temperature ( ) const
inline

Returns the temperature.

◆ update()

template<class Traits >
template<class ElemSol , class Problem , class Element , class Scv >
void Dumux::RichardsVolumeVariables< Traits >::update ( const ElemSol &  elemSol,
const Problem &  problem,
const Element &  element,
const Scv &  scv 
)
inline

Updates all quantities for a given control volume.

Parameters
elemSolA vector containing all primary variables connected to the element
problemThe object specifying the problem which ought to be simulated
elementAn element which contains part of the control volume
scvThe sub-control volume

◆ viscosity()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::viscosity ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the dynamic viscosity \(\mathrm{[Pa*s]}\) of a given phase within the control volume.

Parameters
phaseIdxThe index of the fluid phase
Note
The non-wetting phase is infinitely mobile

◆ waterContent()

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::waterContent ( const int  phaseIdx = FluidSystem::liquidPhaseIdx) const
inline

Returns the water content of a fluid phase within the finite volume.

The water content is defined as the fraction of the saturation devided by the porosity.

Parameters
phaseIdxThe index of the fluid phase
Note
this function is here as a convenience to the user to not have to manually do a conversion.

Member Data Documentation

◆ effectiveDiffCoeff_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::effectiveDiffCoeff_
protected

◆ fluidState_

template<class Traits >
FluidState Dumux::RichardsVolumeVariables< Traits >::fluidState_
protected

the fluid state

◆ massFraction_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::massFraction_[numPhases]
protected

The water mass fractions in water and air.

◆ minPc_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::minPc_
protected

the minimum capillary pressure (entry pressure)

◆ molarDensity_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::molarDensity_[numPhases]
protected

The molar density of water and air.

◆ moleFraction_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::moleFraction_[numPhases]
protected

The water mole fractions in water and air.

◆ permeability_

template<class Traits >
PermeabilityType Dumux::RichardsVolumeVariables< Traits >::permeability_
protected

the instrinsic permeability

◆ relativePermeabilityWetting_

template<class Traits >
Scalar Dumux::RichardsVolumeVariables< Traits >::relativePermeabilityWetting_
protected

the relative permeability of the wetting phase

◆ solidState_

template<class Traits >
SolidState Dumux::RichardsVolumeVariables< Traits >::solidState_
protected

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