Skip to content

Permeability Parameterizations

Methods

A number of permeability parameterisations are implemented, which can be set with:

GeoParams.MaterialParameters.Permeability.ConstantPermeability Type
julia
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 is 1e-12 m^2.

Example

julia
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),
                      )
source
GeoParams.MaterialParameters.Permeability.HazenPermeability Type
julia
HazenPermeability(C = 1.0 * NoUnits, D10 = 1e-4m)

Defines the Hazen permeability equation for a given material.

k=CD102

Arguments

  • C: The Hazen constant. Default is 1.0.

  • D10: The effective grain size. Default is 1e-4 m.

Example

julia
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),
                      )
source
GeoParams.MaterialParameters.Permeability.PowerLawPermeability Type
julia
PowerLawPermeability(c = 1.0, k0 = 1e-12m^2, ϕ = 1e-2, n = 3)

Defines the power-law permeability equation for a given material.

ck0ϕn

Arguments

  • c: The power-law constant. Default is 1.0.

  • k0: The reference permeability. Default is 1e-12 m^2.

  • ϕ: The reference porosity. Default is 1e-2.

  • n: The exponent. Default is 3.

Example

julia
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),
                      )
source
GeoParams.MaterialParameters.Permeability.CarmanKozenyPermeability Type
julia
CarmanKozenyPermeability(c = 1.0m^2, ϕ0 = 0.01, n = 3)

Defines the Carman-Kozeny permeability equation for a given material.

k=c(ϕϕ0)n

Arguments

  • c: The Carman-Kozeny constant. Default is 1.0 m^2.

  • ϕ0: The reference porosity. Default is 0.01.

  • n: The exponent. Default is 3.

Example

julia
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),
                      )
source

Computational routines

To compute the permeability, use:

GeoParams.MaterialParameters.Permeability.compute_permeability! Function
julia
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)

source
GeoParams.MaterialParameters.Permeability.compute_permeability Function
julia
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.

source