v0.5.0
ClimaSeaIce v0.5.0
Breaking changes
- SeaIceModel keyword
ice_densityrenamedsea_ice_density. The struct field is renamed accordingly. - New SeaIceModel keywords
snow_densityandphase_transitions. Bulk densities and phase-transition parameters are now shared at the model level rather than stored per-slab. - SlabThermodynamics no longer accepts
phase_transitions. Pass it to SeaIceModel instead. The field is removed from the struct. snow_slab_thermodynamicsno longer accepts density, heat_capacity, or reference_latent_heat. Set them viaSeaIceModel(; snow_density, phase_transitions = PhaseTransitions(...)).latent_heat(phase_transitions, T)is now per-mass, not volumetric. Callers must multiply by sea_ice_density or snow_density to
recover energy per volume.slab.internal_heat_fluxnow stores the raw coefficient (e.g. ConductiveFlux) rather than a pre-assembled FluxFunction. Code reaching through slab.internal_heat_flux.parameters.flux must be updated; the wrapper is built inside the tendency layer.- Custom internal-flux types now plug in via flux_kernel dispatch (ClimaSeaIce.SeaIceThermodynamics.flux_kernel(::MyFlux) = my_kernel) instead of being wrapped at slab construction.
Merged pull requests:
- (0.5.0) Share phase_transitions and bulk densities at the model level (#134) (@simone-silvestri)
Closed issues:
- PhaseTransitions incorrectly removes "ice" qualifier from heat capacity and density (#133)