Recent Releases of gospl
gospl - goSPL v2026.7.14
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 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: https://github.com/Geodels/gospl/compare/v2026.6.30...v2026.7.14
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles about 1 month ago
gospl - goSPL v2026.6.30
Highlights
- Post-processing & analysis toolkit — new
gospl-catchmentper-basin outflow/water-flux tool, cross-sections, regular-grid + NetCDF export, stratigraphic sections, wedge & ELA extraction, strata-volume; plus a top-levelgosplconsole command and Python entry points. - Diagnostic glacial-erosion model (#454) — routed discharge → ice thickness → Glen sliding velocity → abrasion / till transport / moraine deposition / meltwater / flexural loading;
meltmass-balance knob. - Spatially-resolved provenance — per-class sink attribution including continental pit/lake sinks, with post-processing fields and
[prov]verbosity. - Losing-stream evaporation — evaporation-coherent transport-limited SPL.
- Dual-lithology strata usability —
npstratavalidation,surfFineFrac, dedicated infinite-bedrock sentinel,pitInletBiasin pit composition. - Parallel flat-model flexure — FV biharmonic solver (
'fem', #471), replacing gFlex + FFT. - Mesh-native orographic rain — parallel solver on the DMPlex (#474); the regular grid (
regdx/latitude/nm/hw) is removed. - Parallel correctness & performance — partition-stable flow-accumulation KSP, partition-invariant pit-fill/flat-routing, marine Picard/Schur solvers, pit-label union-find, profiler + HPC scaling harness.
⚠️ Behavior changes / migration
- Open (
o) boundaries are now "non-rising" (#473, f8c1f23): each step an open edge is set tomin(current, min(interior neighbours))— it follows incision/subsidence down but aggradation can no longer raise it (previously it tracked the neighbour average). If you relied on the old non-draining behavior, switch that edge tow(true no-flux wall, new in #473). - Boundary
bcstrings use the NESW letter conventiono/f/w/c(open/fixed/wall/cyclic). Legacy digit strings are remapped in place (0→o,1→f); check your inputs match the intended N,E,S,W edges. - gFlex + FFT flexure removed —
'fem'is the only flat-model flexure. - Regular-grid orography removed — orographic rain is now mesh-native; drop
regdx/latitude/nm/hwfrom configs.
Notable fixes
- Multiple parallel-correctness fixes: flow-accumulation KSP partition-stability, partition-invariant drainage graph & flat-routing tie-break, several
np>1deadlocks, closed-sink deposition guards. - Analytical hillslope-diffusion benchmark reconciled to the non-rising open-edge semantics.
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles about 2 months ago
gospl - v2026.6.13 — Conda & PyPI distribution + full-channel sync
First release published to all three distribution channels from a single tag: PyPI sdist, the geodels conda channel, and the geodels/gospl-hpc Docker image. Documentation covers the new PyPI install path; the version-spelling convention has been normalised so the artefact name is identical across all channels.
ℹ️
v2026.6.12shipped to PyPI and Docker Hub one day earlier but did not reach thegeodelsconda channel —conda/meta.yamlhad not been bumped, so the conda-build run silently skipped the upload (anaconda upload --skip-existingmatched the existing 2026-06-11 release).v2026.6.13is the first release that exists on all three channels. PyPI users ongospl==2026.6.12are functionally equivalent to2026.6.13; the only diff is doc/AGENTS.md.
New distribution channel: PyPI
pip install --no-deps --no-build-isolation gospl
- New
.github/workflows/pypi-publish.ymlbuilds the sdist on everyv*tag push and publishes via Trusted Publishing (OIDC, no API tokens).workflow_dispatchtriggers a TestPyPI dry-run upload. - Sdist-only by design (no binary wheels). goSPL links against the user's MPI / PETSc / parallel-HDF5 stack at install time; a wheel would lock those bindings to a single MPI ABI.
- New
docs/getting_started/installPip.rstcovers the bring-your-own-MPI constraints, the--no-deps --no-build-isolationrationale, and the TestPyPI dry-run recipe.
Version-spelling convention
Adopted no-leading-zero spelling (2026.6.13, not 2026.06.13) so PyPI display, conda artefact filename, git tag, and gospl.__version__ are all bitwise-identical. PyPI auto-normalises per PEP 440; conda does not — writing the no-zero form throughout the project avoids the channel divergence the old spelling created.
| Channel | Artefact |
|---|---|
| PyPI | gospl 2026.6.13 |
conda (geodels) |
gospl-2026.6.13-*.conda |
| Docker Hub | geodels/gospl-hpc:v2026.6.13 |
Release-process fix (silent-no-op guard)
conda/meta.yaml:2 is now formally documented as a second source of truth that must be bumped in lockstep with meson.build:4. The previous tag (v2026.6.12) caught conda-build silently no-op'ing the upload because the two had drifted. AGENTS.md > __version__ records the rationale; commit-checklist item 11 enforces the two-file bump for future releases.
Documentation
- New
docs/getting_started/installPip.rst— PyPI sdist install path, bring-your-own-MPI constraints, editable-dev section, TestPyPI dry-run. - Updated install pages (
installHPC,installConda,installDocker) referencev2026.6.13. - AGENTS.md — Released-packages table extended, Milestones table records both
v2026.6.12(PyPI+Docker only) andv2026.6.13(full sync), version-source claim corrected, "Last reviewed" bumped.
Install
# Conda (recommended for fresh installs — pulls every dep including MPI/PETSc)
mamba install -c geodels -c conda-forge gospl
# PyPI (requires an existing MPI / PETSc / parallel-HDF5 stack)
pip install --no-deps --no-build-isolation gospl
# Docker / Singularity HPC container (NCI Gadi, Pawsey Setonix)
docker pull geodels/gospl-hpc:v2026.6.13
singularity pull docker://geodels/gospl-hpc:v2026.6.13
Full changelog: https://github.com/Geodels/gospl/compare/v2026.06.11...v2026.6.13
Form options to set:
- Target: v2026.6.13 (auto-populated from the URL)
- Previous tag: v2026.06.11 (so the auto-generated changelog button works if you want to add it — but the manual notes above already cover it).
- Set as the latest release ✓ (check this box)
- Create a discussion for this release — your call; usually nice for major releases, optional.
- Leave "Set as a pre-release" unchecked.
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles 2 months ago
gospl - v2024.09.01
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles almost 2 years ago
gospl - v2021.08.03
goSPL STELLAR
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles almost 2 years ago
gospl - goSPL v1.1.2
Update marine deposition based on non-linear diffusion
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles about 2 years ago
gospl - goSPL v1.1.1
New version of goSPL including a solution for the Stream Power Law Model accounting for Sediment Deposition
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles about 2 years ago
gospl - version 0.2.10
Version designed for the Stellar Project.
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles almost 5 years ago
gospl - gospl: Global Scalable Paleo Landscape Evolution
gospl: Global Scalable Paleo Landscape Evolution
Documentation, notebooks examples with dual lithology and compaction modules.
API:
Class sedMesh that encapsulates all the functions related to sediment transport, production and deposition.
New features:
- getCompaction to compute the changes in sedimentary layers porosity and thicknesses.
Enhancements:
- New documentation
- Options for preprocess
- Performance improvements in sedMesh class
- Performance enhancements in _deposeStrat function
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles over 5 years ago
gospl - Version 0.2.0
New documentation, notebooks examples and addition of dual lithology and compaction modules.
API changes:
- Class sedMesh that encapsulates all the functions related to sediment transport, production and deposition.
New features: - getCompaction to compute the changes in sedimentary layers porosity and thicknesses.
Enhancements: - New documentation
- Options for preprocess
- Performance improvements in sedMesh class
- Performance enhancements in _deposeStrat function
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles almost 6 years ago
gospl - backward forward paleotopography
This release accounts for:
- Forward model using dynamic precipitation maps, sea-level and horizontal/vertical displacements
- Backward model accounting for the same forcing mechanisms as 1.
- Coupled backward/forward approach based on 1. & 2.
Associated docker container:
geodels/paleoflow:v0.1.2
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles over 6 years ago
gospl - gospl with paleo-topography integration
This first release enables paleo-topography integration based on a stepwise forward model fitting using available paleo dataset and results from a preliminary backward model.
This release is associated with the following docker container: geodels/paleoflow:v0.1.2
Climate Change - Earth and Climate Modeling
- Python
Published by tristan-salles over 6 years ago