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_soilaquifer base that follows the sediment fill in basins.- Physical, land-masked
wtable/wtdepthoutputs (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_poolper 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
stratasectionCLI + tests.
Install
# PyPI
pip install --no-deps --no-build-isolation gospl==2026.7.14
# conda
mamba install -c geodels -c conda-forge gosplExamples: 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