Permeability Parameterizations
Methods
A number of permeability parameterisations are implemented, which can be set with:
GeoParams.MaterialParameters.Permeability.ConstantPermeability
— TypeConstantPermeability(k = 1e-12m^2)
Defines a constant permeability value for a given material.
Arguments
k
: The permeability value in square meters (m^2). Default is1e-12 m^2
.
Example
rheology = SetMaterialParams(;
Phase=1,
CreepLaws=(PowerlawViscous(), LinearViscous(; η=1e21Pa * s)),
Gravity=ConstantGravity(; g=9.81.0m / s^2),
Density= MeltDependent_Density(),
Permeability = ConstantPermeability(; k=1e-12m^2),
)
GeoParams.MaterialParameters.Permeability.HazenPermeability
— TypeHazenPermeability(C = 1.0 * NoUnits, D10 = 1e-4m)
Defines the Hazen permeability equation for a given material.
\[ k = C \cdot D_{10}^2\]
Arguments
C
: The Hazen constant. Default is1.0
.D10
: The effective grain size. Default is1e-4 m
.
Example
rheology = SetMaterialParams(;
Phase=1,
CreepLaws=(PowerlawViscous(), LinearViscous(; η=1e21Pa * s)),
Gravity=ConstantGravity(; g=9.81.0m / s^2),
Density= MeltDependent_Density(),
Permeability = HazenPermeability(; C=1.0, D10=1e-4m),
)
GeoParams.MaterialParameters.Permeability.PowerLawPermeability
— TypePowerLawPermeability(c = 1.0, k0 = 1e-12m^2, ϕ = 1e-2, n = 3)
Defines the power-law permeability equation for a given material.
\[ c * k_0 * \phi^{n}\]
Arguments
c
: The power-law constant. Default is1.0
.k0
: The reference permeability. Default is1e-12 m^2
.ϕ
: The reference porosity. Default is1e-2
.n
: The exponent. Default is3
.
Example
rheology = SetMaterialParams(;
Phase=1,
CreepLaws=(PowerlawViscous(), LinearViscous(; η=1e21Pa * s)),
Gravity=ConstantGravity(; g=9.81.0m / s^2),
Density= MeltDependent_Density(),
Permeability = PowerLawPermeability(; c=1.0, k0=1e-12m^2, ϕ=1e-2, n=3),
)
GeoParams.MaterialParameters.Permeability.CarmanKozenyPermeability
— TypeCarmanKozenyPermeability(c = 1.0m^2, ϕ0 = 0.01, n = 3)
Defines the Carman-Kozeny permeability equation for a given material.
\[ k = c \left(\frac{\phi}{\phi_0}\right)^n\]
Arguments
c
: The Carman-Kozeny constant. Default is1.0 m^2
.ϕ0
: The reference porosity. Default is0.01
.n
: The exponent. Default is3
.
Example
rheology = SetMaterialParams(;
Phase=1,
CreepLaws=(PowerlawViscous(), LinearViscous(; η=1e21Pa * s)),
Gravity=ConstantGravity(; g=9.81.0m / s^2),
Density= MeltDependent_Density(),
Permeability = CarmanKozenyPermeability(; c=1.0m^2, ϕ0=0.01, n=3),
)
Computational routines
To compute the permeability, use:
GeoParams.MaterialParameters.Permeability.compute_permeability!
— Functioncompute_permeability!(k::AbstractArray{_T, N}, MatParam::NTuple{K,AbstractMaterialParamsStruct}, PhaseRatios::AbstractArray{_T, M}, P=nothing, T=nothing)
In-place computation of permeability k
for the whole domain and all phases, in case a vector with phase properties MatParam
is provided, along with P
and T
arrays. This assumes that the PhaseRatio
of every point is specified as an Integer in the PhaseRatios
array, which has one dimension more than the data arrays (and has a phase fraction between 0-1)
GeoParams.MaterialParameters.Permeability.compute_permeability
— Functioncompute_permeability(k::AbstractPermeability, args)
Computation of permeability k
for the whole domain and all phases, in case a vector with phase properties MatParam
is provided.