·
7 commits
to main
since this release
IGM 3.2.0 — Full list of changes
Release: 3.2.0 -> 3.1.2
Breaking changes (require action — see migration guide)
- Environment: TF ≥ 2.16 / Keras ≥ 3.12 required; Keras-2 env fails at first ice-flow solve.
- Default stack: the iceflow emulator used to run pretrained under the
emulatedmode;
it now runs under theunifiedmode, trained from scratch with thedahunet
architecture by default, as this proved to be a much more robust choice. The default
number of vertical layersnumerics.Nzalso dropped 10 → 4. - Friction rename:
slidingco→tau_refon the unified mode
(legacy stack keepsslidingco); hard-fail at startup naming each key. - Physics parameters renamed and regrouped: the
iceflow.physicsparameters were
reorganised under two blocks —sliding:(per-law sub-blocks flattened one level up)
andviscosity:(Glen-flow parameters) — withinit_prefixes dropped and a few keys
renamed for consistency. Old keys hard-fail at startup naming their replacement. (Full
translation table in the migration guide.) data_assimilationmovedprocesses→assimilations: thedata_assimilation
module now lives in the newassimilationsmodule category (alongside the new, fully
rewrittenfield_inversion), no longer underprocesses.smb/climateumbrella modules: the individualsmb_simple/clim_*modules
are replaced by umbrellasmb/climatemodules with amethod:selector.enthalpydecoupling: pieces formerly bundled inenthalpyare now standalone —
arrheniussplit into its own process, and subglacial hydrology / effective pressure
moved tosubglacial_hydrology. The formervert_flowmodule was folded into
iceflow, which now optionally computes the vertical velocity (e.g. required to run
enthalpyorparticles).
Changes by module
-
subglacial_hydrology(new):- Decoupled from
enthalpy; computesstate.effective_pressurefor Budd and Coulomb sliding - Modes:
constant_one,percentage,ocean_connected,from_input,till_storage
- Decoupled from
-
arrhenius(new):- Decoupled from
enthalpyinto a standalone process module
- Decoupled from
-
iceflow:- New:
unifiedstack — trains a from-scratchdahunetemulator online,
now the default ice-flow method - New: Several sliding laws, including
budd,regu_coulomb,mohr_coulomb. - New: pretrained
dahunetemulators (full, mini, micro) shipped with IGM;
referenceable by name (e.g.pretrained_path: dahunet) - Renaming:
slidingco→tau_ref(legacy alias kept for backward compatibility) - Defaults:
sliding.u_ref1 → 100 m/yr (unified only; legacy emulated/solved/diagnostic
requireu_ref=1.0, enforced at startup), withsliding.tau_refrescaled 0.0464 → 0.215
so the physics is unchanged - Config: viscosity parameters regrouped under
viscosity:block; sliding sub-blocks
flattened;init_prefix dropped on friction keys - Numerics: choice of
bx/bydiscretisation; extra 2nd-derivative regularisation term - Floating: updated to use 2D
water_levelfor calving-front basal pressure - New:
iceflow.vertical_velocityfolds in the formervert_flowprocess
- New:
-
enthalpy:- Simplified diagnostics;
Tandomegano longer saved by default - New:
temppasurfandtemppabasepublished on state arrheniusand subglacial hydrology split out into standalone modules
- Simplified diagnostics;
-
data_assimilation(moved toassimilations):- Moved from
processesto the newassimilationscategory - Updated to accept either
slidingcoortau_refas friction control - Regularization: additional second-order term in
regu_thk; configurable
discretization forbx/by(PR #45) - Default params changed:
retrain_iceflow_modelfalse,fix_opti_normalization_issue
true,obstacle_constraint: [reproject],smooth_anisotropy_factor1.0,
convexity_weight0.0 - (Superseded by
field_inversion— see below)
- Moved from
-
smb/climate(new):- Umbrella modules introduced with
method:dispatch tosmb_*/clim_*submodules
(simple/oggm/accpdd;simple/oggm/glacialindex/station)
- Umbrella modules introduced with
-
field_inversion(inassimilations):- Overhauled data assimilation — alternates inversion with light retraining
-
pretraining(inassimilations):- Moved from
processesto newassimilationscategory - Model artifacts migrated to
.kerasformat (manifest removed) - Pretrained network validated against config on load (horizontal + vertical basis checks)
- New SIADecompNet architecture
- Moved from
-
time_relaxation(inassimilations):- New module (alternative to
field_inversion) that permit data assimilation
but using time relaxation.
- New module (alternative to
-
time:- New:
cfl_percentileoption for adaptive time-stepping
- New:
-
state:- New: variable aliases
- New: diagnostic variables are now optional (opt-in)
-
core:- New:
check_module_needsflag to validate module dependencies at init (off by default)
- New:
Code maintenance
- Black formatting enforced in CI
- Hewitt & Schoof (2017) subglacial hydrology benchmark test added
Contributors: @shrrosier, @jouvetg, @tgregov, @gillian-smith.