Recent Releases of IGM
IGM - v3.2.0
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.
Cryosphere - Glacier and Ice Sheets
- Python
Published by instructed-glacier-model about 1 month ago
IGM - v3.1.2
The highlights of this release are a new SR-based data assimilation module, a major overhaul of the data assimilation framework with support for both iceflow backends, and new optimization solvers (MUON, SOAP, improved CG-Newton and Trust Region).
Improvements and Updates
Modules
-
data_assimilation:- Compatibility: new dispatch layer for use with both emulated and unified iceflow
- Fix: early stop with patience for the optimization loop
-
data_assimilation_SR(new):- SR-based inversion with flexible misfit terms (Huber, L²) and regularization (L2, Laplacian-squared)
- Normalization: cost terms normalized by domain area (ice mask)
- Fix: boundary effects in mask-based regularization
-
iceflow:- New:
no_inflowboundary condition - New: NiceNet and CNO emulator architectures
- Schema v3 for pretrained model artifacts with improved loading and validation
- Improved double-precision support
- Sliding: new
u_ref/tau_refconvention for Weertman (more interpretable); Budd and Coulombslidingcodefinitions aligned with Weertman; newuse_mask_grflag to force zero friction on floating areas
- New:
-
pretraining:- Overhaul: warmup phase, cleaner normalization layer, model save/load
- Checkpoint resumption
-
optimizers:- New: MUON and SOAP optimizers
- Improved CG-Newton and Trust Region solvers
- L-BFGS-B: improved bound constraints and memory updates
-
live_dashboard(new):- Real-time monitoring during runs
Code maintenance
- Optuna is now an optional dependency (
pip install igm-model[optuna]) - Early stop with patience for training loops
- Profiler option added
Contributors: @shrrosier, @brfi3983, @tgregov, @jouvetg, @gillian-smith, @tancredeleger.
Cryosphere - Glacier and Ice Sheets
- Python
Published by jouvetg about 2 months ago
IGM - IGM v3.1.1
The highlight of this release is a refactor of the enthalpy module, as well as the addition of various horizontal discretizations for the ice-flow solver.
Improvements and Updates
Modules
enthalpy:- Refactoring: the componenets are now located in separate folders
- Discretization: independent vertical discretization for enthalpy (
Nz_E) - BC: option to force basal temperature at pressure melting point
- Config: more detailed structure with
numerics,solver,thermal,arrhenius,drainage,tillsections - Tests: Kleiner et al. (2015) Exp A & B benchmarks, unit tests
iceflow:- Discretization: new horizontal discretization framework (
basis_horizontal); with Q1 FE, P1 FE, central FD (legacy discretization, remains default) - Cost components: adapted to new horizontal discretization framework and new enthalpy grid
- Renaming:
vertical_discrtodiscr_v,vert_basistobasis_vertical,staggered_gridtobasis_horizontal
- Discretization: new horizontal discretization framework (
vert_flow:- New version
3: based on precomputed discretization matrices
- New version
Code maintenance
- Included missing
__init__.pyfile in enthalpy utils folder to resolve PyPI installation - Fixed version for NetCDF compatibility
Contributors: @tgregov, @brfi3983.
Cryosphere - Glacier and Ice Sheets
- Python
Published by tgregov 6 months ago
IGM - IGM v3.1.0
Disclaimer: This release is currently broken (with PyPI) due to import issues with the enthalpy module. Please use v3.1.1 or later.
The highlight of this release is a new unified framework for the ice-flow module, accessible via method=unified.
This framework consolidates the existing solver and emulation approaches under a single interface, using the mapping parameter to select the desired mode: identity corresponds to the legacy solver mode, while network corresponds to the legacy emulated mode. The unified framework provides greater flexibility and simplifies long-term maintenance. The legacy solver and emulated modes will eventually be deprecated and removed.
Improvements and Updates
Modules
iceflow:- Solver: unified framework allowing for more flexible and maintainable ice-flow solver
- Networks: new neural architectures (FNO, MLP, CNN)
- Inputs: defaults to normalization of inputs (within unified)
- Discretization: new flexible vertical discretization for velocity
- Optimizers: sequential option, halt/convergence criterion
- BC: update frozen boundary condition for new vertical discretization
- Performance: uses
tf.functionfor forward pass of the ice-flow model - Memory: work in progress for single/double precision support
- Display: cleaner visualization using
rich - Renaming:
siatomolho,wtotheta,gradienttograd,warm_up_ittonbit_warmup - Tests: ISMIP-HOM suite, BCs, vertical discretization, data preparation
- Documentation: update config files and website
data_assimilation:- Work in progress
instructed_oggm:- Adapted to IGM 3.0
Code maintenance
- CI/CD: Added
pandoc,mkdocs-bibtexdependencies for documentation
Contributors: @tgregov, @shrrosier, @brfi3983, @jouvetg.
Cryosphere - Glacier and Ice Sheets
- Python
Published by tgregov 6 months ago
IGM - IGM v3.0.1
Improvements and Updates
Modules
iceflow:- Boundary conditions
- Vertical discretization
- Progress bar
- ζ coordinate corrections
- Tests for L-BFGS optimizer
write_vtp:- New VTK output module for particle visualization
data_assimilation:- Work in progress
- Integration of Optuna features
oggm_shop:- Added EPSG attribute to output (J. Fürst)
- Adapted to IGM 3.0 (#41)
Code maintenance
- Installation:
- Removed specific Python version requirement (#24)
- CI/CD:
- Fixed PyPI packaging with proper
__init__.pyfiles
- Fixed PyPI packaging with proper
Cryosphere - Glacier and Ice Sheets
- Python
Published by brfi3983 6 months ago
IGM - IGM v3.0.0
IGM v3.0.0
Check at more detailed list of changes to transition from version 2 to 3 at : https://igm-model.org/latest/about/transition-IGM-2-to-3/
Improvements and Updates
- IGM can now deploy multiple runs on a single GPU (if memory allows it)
- Integration with hydra
- Improved the code layout and structure
- Added various modules
- Damage
- Stress
- Improved lagrangian particle tracking
Breaking changes
argparseis now replaced withhydra- documentation is now moved from
wikitohttps://igm-model.org/latest/ jsonhas been replaced withyaml
Bug fixes
Other changes
Cryosphere - Glacier and Ice Sheets
- Python
Published by brfi3983 11 months ago