# Heat conduction

`CryoGrid.Heat.GeothermalHeatFlux`

— Type`GeothermalHeatFlux{TQ} <: BoundaryProcess{HeatBalance}`

Represents a simple, forced Neumann heat flux boundary condition for `HeatBalance`

processes.

`CryoGrid.Heat.GroundHeatFlux`

— Type`GroundHeatFlux{TE,TQ} <: BoundaryProcess{HeatBalance}`

Represents a simple, forced Neumann heat flux boundary condition for `HeatBalance`

processes.

`CryoGrid.Heat.HeatBalance`

— Type`HeatBalance{Tfc<:FreezeCurve,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.StefanProblem`

— Type`StefanProblem{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`

— Type`TemperatureBC{E,F} <: BoundaryProcess{HeatBalance}`

Represents a simple, forced Dirichlet temperature boundary condition for `HeatBalance`

processes.

`CryoGrid.Heat.ThermalProperties`

— Type`ThermalProperties`

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`

— Method`TemperatureProfile(pairs::Pair{<:Union{DistQuantity,Param},<:Union{TempQuantity,Param}}...)`

Convenience constructor for `Numerics.Profile`

which automatically converts temperature quantities.

`CryoGrid.Heat.enthalpy`

— Method`enthalpy(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`

— Method`enthalpyinv(H, C, L, θ) = (H - L*θ) / C`

Discrete inverse enthalpy function given H, C, L, and θ.

`CryoGrid.Heat.freezethaw!`

— Method`freezethaw!(sub::SubSurface, heat::HeatBalance{FreeWater,<:EnthalpyBased}, state)`

Implementation 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!`

— Method`freezethaw!(sub::SubSurface, heat::HeatBalance, 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!`

— Method`heatcapacity!(sub::SubSurface, heat::HeatBalance, 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`

— Method`heatcapacity(::SubSurface, state, i)`

Computes the heat capacity for the given `SubSurface`

layer at grid cell `i`

.

`CryoGrid.Heat.heatcapacity`

— Method`heatcapacity(sub::SubSurface, heat::HeatBalance, state, i)`

Computes the heat capacity as a weighted average over constituent capacities with volumetric fractions `θfracs`

.

`CryoGrid.Heat.thermalconductivity!`

— Method`thermalconductivity!(sub::SubSurface, heat::HeatBalance, 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`

— Method`thermalconductivity(::SubSurface, state, i)`

Computes the thermal conductivity for the given `SubSurface`

layer at grid cell `i`

.

`CryoGrid.Heat.thermalconductivity`

— Method`thermalconductivity(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`

— Method`thermalproperties(::SubSurface)`

Returns the thermal properties for the given subsurface layer.