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 of temperature(-pressure) dependent conductivity"]

This is a dictionary with pre-defined laws:

  • "UpperCrust"

  • "LowerCrust"

  • "OceanicCrust"

  • "Mantle"

Example

julia
julia> k=Set_TP_Conductivity["Mantle"]
T/P dependent conductivity: k = (0.73 W K⁻¹ m⁻¹ + 1293 W m⁻¹/(T + 77 K))*(1 + 4.0e-5 MPa⁻¹*P)
source

Computational routines

To compute, use this:

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

Returns the thermal conductivity k at any temperature T and pressure P using any of the parameterizations implemented.

Currently available:

  • ConstantConductivity

  • T_Conductivity_Whittington

  • TP_Conductivity

Example

Using dimensional units

julia
julia> T  = (250:100:1250)*K;
julia> cp = T_HeatCapacity_Whittington()
julia> Cp = ComputeHeatCapacity(0,T,cp)
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
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