Public Documentation
Documentation for ClimaSeaIce.jl
's public interfaces.
See the Internals section of the manual for internal package docs covering all submodules.
ClimaSeaIce
ClimaSeaIce.ClimaSeaIce
— ModuleOcean 🌊 Sea ice component of CliMa's Earth system model.
ClimaSeaIce.SeaIceThermodynamics
ClimaSeaIce.SeaIceThermodynamics.PhaseTransitions
— TypePhaseTransitions(FT=Float64,
ice_density = 917, # kg m⁻³
ice_heat_capacity = 2000, # J / (kg ᵒC)
liquid_density = 999.8, # kg m⁻³
liquid_heat_capacity = 4186, # J / (kg ᵒC)
reference_latent_heat = 334e3 # J kg⁻³
liquidus = LinearLiquidus(FT)) # default assumes psu, ᵒC
Return a representation of transitions between the solid and liquid phases of salty water: in other words, the freezing and melting of sea ice.
The latent heat of fusion $ℒ(T)$ (more simply just "latent heat") is a function of temperature $T$ via
\[ρᵢ ℒ(T) = ρᵢ ℒ₀ + (ρ_ℓ c_ℓ - ρᵢ cᵢ) (T - T₀) \]
where $ρᵢ$ is the ice_density
, $ρ_ℓ$ is the liquid density, $cᵢ$ is the heat capacity of ice, and $c_ℓ$ is the heat capacity of liquid, and $T₀$ is a reference temperature, all of which are assumed constant.
The default liquidus
assumes that salinity has practical salinity units (psu) and that temperature is degrees Celsius.
ClimaSeaIce.SeaIceThermodynamics.SlabSeaIceThermodynamics
— MethodSlabSeaIceThermodynamics(grid; kw...)
Pretty simple model for sea ice.
ClimaSeaIce.SeaIceThermodynamics.HeatBoundaryConditions
ClimaSeaIce.SeaIceThermodynamics.HeatBoundaryConditions.FluxFunction
— MethodFluxFunction(func; parameters=nothing, top_temperature_dependent=false)
Return FluxFunction
representing a flux across an air-ice, air-snow, or ice-water interface. The flux is computed by func
with the signature
flux = func(i, j, grid, clock, top_temperature, model_fields)
if isnothing(parameters)
, or
flux = func(i, j, grid, clock, top_temperature, model_fields, parameters)
if !isnothing(parameters)
. If func
is top_temperature_dependent
, then it will be recomputed during a diagnostic solve for the top temperature.
ClimaSeaIce.SeaIceThermodynamics.HeatBoundaryConditions.MeltingConstrainedFluxBalance
— MethodMeltingConstrainedFluxBalance(top_surface_temperature_solver=NonlinearSurfaceTemperatureSolver())
Return a boundary condition that determines the top (or "upper surface") temperature $Tᵤ$ to equilibrate the top heat fluxes,
\[Qₓ₁(Tᵤ) + Qₓ₂(Tᵤ) + ⋯ - Qᵢ = Σᴺ Qₓₙ(Tᵤ) - Qᵢ = δQ ,\]
where $Qᵢ$ is the intrinsic flux into the top from within the ice (typically, a conductive flux), $Qₓₙ$ represent external fluxes into the air above the ice, $δQ$ is the residual flux, and $Tᵤ$ is the (upper) top temperature. $Tᵤ$ is evaluated under the constraint that
\[Tᵤ ≤ Tₘ(S),\]
where $Tₘ(S)$ is the melting temperature, which is a function of the ice salinity at the top, $S$. When $Tᵤ < Tₘ(S)$, the top is frozen and $δQ = 0$. When the constraint operates, such that $Tᵤ = Tₘ(S)$, the top is melting and the residual flux is non-zero.
\[δQ ≡ Σᴺ Qₙ(Tₘ) - Qᵢ(Tₘ).\]
The residual flux is consumed by the cost of transforming ice into liquid water, and is related to the rate of change of ice thickness, $h$, by
\[\frac{dhₛ}{dt} = δQ / ℒ(Tᵤ)\]
where $ℒ(Tᵤ)$ is the latent heat, equal to the different between the higher internal energy of liquid water and the lower internal energy of solid ice, at the temperature $Tᵤ$.
ClimaSeaIce.SeaIceThermodynamics.HeatBoundaryConditions.PrescribedTemperature
— TypePrescribedTemperature()
heat boundary condition indicating that temperature is prescribed on the boundary.
ClimaSeaIce.SeaIceThermodynamics.HeatBoundaryConditions.RadiativeEmission
— TypeRadiativeEmission(FT=Float64; kw...)
Returns a flux representing radiative emission from a surface.