version 3.9-dev

Richards flow. More...

Description

This model implements a variant of the Richards' equation for quasi-twophase flow.

In the unsaturated zone, Richards' equation is frequently used to approximate the water distribution above the groundwater level (in the unsaturated zone):

\[ \frac{\partial (\phi S_w \varrho_w)}{\partial t} - \nabla \cdot \left\lbrace \varrho_w \frac{k_{rw}}{\mu_w} \; \mathbf{K} \; \left( \nabla p_w - \varrho_w \textbf{g} \right) \right\rbrace = q_w, \]

where:

It can be derived from the two-phase flow equations. In contrast to the full two-phase model, the Richards model assumes gas as the nonwetting fluid and that it exhibits a much lower viscosity than the (liquid) wetting phase. (For example at atmospheric pressure and at room temperature, the viscosity of air is only about \(1\%\) of the viscosity of liquid water.) As a consequence, the mobility ( \(\frac{k_{r}}{\mu}\)) is typically much larger for the gas phase than for the wetting phase. For this reason, the Richards model assumes that gas phase mobility is infinitely large. This implies that the pressure of the gas phase is equivalent to the static pressure distribution and that therefore, mass conservation only needs to be considered for the wetting phase.

The model thus chooses the absolute pressure of the wetting phase \(p_w\) as its only primary variable. The wetting phase saturation is calculated using the inverse of the capillary pressure, i.e.

\[ S_w = p_c^{-1}(p_g - p_w) \]

holds, where \(p_g\) is a given reference gas pressure. Nota bene, that the last step is assumes that the capillary pressure-saturation curve can be uniquely inverted, so it is not possible to set the capillary pressure to zero when using the Richards model!

Files

file  porousmediumflow/richards/balanceequationopts.hh
 Traits class to set options used by the local residual when when evaluating the balance equations.
 
file  porousmediumflow/richards/indices.hh
 Index names for the Richards model.
 
file  porousmediumflow/richards/iofields.hh
 Adds I/O fields specific to the Richards model.
 
file  porousmediumflow/richards/localresidual.hh
 Element-wise calculation of the Jacobian matrix for problems using the Richards fully implicit models.
 
file  porousmediumflow/richards/model.hh
 This model implements a variant of the Richards' equation for quasi-twophase flow.
 
file  porousmediumflow/richards/newtonsolver.hh
 A Richards model Newton solver.
 
file  porousmediumflow/richards/velocityoutput.hh
 Velocity output for the Richards model.
 
file  porousmediumflow/richards/volumevariables.hh
 Volume averaged quantities required by the Richards model.
 

Classes

struct  Dumux::RichardsBalanceEquationOptions< FluidSystem >
 Traits class to set options used by the local residual when when evaluating the balance equations. More...
 
struct  Dumux::RichardsIndices
 Index names for the Richards model. More...
 
class  Dumux::RichardsIOFields
 Adds I/O fields specific to the Richards model. More...
 
class  Dumux::RichardsLocalResidual< TypeTag >
 Element-wise calculation of the Jacobian matrix for problems using the Richards fully implicit models. More...
 
struct  Dumux::RichardsModelTraits
 Specifies a number properties of the Richards model. More...
 
struct  Dumux::RichardsVolumeVariablesTraits< PV, FSY, FST, SSY, SST, PT, MT >
 Traits class for the Richards model. More...
 
class  Dumux::RichardsNewtonSolver< Assembler, LinearSolver, Reassembler, Comm >
 A Richards model specific Newton solver. More...
 
class  Dumux::RichardsVelocityOutput< GridVariables, FluxVariables >
 Velocity output policy for the Richards model. More...
 
class  Dumux::RichardsVolumeVariables< Traits >
 Volume averaged quantities required by the Richards model. More...
 
struct  Dumux::ExtendedRichardsVolumeVariablesTraits< PV, FSY, FST, SSY, SST, PT, MT, DT, EDM >
 Traits class for the Richards model. More...
 
class  Dumux::ExtendedRichardsPrimaryVariableSwitch
 The primary variable switch controlling the phase presence state variable. More...