3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Namespaces
porousmediumflow/richards/model.hh File Reference

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

#include <dune/common/fvector.hh>
#include <dumux/common/properties.hh>
#include <dumux/porousmediumflow/immiscible/localresidual.hh>
#include <dumux/porousmediumflow/compositional/switchableprimaryvariables.hh>
#include <dumux/material/fluidmatrixinteractions/diffusivitymillingtonquirk.hh>
#include <dumux/material/fluidmatrixinteractions/2p/thermalconductivity/somerton.hh>
#include <dumux/material/components/simpleh2o.hh>
#include <dumux/material/fluidsystems/h2oair.hh>
#include <dumux/material/fluidstates/immiscible.hh>
#include <dumux/porousmediumflow/properties.hh>
#include <dumux/porousmediumflow/nonisothermal/model.hh>
#include <dumux/porousmediumflow/nonisothermal/indices.hh>
#include <dumux/porousmediumflow/nonisothermal/iofields.hh>
#include "indices.hh"
#include "volumevariables.hh"
#include "iofields.hh"
#include "localresidual.hh"
#include "velocityoutput.hh"
#include "balanceequationopts.hh"

Go to the source code of this file.

Description

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

In the unsaturated zone, Richards' equation

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

is frequently used to approximate the water distribution above the groundwater level.

It can be derived from the two-phase equations, i.e.

\[ \phi\frac{\partial S_\alpha \varrho_\alpha}{\partial t} - \text{div} \left\lbrace \varrho_\alpha \frac{k_{r\alpha}}{\mu_\alpha}\; \mathbf{K} \; \left( \text{\textbf{grad}} p_\alpha - \varrho_\alpha \textbf{g} \right) \right\rbrace = q_\alpha, \]

where \(\alpha \in \{w, n\}\) is the fluid phase, \(\kappa \in \{ w, a \}\) are the components, \(\rho_\alpha\) is the fluid density, \(S_\alpha\) is the fluid saturation, \(\phi\) is the porosity of the soil, \(k_{r\alpha}\) is the relative permeability for the fluid, \(\mu_\alpha\) is the fluid's dynamic viscosity, \(\mathbf{K}\) is the intrinsic permeability, \(p_\alpha\) is the fluid pressure and \(g\) is the potential of the gravity field.

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 \(\frac{k_{r\alpha}}{\mu_\alpha}\) term typically is much larger for the gas phase than for the wetting phase. For this reason, the Richards model assumes that \(\frac{k_{rn}}{\mu_n}\) 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_n - p_w) \]

holds, where \(p_n\) is a given reference 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!

Classes

struct  Dumux::RichardsModelTraits< enableDiff >
 Specifies a number properties of the Richards model. More...
 
struct  Dumux::RichardsVolumeVariablesTraits< PV, FSY, FST, SSY, SST, PT, MT, DT, EDM >
 Traits class for the Richards model. More...
 
struct  Dumux::Properties::TTag::Richards
 
struct  Dumux::Properties::TTag::RichardsNI
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::Richards >
 The local residual operator. More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::Richards >
 Set the vtk output fields specific to this model. More...
 
struct  Dumux::Properties::VelocityOutput< TypeTag, TTag::Richards >
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::Richards >
 The model traits. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::Richards >
 Set the volume variables property. More...
 
struct  Dumux::Properties::EnableWaterDiffusionInAir< TypeTag, TTag::Richards >
 
struct  Dumux::Properties::EffectiveDiffusivityModel< TypeTag, TTag::Richards >
 Use the model after Millington (1961) for the effective diffusivity. More...
 
struct  Dumux::Properties::PrimaryVariables< TypeTag, TTag::Richards >
 The primary variables vector for the richards model. More...
 
struct  Dumux::Properties::FluidSystem< TypeTag, TTag::Richards >
 The fluid system used by the model. More...
 
struct  Dumux::Properties::FluidState< TypeTag, TTag::Richards >
 The fluid state which is used by the volume variables to store the thermodynamic state. This should be chosen appropriately for the model ((non-)isothermal, equilibrium, ...). This can be done in the problem. More...
 
struct  Dumux::Properties::BalanceEqOpts< TypeTag, TTag::Richards >
 Set a richards specific class for the balance equation options. More...
 
struct  Dumux::Properties::ThermalConductivityModel< TypeTag, TTag::RichardsNI >
 Somerton is used as default model to compute the effective thermal heat conductivity. More...
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::RichardsNI >
 set non-isothermal model traits More...
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::RichardsNI >
 Set the vtk output fields specific to th non-isothermal model. More...
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::RichardsNI >
 Set the volume variables property. More...
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for porousmediumflow/richards/model.hh: