Permeability Parameterizations
Methods
A number of permeability parameterisations are implemented, which can be set with:
GeoParams.MaterialParameters.Permeability.ConstantPermeability Type
ConstantPermeability(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 Type
HazenPermeability(C = 1.0 * NoUnits, D10 = 1e-4m)Defines the Hazen permeability equation for a given material.
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 Type
PowerLawPermeability(c = 1.0, k0 = 1e-12m^2, ϕ = 1e-2, n = 3)Defines the power-law permeability equation for a given material.
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 Type
CarmanKozenyPermeability(c = 1.0m^2, ϕ0 = 0.01, n = 3)Defines the Carman-Kozeny permeability equation for a given material.
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! Function
compute_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 Function
compute_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.