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 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.
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) <: 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.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) <: 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.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) <: 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.LETd
— TypeLETd(; 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.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 UnsaturatedFlowModel
s that define methods of Kθ
(or Kh
and hθ
) and Cθ
(or one of Ch
/θh
).