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.UnsaturatedFlowModel — Typeabstract type UnsaturatedFlowModel endAbstract 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.
Fronts.PorousModels.BrooksAndCorey — TypeBrooksAndCorey(; 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) <: UnsaturatedFlowModelCreate 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.VanGenuchten — TypeVanGenuchten(; 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) <: UnsaturatedFlowModelCreate 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.LETxs — TypeLETxs(; 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) <: UnsaturatedFlowModelCreate 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.LETd — TypeLETd(; L, E, T, Dwt=1, θr=0, θs=1) <: UnsaturatedFlowModelCreate 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.DiffusionEquation — MethodFronts.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.RichardsEquation — TypeRichardsEquation(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.θh — Functionθ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θ — Functionhθ(::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.Ch — FunctionCh(::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θ — FunctionCθ(::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 hθ and Ch (or θh).
Fronts.PorousModels.Kh — FunctionKh(::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 Kθ and θh.
Fronts.PorousModels.Kθ — FunctionKθ(::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 hθ.
Fronts.PorousModels.Dθ — FunctionDθ(::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 Kθ (or Kh and hθ) and Cθ (or one of Ch/θh).