Fronts.PorousModels module: unsaturated flow models

The PorousModels submodule defines models of unsaturated flow in porous media for use in problems solvable with Fronts.

Fronts.PorousModels.UnsaturatedFlowModelType
abstract type UnsaturatedFlowModel end

Abstract type for unsaturated flow models.

Implementation

To define a new model, make your model a subtype of UnsaturatedFlowModel and provide definitions for the relevant methods.

See also: θh, , Ch, , Kh, ,

Fronts.PorousModels.BrooksAndCoreyType
BrooksAndCorey(; n, Ks=1, l=1, α=1, θr=0, θs=1) <: UnsaturatedFlowModel
BrooksAndCorey(; n, k, l=1, α=1, θr=0, θs=1, ρ=1e3, μ=1e-3, g=9.81) <: UnsaturatedFlowModel

Create a Brooks and Corey porous model.

Keyword arguments

  • n: n parameter.
  • Ks=1: saturated hydraulic conductivity.
  • k: intrinsic permeability.
  • l=1: l parameter.
  • α=1 (\alpha<tab>): α parameter.
  • θr=0 (\theta<tab>r): residual moisture content.
  • θs=1 (\theta<tab>s): moisture content when saturated.
  • ρ=1e3 (\rho<tab>): density of the fluid.
  • μ=1e-3 (\mu<tab>): dynamic viscosity of the fluid.
  • g=9.81: magnitude of the gravitational acceleration.

References

BROOKS, R.; COREY, T. Hydraulic properties of porous media. Hydrology Papers, Colorado State University, 1964, vol. 24, p. 37.

Fronts.PorousModels.VanGenuchtenType
VanGenuchten(; n, Ks=1, l=0.5, α=1, θr=0, θs=1) <: UnsaturatedFlowModel
VanGenuchten(; m, Ks=1, l=0.5, α=1, θr=0, θs=1) <: UnsaturatedFlowModel
VanGenuchten(; n, k, l=0.5, α=1, θr=0, θs=1, ρ=1e3, μ=1e-3, g=9.81) <: UnsaturatedFlowModel
VanGenuchten(; m, k, l=0.5, α=1, θr=0, θs=1, ρ=1e3, μ=1e-3, g=9.81) <: UnsaturatedFlowModel

Create a Van Genuchten porous model.

Keyword arguments

  • n, m: n or m parameter (the parameters are related by m = 1-1/n).
  • Ks=1: saturated hydraulic conductivity.
  • k: intrinsic permeability.
  • l=0.5: l parameter.
  • α=1 (\alpha<tab>): α parameter.
  • θr=0 (\theta<tab>r): residual moisture content.
  • θs=1 (\theta<tab>s): moisture content when saturated.
  • ρ=1e3 (\rho<tab>): density of the fluid.
  • μ=1e-3 (\mu<tab>): viscosity of the fluid.
  • g=9.81: magnitude of the gravitational acceleration.

References

VAN GENUCHTEN, M. Th. A closed-form equation for predicting the hydraulic conductivity of unsaturated soils. Soil Science Society of America Journal, 1980, vol. 44, no 5, p. 892-898.

Fronts.PorousModels.LETxsType
LETxs(; Lw, Ew, Tw, Ls, Es, Ts, Ks=1, α=1, θr=0, θs=1) <: UnsaturatedFlowModel
LETxs(; Lw, Ew, Tw, Ls, Es, Ts, k, α=1, θr=0, θs=1, ρ=1e3, μ=1e-3, g=9.81) <: UnsaturatedFlowModel

Create a LETxs porous model.

Keyword arguments

  • Lw, Ew, Tw: shape parameters for the LETx permeability correlation.
  • Ls, Es, Ts: shape parameters for the LETs capillary pressure correlation.
  • Ks=1: saturated hydraulic conductivity.
  • k: intrinsic permeability.
  • α=1 (\alpha<tab>): α parameter.
  • θr=0 (\theta<tab>r): residual moisture content.
  • θs=1 (\theta<tab>s): moisture content when saturated.
  • ρ=1e3 (\rho<tab>): density of the fluid.
  • μ=1e-3 (\mu<tab>): viscosity of the fluid.
  • g=9.81: magnitude of the gravitational acceleration.

