Heat conduction
CryoGrid.Heat.GeothermalHeatFlux
— TypeGeothermalHeatFlux{TQ} <: BoundaryProcess{HeatBalance}
Represents a simple, forced Neumann heat flux boundary condition for HeatBalance
processes.
CryoGrid.Heat.GroundHeatFlux
— TypeGroundHeatFlux{TE,TQ} <: BoundaryProcess{HeatBalance}
Represents a simple, forced Neumann heat flux boundary condition for HeatBalance
processes.
CryoGrid.Heat.HeatBalance
— TypeHeatBalance{THeatOp<:HeatOperator,Tdt,Tprop} <: SubSurfaceProcess
Represents subsurface heat transfer processes. The formulation of heat transfer is governed by the HeatOperator
, op
.
CryoGrid.Heat.HeatBalanceImplicit
— TypeType alias for the implicit enthalpy formulation of HeatBalance.
CryoGrid.Heat.PermafrostTemperatureInit
— TypePermafrostTemperatureInit{TT1,TT2,TTb,TTm,Tz1,Tz2,Tz3,Tz4} <: VarInitializer{:T}
Simple, piecewise linear temprature initializer that uses three temperature values and four characteristic depths to initialize the temperature profile. T0
is the initial surface temperature, Tpf
is the permafrost temperature at z_deep
, z_thaw
and z_base
are the top and bottom freezing fronts which are both assumed to be have temperature equal to Tm
.
CryoGrid.Heat.PermafrostTemperatureInit
— Method(init::PermafrostTemperatureInit)(T::AbstractVector, grid::Grid)
Evaluate the initializer on the given temperature vector T
which should match the length of cells(grid)
.
CryoGrid.Heat.StefanProblem
— TypeStefanProblem{Tp<:StefanParameters,Tx,Tt}
Represents the simple two-phase Stefan problem defined on a semi-infinite slab. The one-phase Stefan problem can be computed by setting the parameters T_s = T_m
.
CryoGrid.Heat.TemperatureBC
— TypeTemperatureBC{E,F} <: BoundaryProcess{HeatBalance}
Represents a simple, Dirichlet temperature boundary condition for HeatBalance
processes.
CryoGrid.Heat.ThermalProperties
— TypeThermalProperties
Material thermal properties, e.g. conductivity and heat capacity. By default, this includes the thermal properties of water, ice, and air. This can be extended by passing additional properties into the constructor.
CryoGrid.Heat.TemperatureProfile
— MethodTemperatureProfile(pairs::Pair{<:Union{DistQuantity,Param},<:Union{TempQuantity,Param}}...)
Convenience constructor for Numerics.Profile
which automatically converts temperature quantities.
CryoGrid.Heat.enthalpy
— Methodenthalpy(T, C, L, θ) = T*C + L*θ
Discrete enthalpy function on temperature, heat capacity, specific latent heat of fusion, and liquid water content.
CryoGrid.Heat.enthalpyinv
— Methodenthalpyinv(H, C, L, θ) = (H - L*θ) / C
Discrete inverse enthalpy function given H, C, L, and θ.
CryoGrid.Heat.enthalpyinv
— Methodenthalpyinv(::FreeWater, H, θwi, C, L)
Inverse enthalpy function for free water freezing characteristic given enthalpy H
, total water content θwi
, heat capacity C
, and latent heat of fusion L
.
CryoGrid.Heat.enthalpyinv
— Methodenthalpyinv([::FreezeCurve], sub::SubSurface, heat::HeatBalance, state)
Evaluates the inverse enthalpy function (H -> T) on the current state.
CryoGrid.Heat.freezecurve
— Methodfreezecurve(sub::SubSurface)
Returns the soil freezing characteristic FreezeCurve
for the given subsurface layer. Defautls to FreeWater
.
CryoGrid.Heat.freezethaw!
— MethodImplementation of "free water" freezing characteristic for any subsurface layer. Assumes that state
contains at least temperature (T), enthalpy (H), heat capacity (C), total water content (θwi), and liquid water content (θw).
CryoGrid.Heat.freezethaw!
— Methodfreezethaw!(::FreezeCurve, ::SubSurface, ::Process, state)
Calculates freezing and thawing effects, including evaluation of the freeze curve. In general, this function should compute at least the liquid/frozen water contents and the corresponding heat capacity. Other variables such as temperature or enthalpy may also need to be computed depending on the thermal scheme being implemented.
CryoGrid.Heat.heat_conduction_linear_periodic_ub
— MethodAnalytical solution to linear form of the heat equation on a semi-infinite rod with periodic fluctuations at the upper boundary. Solution taken from Riseborough et al. 2008.
CryoGrid.Heat.heatcapacity!
— Methodheatcapacity!(sub::SubSurface, state)
Computes the heat capacity for the given layer from the current state and stores the result in-place in the state variable C
.
CryoGrid.Heat.heatcapacity
— Methodheatcapacity(sub::SubSurface, state, i)
Computes the heat capacity as a weighted average over constituent capacities with volumetric fractions θfracs
.
CryoGrid.Heat.thermalconductivity!
— Methodthermalconductivity!(sub::SubSurface, state)
Computes the thermal conductivity for the given layer from the current state and stores the result in-place in the state variable k
.
CryoGrid.Heat.thermalconductivity
— Methodthermalconductivity(sub::SubSurface, heat::HeatBalance, state, i)
Computes the thermal conductivity as a squared weighted sum over constituent conductivities with volumetric fractions θfracs
.
CryoGrid.Heat.thermalproperties
— Methodthermalproperties(::SubSurface)
Returns the thermal properties for the given subsurface layer.