src.spyice.models.radiative_model#
Module: spyice.models.brine_flux_radiation
This module contains functions for modeling radiative fluxes, brine fluxes, and salinity transport in sea ice. It is designed for process-based simulations of ice-ocean interactions, focusing on:
Radiative source terms from algae, ice, and organic matter.
Calculation of Photosynthetically Active Radiation (PAR) in ice.
Brine flux driven by Rayleigh number instabilities.
Salinity source terms from brine advection.
Permeability and local Rayleigh number calculations.
Functions#
radiative_source_term#
- radiative_source_term(radiative_algae=0.0, radiative_ice=0.0, radiative_organicmatter=0.0)#
Compute the total radiative source term for the ice-algae system.
- Parameters:
radiative_algae (float) – Radiative contribution from algae.
radiative_ice (float) – Radiative contribution from ice.
radiative_organicmatter (float) – Radiative contribution from organic matter.
- Returns:
Total radiative source term.
radiative_ice#
- radiative_ice(depth)#
Compute radiative attenuation through ice.
- Parameters:
depth (float or np.ndarray) – Depth in ice (m).
- Returns:
Radiative flux contribution from ice.
Formula:
\[I_0 = i_0 (1 - \alpha) F_{sw}, \quad I(z) = I_0 \exp(-\kappa z), \quad R_\text{ice} = I(z) \kappa\]
radiative_organicmatter#
- radiative_organicmatter(depth)#
Compute radiative flux attenuation due to organic matter in ice.
- Parameters:
depth (float or np.ndarray) – Depth in ice (m).
- Returns:
Radiative flux contribution from organic matter.
calculate_radiative_terms#
- calculate_radiative_terms(depth, thickness_index, radiative_algae=0.0, algae_model_depth_type='single')#
Combine radiative contributions from algae, ice, and organic matter for the given depth.
- Parameters:
depth (np.ndarray) – Depth array in ice.
thickness_index (int) – Index corresponding to interface layer.
radiative_algae (float) – Radiative flux from algae.
algae_model_depth_type (str) – ‘single’ or ‘all’ for biologically active layer modeling.
- Returns:
Total radiative source term.
calculate_local_rayleigh_number#
- calculate_local_rayleigh_number(thickness_index, thickness, salinity, phi, grid_size)#
Calculate the local Rayleigh number for brine convection in sea ice.
- Parameters:
thickness_index (int) – Index at the ice-ocean interface.
thickness (np.ndarray) – Ice thickness array.
salinity (np.ndarray) – Salinity profile in sea ice.
phi (np.ndarray) – Porosity profile.
grid_size (float) – Grid spacing (dz).
- Returns:
Array of local Rayleigh numbers.
calculate_salinity_flux#
- calculate_salinity_flux(dz, dt, Ra_c, thickness_index, thickness, salinity, phi)#
Compute brine-driven salinity flux based on Rayleigh number exceeding critical value.
- Parameters:
dz (float) – Grid spacing in ice.
dt (float) – Time step.
Ra_c (float) – Critical Rayleigh number.
thickness_index (int) – Interface index.
thickness (np.ndarray) – Ice thickness array.
salinity (np.ndarray) – Salinity profile.
phi (np.ndarray) – Porosity profile.
- Returns:
Salinity flux array.
calculate_permeability#
- calculate_permeability(phi_i)#
Compute brine permeability as a function of porosity.
- Parameters:
phi_i (np.ndarray) – Porosity array.
- Returns:
Permeability array.
Formula:
\[\Pi = 10^{-17} (1000 \phi)^{3.1}\]
calculate_brine_flux#
- calculate_brine_flux(thickness_index, thickness, interface_depth, salinity, phi, dt, dz, Ra_c=10)#
Calculate brine flux in the ice column.
- Parameters:
thickness_index (int) – Interface layer index.
thickness (np.ndarray) – Ice thickness array.
interface_depth (float) – Depth at ice-ocean interface.
salinity (np.ndarray) – Salinity profile.
phi (np.ndarray) – Porosity profile.
dt (float) – Time step.
dz (float) – Grid spacing.
Ra_c (float) – Critical Rayleigh number.
- Returns:
Brine flux array.
calculate_in_out_brine_flux#
- calculate_in_out_brine_flux(thickness_index, flux, phi)#
Compute incoming and outgoing brine fluxes for each layer.
- Parameters:
thickness_index (int) – Interface layer index.
flux (np.ndarray) – Brine flux array.
phi (np.ndarray) – Porosity profile.
- Returns:
Tuple (flux_in, flux_out)
calculate_salinity_source_term_from_brineflux#
- calculate_salinity_source_term_from_brineflux(salinity, flux_in, flux_out, flux_channel)#
Compute the salinity source term from brine fluxes.
- Parameters:
salinity (np.ndarray) – Salinity profile.
flux_in (np.ndarray) – Incoming brine flux.
flux_out (np.ndarray) – Outgoing brine flux.
flux_channel (np.ndarray) – Total brine flux channel.
- Returns:
Salinity source term array.
get_salinity_source_term#
- get_salinity_source_term(thickness_index, thickness, salinity, phi, dt, dz)#
High-level function to calculate salinity source term from brine flux for a given ice column.
- Parameters:
thickness_index (int) – Index at ice-ocean interface.
thickness (np.ndarray) – Ice thickness array.
salinity (np.ndarray) – Salinity profile.
phi (np.ndarray) – Porosity profile.
dt (float) – Time step.
dz (float) – Grid spacing.
- Returns:
Salinity source term array.