Conductivity
Methods
Thermal conductivity is defined as
GeoParams.MaterialParameters.Conductivity.ConstantConductivity Type
ConstantConductivity(k=3.0W/m/K)
Set a constant conductivity
where
GeoParams.MaterialParameters.Conductivity.T_Conductivity_Whittington Type
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
where 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> using GLMakie, GeoParams
julia> p=T_Conductivity_Whittington();
julia> T,k,plt = PlotConductivity(p)
GeoParams.MaterialParameters.Conductivity.T_Conductivity_Whittington_parameterised Type
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
where T[K]
is the temperature in Kelvin (or the nondimensional equivalent of it).
The comparison of this parameterisation vs. the original one is:
GeoParams.MaterialParameters.Conductivity.TP_Conductivity Type
TP_Conductivity()
Sets a temperature (and pressure)-dependent conductivity parameterization as described in Gerya, Numerical Geodynamics (2nd edition, Table 21.2). The general for
where T
and pressure P
:
= 1.18Watt/K/m = 474Watt/m = 77K = 0/MPa
GeoParams.MaterialParameters.Conductivity.Set_TP_Conductivity Function
Set_TP_Conductivity["Name of temperature(-pressure) dependent conductivity"]
This is a dictionary with pre-defined laws:
"UpperCrust"
"LowerCrust"
"OceanicCrust"
"Mantle"
Example
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)
Computational routines
To compute, use this:
GeoParams.MaterialParameters.Conductivity.compute_conductivity Function
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> T = (250:100:1250)*K;
julia> cp = T_HeatCapacity_Whittington()
julia> Cp = ComputeHeatCapacity(0,T,cp)
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)
GeoParams.MaterialParameters.Conductivity.compute_conductivity! Function
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