Skip to content

goSPL v2026.7.14

Latest

Choose a tag to compare

@tristan-salles tristan-salles released this 10 Jul 07:35
· 4 commits to dev since this release

Groundwater, duricrust, and conservative geochemistry release.

This release adds three large, fully opt-in capabilities on top of v2026.6.30: a coupled groundwater / water table, duricrust formation, and Level-B conservative geochemistry, together with a set of soil/regolith refinements. Every new feature is off by default, so runs that do not enable them are byte-for-byte identical to v2026.6.30.

75 commits, 83 files, +8576/-213 (PRs #483, #484).

Highlights

Groundwater / water table (opt-in groundwater:)

  • Implicit Dupuit-Boussinesq head solve (hypre), validated against an analytic Dupuit benchmark.
  • Recharge R = f·(rain − evap) with an ice gate and spatial infiltration, plus opt-in subglacial / lithology / slope refinements.
  • Baseflow re-injected into the surface-flow source (land rivers only, never the ocean).
  • Opt-in lake ↔ aquifer volume coupling.
  • from_soil aquifer base that follows the sediment fill in basins.
  • Physical, land-masked wtable / wtdepth outputs (clamped to the aquifer thickness).

Duricrust (opt-in)

  • Capillary-fringe duricrust precipitation ODE with self-limiting behaviour.
  • Erodibility-armoring hook (duricrust hardens the surface against erosion).
  • Multi-layer stratigraphic induration record (stratDuri) across the crust depth range.
  • Opt-in absolute-accumulation discharge gate for crust formation.

Level-B conservative geochemistry (opt-in, multi-species)

  • Steady multi-species solute-transport operator: dissolve → transport → precipitate → export, conservative by construction.
  • Dissolved ocean / baseflow export outputs plus a solute-budget CSV time series (including ocean flux).
  • Solute-source provenance and per-layer crust chemistry archive (type + source).
  • Multi-tracer duricrust typing.
  • Spatial per-species weatherability (lithology → chemistry), a standalone lithology-class map, and dynamic surface lithology from the top stratigraphic layer.
  • River dissolved-load coupling: per-species river routing, in-transit reactions, and marine coupling.
  • Per-species HDF5 / XDMF outputs and per-basin solute-flux extraction in gospl-catchment.
  • Configurable dissolvable source_pool per solute species.

Soil / regolith refinements (Option-2.5)

  • Subaerial gate for soil thickness; regolith mode deposits to stratigraphy with a soft deposit K.
  • Freeze-inert regolith under ice.
  • Hillslope-soil conservation audit, with true no-cap behaviour for bedrockConv: 0.

Fixes

  • Partition-seam halo syncs for baseflow, soluteflux, and duricrust / induration / Karmor.
  • Robust solute solve (recharge seepage sink + direct LU); dry-node solute-peak fix.
  • Robust soil-SPL convergence and an over-deposition guard.
  • No duricrust or water table under the sea.
  • Close matplotlib figures in the stratasection CLI + tests.

Install

# PyPI
pip install --no-deps --no-build-isolation gospl==2026.7.14
# conda
mamba install -c geodels -c conda-forge gospl

Examples: goSPL-examples at tag v2026.7.14.

Compatibility

All new capabilities are opt-in; with them disabled, results match v2026.6.30 bitwise. Design documents: docs/DESIGN_WATERTABLE_DURICRUST.md, docs/DESIGN_WATERTABLE_GEOCHEM.md.

Full changelog: v2026.6.30...v2026.7.14