Skip to content

Conductivity

Methods

Thermal conductivity is defined as

GeoParams.MaterialParameters.Conductivity.ConstantConductivity Type
julia
ConstantConductivity(k=3.0W/m/K)

Set a constant conductivity

k=cst

where k is the thermal conductivity [W/m/K].

source
GeoParams.MaterialParameters.Conductivity.T_Conductivity_Whittington Type
julia
T_Conductivity_Whittington()

Sets a temperature-dependent conductivity following the parameterization of _Whittington, A.G., Hofmeister, A.M., Nabelek, P.I., 2009. Temperature-dependent thermal diffusivity of the Earth’s crust and implications for magmatism. Nature 458, 319–321. https://doi.org/10.1038/nature07818._ Their parameterization is originally given for the thermal diffusivity, together with a parameterization for thermal conductivity, which allows us to compute

Cp=a+bTc/T2κ=d/Te if T<=846Kκ=fgT if T>846Kρ=2700kg/m3k=κρCp

where Cp is the heat capacity [J/mol/K], and a,b,c are parameters that dependent on the temperature T:

  • a = 199.50 J/mol/K if T<= 846 K

  • a = 199.50 J/mol/K if T> 846 K

  • b = 0.0857J/mol/K^2 if T<= 846 K

  • b = 0.0323J/mol/K^2 if T> 846 K

  • c = 5e6J/mol*K if T<= 846 K

  • c = 47.9e-6J/mol*K if T> 846 K

  • d = 576.3m^2/s*K

  • e = 0.062m^2/s

  • f = 0.732m^2/s

  • g = 0.000135m^2/s/K

This looks like:

Example

julia
julia> using GLMakie, GeoParams
julia> p=T_Conductivity_Whittington();
julia> T,k,plt = PlotConductivity(p)
source
GeoParams.MaterialParameters.Conductivity.T_Conductivity_Whittington_parameterised Type
julia
T_Conductivity_Whittington_parameterised()

Sets a temperature-dependent conductivity that is parameterization after Whittington, et al. 2009

The original parameterization involves quite a few parameters; this is a polynomial fit that is roughly valid from 0-1000 Celsius

k[W/m/K]=2109(TTs)3+6106(TTs)20.0062(TTs)+4Ts=273.15K

where T[K] is the temperature in Kelvin (or the nondimensional equivalent of it).

The comparison of this parameterisation vs. the original one is:

source
GeoParams.MaterialParameters.Conductivity.TP_Conductivity Type
julia
TP_Conductivity()

Sets a temperature (and pressure)-dependent conductivity parameterization as described in Gerya, Numerical Geodynamics (2nd edition, Table 21.2). The general for

k=(ak+bkT+ck)(1+dkP)

where k is the conductivity [W/K/m], and ak,bk,ck,dk are parameters that dependent on the temperature T and pressure P:

  • ak = 1.18Watt/K/m

  • bk = 474Watt/m

  • ck = 77K

  • dk = 0/MPa

source
GeoParams.MaterialParameters.Conductivity.Set_TP_Conductivity Function
julia
Set_TP_Conductivity(name::String)

Returns the pre-defined temperature(-pressure) dependent conductivity law name.

Available laws:

  • "UpperCrust"

  • "LowerCrust"

  • "OceanicCrust"

  • "Mantle"

Example

julia
julia> k = Set_TP_Conductivity("Mantle")
T/P dependent conductivity: Name = Mantle, k = (0.73 + 1293.0/(T + 77.0))*(1 + 4.0e-5*P)
source

Computational routines

To compute, use this:

GeoParams.MaterialParameters.Conductivity.compute_conductivity Function
julia
k = compute_conductivity(s::AbstractConductivity; P, T)
k = compute_conductivity(s::AbstractConductivity, args)

Returns the thermal conductivity k for the parameterization s, evaluated at the temperature T and pressure P passed either as keyword arguments or as a NamedTuple args.

Currently available:

  • ConstantConductivity

  • T_Conductivity_Whittington

  • TP_Conductivity

Example

julia
julia> k = T_Conductivity_Whittington();

julia> compute_conductivity(k; T = 1000.0)
1.9014576517265882
source
GeoParams.MaterialParameters.Conductivity.compute_conductivity! Function
julia
compute_conductivity(k_array::AbstractArray{<:AbstractFloat,N},P::AbstractArray{<:AbstractFloat,N},T::AbstractArray{<:AbstractFloat,N}, s::ConstantConductivity) where N

In-place routine to compute constant conductivity

source
julia
compute_conductivity!(K::AbstractArray{<:AbstractFloat}, Phases::AbstractArray{<:Integer}, P::AbstractArray{<:AbstractFloat},Temp::AbstractArray{<:AbstractFloat}, MatParam::AbstractArray{<:AbstractMaterialParamsStruct})

In-place computation of conductivity K for the whole domain and all phases, in case a vector with phase properties MatParam is provided, along with P and Temp arrays. This assumes that the Phase of every point is specified as an Integer in the Phases array.


compute_conductivity!(k::AbstractArray{T,N}, PhaseRatios::AbstractArray{T, M}, P::AbstractArray{<:AbstractFloat,N},T::AbstractArray{<:AbstractFloat,N}, MatParam::AbstractArray{<:AbstractMaterialParamsStruct})

In-place computation of conductivity 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