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_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: 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-catchment per-basin outflow/water-flux tool, cross-sections, regular-grid + NetCDF export, stratigraphic sections, wedge & ELA extraction, strata-volume; plus a top-level gospl console 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; melt mass-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 usabilitynpstrata validation, surfFineFrac, dedicated infinite-bedrock sentinel, pitInletBias in 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 to min(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 to w (true no-flux wall, new in #473).
  • Boundary bc strings use the NESW letter convention o/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/hw from configs.

Notable fixes

  • Multiple parallel-correctness fixes: flow-accumulation KSP partition-stability, partition-invariant drainage graph & flat-routing tie-break, several np>1 deadlocks, 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.12 shipped to PyPI and Docker Hub one day earlier but did not reach the geodels conda channel — conda/meta.yaml had not been bumped, so the conda-build run silently skipped the upload (anaconda upload --skip-existing matched the existing 2026-06-11 release). v2026.6.13 is the first release that exists on all three channels. PyPI users on gospl==2026.6.12 are functionally equivalent to 2026.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.yml builds the sdist on every v* tag push and publishes via Trusted Publishing (OIDC, no API tokens). workflow_dispatch triggers 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.rst covers the bring-your-own-MPI constraints, the --no-deps --no-build-isolation rationale, 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) reference v2026.6.13.
  • AGENTS.md — Released-packages table extended, Milestones table records both v2026.6.12 (PyPI+Docker only) and v2026.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:

  1. Forward model using dynamic precipitation maps, sea-level and horizontal/vertical displacements
  2. Backward model accounting for the same forcing mechanisms as 1.
  3. 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