References

LOMELAND, F. Overview of the LET family of versatile correlations for flow functions. In: Proceedings of the International Symposium of the Society of Core Analysts, 2018, p. SCA2018-056.

GERLERO, G. S.; VALDEZ, A.; URTEAGA, R; KLER, P. A. Validity of capillary imbibition models in paper-based microfluidic applications. Transport in Porous Media, 2022, vol. 141, no. 7, p. 1-20.

Fronts.PorousModels.LETdType
LETd(; L, E, T, Dwt=1, θr=0, θs=1) <: UnsaturatedFlowModel

Create a LETd porous model.

Keyword arguments

  • L, E, T: shape parameters for the LETd moisture diffusivity correlation.
  • Dwt=1: constant diffusivity factor.
  • θr=0 (\theta<tab>r): residual moisture content.
  • θs=1 (\theta<tab>s): moisture content when saturated.

References

GERLERO, G. S.; VALDEZ, A.; URTEAGA, R; KLER, P. A. Validity of capillary imbibition models in paper-based microfluidic applications. Transport in Porous Media, 2022, vol. 141, no. 7, p. 1-20.

Fronts.DiffusionEquationMethod
Fronts.DiffusionEquation(pm::UnsaturatedFlowModel)
Fronts.DiffusionEquation{m}(pm::UnsaturatedFlowModel)

Moisture diffusivity equation (with unknown θ) defined with the given unsaturated flow model.

Arguments

  • pm: unsaturated flow model.

Type parameters

  • m=1: number of spatial dimensions:
    • 1 for non-radial one-dimensional diffusion (default);
    • 2 for radial diffusion in polar or cylindrical coordinates;
    • 3 for radial diffusion in spherical coordinates.
Fronts.PorousModels.RichardsEquationType
RichardsEquation(pm::UnsaturatedFlowModel)
RichardsEquation{m}(pm::UnsaturatedFlowModel)

Richards equation (with unknown h) defined with the given unsaturated flow model.

Arguments

  • pm: unsaturated flow model.

Type parameters

  • m=1: number of spatial dimensions:
    • 1 for non-radial one-dimensional diffusion (default);
    • 2 for radial diffusion in polar or cylindrical coordinates;
    • 3 for radial diffusion in spherical coordinates.
Fronts.PorousModels.θhFunction
θh(::UnsaturatedFlowModel, h)

Using the given model, evaluate the moisture content θ for the pressure head h.

Implementation

For this function to work with a custom model, the model needs to define a method.

Fronts.PorousModels.hθFunction
hθ(::UnsaturatedFlowModel, θ)¡

Using the given model, evaluate the pressure head h for the moisture content θ.

Implementation

For this function to work with a custom model, the model needs to define a method.

Fronts.PorousModels.ChFunction
Ch(::UnsaturatedFlowModel, h)

Using the given model, evaluate the capillary capacity C for the pressure head h.

Implementation

For this function to work with a custom model, the model needs to define a method, or alternatively a method of θh.

See also: θh

Fronts.PorousModels.CθFunction
Cθ(::UnsaturatedFlowModel, θ)

Using the given model, evaluate the capillary capacity C for the moisture content θ.

Implementation

For this function to work with a custom model, the model needs to define a method of it or methods of and Ch (or θh).

See also: , Ch, θh

Fronts.PorousModels.KhFunction
Kh(::UnsaturatedFlowModel, h)

Using the given model, evaluate the hydraulic conductivity K for the pressure head h.

Implementation

For this function to work with a custom model, the model needs to define a method of it or methods of and θh.

See also: , θh

Fronts.PorousModels.KθFunction
Kθ(::UnsaturatedFlowModel, θ)

Using the given model, evaluate the hydraulic conductivity K for the moisture content θ.

Implementation

For this function to work with a custom model, the model needs to define a method of it or methods of Kh and .

See also: Kh,

Fronts.PorousModels.DθFunction
Dθ(::UnsaturatedFlowModel, θ)

Obtain the moisture diffusivity D that corresponds to the volumetric water content θ with a given model.

Implementation

A default definition of this function exists for any custom UnsaturatedFlowModels that define methods of (or Kh and ) and (or one of Ch/θh).

See also: , Kh, , , Ch, θh