Skip to content

v3.2.0

Latest

Choose a tag to compare

@instructed-glacier-model instructed-glacier-model released this 30 Jun 10:39
· 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 emulated mode;
    it now runs under the unified mode, trained from scratch with the dahunet
    architecture by default, as this proved to be a much more robust choice. The default
    number of vertical layers numerics.Nz also dropped 10 → 4.
  • Friction rename: slidingcotau_ref on the unified mode
    (legacy stack keeps slidingco); hard-fail at startup naming each key.
  • Physics parameters renamed and regrouped: the iceflow.physics parameters were
    reorganised under two blocks — sliding: (per-law sub-blocks flattened one level up)
    and viscosity: (Glen-flow parameters) — with init_ 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_assimilation moved processesassimilations: the data_assimilation
    module now lives in the new assimilations module category (alongside the new, fully
    rewritten field_inversion), no longer under processes.
  • smb / climate umbrella modules: the individual smb_simple / clim_* modules
    are replaced by umbrella smb / climate modules with a method: selector.
  • enthalpy decoupling: pieces formerly bundled in enthalpy are now standalone —
    arrhenius split into its own process, and subglacial hydrology / effective pressure
    moved to subglacial_hydrology. The former vert_flow module was folded into
    iceflow, which now optionally computes the vertical velocity (e.g. required to run
    enthalpy or particles).

Changes by module

  • subglacial_hydrology (new):

    • Decoupled from enthalpy; computes state.effective_pressure for Budd and Coulomb sliding
    • Modes: constant_one, percentage, ocean_connected, from_input, till_storage
  • arrhenius (new):

    • Decoupled from enthalpy into a standalone process module
  • iceflow:

    • New: unified stack — trains a from-scratch dahunet emulator online,
      now the default ice-flow method
    • New: Several sliding laws, including budd, regu_coulomb, mohr_coulomb.
    • New: pretrained dahunet emulators (full, mini, micro) shipped with IGM;
      referenceable by name (e.g. pretrained_path: dahunet)
    • Renaming: slidingcotau_ref (legacy alias kept for backward compatibility)
    • Defaults: sliding.u_ref 1 → 100 m/yr (unified only; legacy emulated/solved/diagnostic
      require u_ref=1.0, enforced at startup), with sliding.tau_ref rescaled 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/by discretisation; extra 2nd-derivative regularisation term
    • Floating: updated to use 2D water_level for calving-front basal pressure
    • New: iceflow.vertical_velocity folds in the former vert_flow process
  • enthalpy:

    • Simplified diagnostics; T and omega no longer saved by default
    • New: temppasurf and temppabase published on state
    • arrhenius and subglacial hydrology split out into standalone modules
  • data_assimilation (moved to assimilations):

    • Moved from processes to the new assimilations category
    • Updated to accept either slidingco or tau_ref as friction control
    • Regularization: additional second-order term in regu_thk; configurable
      discretization for bx/by (PR #45)
    • Default params changed: retrain_iceflow_model false, fix_opti_normalization_issue
      true, obstacle_constraint: [reproject], smooth_anisotropy_factor 1.0,
      convexity_weight 0.0
    • (Superseded by field_inversion — see below)
  • smb / climate (new):

    • Umbrella modules introduced with method: dispatch to smb_* / clim_* submodules
      (simple/oggm/accpdd; simple/oggm/glacialindex/station)
  • field_inversion (in assimilations):

    • Overhauled data assimilation — alternates inversion with light retraining
  • pretraining (in assimilations):

    • Moved from processes to new assimilations category
    • Model artifacts migrated to .keras format (manifest removed)
    • Pretrained network validated against config on load (horizontal + vertical basis checks)
    • New SIADecompNet architecture
  • time_relaxation (in assimilations):

    • New module (alternative to field_inversion) that permit data assimilation
      but using time relaxation.
  • time:

    • New: cfl_percentile option for adaptive time-stepping
  • state:

    • New: variable aliases
    • New: diagnostic variables are now optional (opt-in)
  • core:

    • New: check_module_needs flag to validate module dependencies at init (off by default)

Code maintenance

  • Black formatting enforced in CI
  • Hewitt & Schoof (2017) subglacial hydrology benchmark test added

Contributors: @shrrosier, @jouvetg, @tgregov, @gillian-smith.