Releases: underworldcode/underworld3
Release list
Underworld3 v3.1.0
Underworld3 v3.1.0
Highlights
- Units and Scaling System — first-class dimensional quantities across the
solver stack: write models in physical units (Pa·s, km, K) and let the
framework non-dimensionalise and re-dimensionalise automatically. - Mesh Adaptation infrastructure — the Winslow mesh smoother and MMPDE
mesh mover are now formally supported, providing the foundation for
anisotropic adaptive remeshing workflows. - 40+ merged feature PRs since v3.0.1 — including Nitsche BCs, mesh
deformation capability gate, semi-Lagrangian improvements, projection
enhancements, and Darcy sign-convention corrections.
Supported (validated)
- Units and Scaling System — Pint-backed dimensional quantities, non-dimensionalisation, and unit-aware expression arithmetic.
- Winslow Mesh Smoother — Parallel-safe interior mesh smoothing (smooth_mesh_interior) — the foundation the adaptive movers and geometric multigrid build on.
- Constant Nullspace (singular scalar solvers) — SNES_Scalar.constant_nullspace returns the minimum-norm solution for pure-Neumann / closed-manifold scalar problems whose operator has a constant kernel (the singular Poisson case).
Preview (present, unguaranteed)
- MMPDE Mesh Mover / Adaptive Remeshing — follow_metric / OT mesh movement and variable transfer for anisotropic mesh adaptation.
- Geometric Multigrid / FMG Preconditioner — Automatic geometric full-multigrid preconditioning for the SNES solvers on refinement meshes (the
preconditionerproperty).
Bug Fixes
- Darcy transient velocity sign and sign-convention corrected (#255)
- Mesh variable arithmetic with unit-aware operands (#282, #283)
- Stokes bodyforce setter now accepts UWQuantity components (#284)
- Boundary normals and domain membership now track deformed meshes (#264)
- CLI
-uw_*parameter overrides now apply regardless of platform (#280) - PETSc IS size query during boundary rebuild avoided (#287)
New Features
- Mesh deformation capability gate — public
mesh.deform()API with safe
cache invalidation, replacing the internalmesh._deform_mesh()(#188) - Nitsche boundary conditions for weakly-imposed constraints (#275)
- Semi-Lagrangian traceback with old-frame interpolation (#186)
- Monotone advection-diffusion options (#234)
- Projection linear solver enhancements (#281)
Improvements
- Mesh smoother and MMPDE mover robustness improvements (#190, #225, #228)
- Units system extended to cover mesh variable arithmetic and coordinate evaluation
- Stokes constrained solver parallel correctness (#265)
Breaking Changes
mesh._deform_mesh()now raises if the mesh carries live variables — use
the publicmesh.deform()instead (#188)
Contributors
Thanks to everyone who contributed to this release:
Louis Moresi, Thyagarajulu Gollapalli, Ben Knight, Neng Lu, Julian Giordani, Juan Carlos Graciosa, Saurabh Shukla, @tiannh7.
Underworld3 v3.0.1
Underworld3 v3.0.1
Patch release with build reliability fixes and documentation improvements.
Bug Fixes
- Fix
petsc_save_checkpoint()to use XDMF compatibility groups (fixes #80) - Fix stale build cache:
./uw buildnow uses--no-cache-dirto prevent
pip from reusing wheels compiled against the wrong PETSc - Fix Dockerfile resilience to dependency version differences
- Fix binder launcher dispatch payload and YAML quoting
Improvements
- Auto-detect binder launcher ref from git tag in RTD documentation
- Add manual dispatch overrides for binder image builds
- Update README with binder badges for v0.99, v3.0.0, and development
Contributors
Underworld development team with AI support from Claude Code.
Underworld3 v3.0.0
Underworld3 v3.0.0
First official release of Underworld3 -- a complete rewrite of the Underworld
geodynamics framework built on PETSc DMPlex, SymPy-based constitutive models,
and particle-in-cell methods.
Highlights
- PETSc DMPlex-based meshing with simplex and structured meshes
- SymPy-powered constitutive model framework with JIT compilation
- Particle swarms with RBF-interpolated proxy mesh variables
- Stokes, Poisson, Darcy, advection-diffusion, and Navier-Stokes solvers
- Units and scaling system via Pint
- Parallel-safe output with XDMF/HDF5 checkpointing
- Mathematical mixin for natural variable arithmetic
New Features
- Boundary integrals via
uw.maths.BdIntegral(PR #70) - Platform-conditional MPI: OpenMPI on macOS, MPICH on Linux (PR #75)
- PetscDS constants mechanism for runtime-updatable solver parameters (PR #87)
- XDMF-compatible HDF5 output with field projection and tensor repacking (PR #72)
- Parallel printing with
uw.pprint()anduw.selective_ranks()context manager uw.Paramsfor named simulation parameters routed through PetscDS constants- Viscoelastic Stokes solver with explicit stress history (order-1 and order-2)
Improvements
- Thread capping (
OMP_NUM_THREADS=1) set in pixi activation and at import time - Internal boundary ownership patch for PETSc (ghost filtering fix)
setuptools-scmfor automatic git tag-based versioning./uwCLI for build, test, worktree management, and environment setup
Contributors
Underworld development team: Louis Moresi, Julian Giordani, Thyagarajulu Gollapalli,
Ben Knight, John Googas Graciosa, with AI support from Claude Code.
JOSS Publication Release (v0.99.1)
Fixing a very minor typo discovered in proofs, adding doi for JOSS product
Full Changelog: joss-publication-v0.99...joss-publication-v0.99.1
JOSS Publication Release (v0.99)
Everything finalised for JOSS approval.
v1.0 will be released when the JOSS process is final and a doi can be included in the README
JOSS pre-publication release
This is the final beta release as part of the JOSS acceptance process