Published July 8, 2026
| Version v3.1.0
Software
Open
Underworld3: Mathematically Self-Describing Modelling in Python for Desktop, HPC and Cloud
Authors/Creators
- 1. Research School of Earth Sciences, The Australian National University
- 2. School of Earth Science, The University of Sydney
- 3. Computer Science and Engineering, University at Buffalo
- 4. School of Earth, Atmospheric & Environmental Science, Monash University
- 5. School of Earth and Planetary Sciences, Curtin University, Australia
Description
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)
<!-- Features whose tier_a/b validation passed on this release. Guaranteed. -->
- 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)
<!-- Code is on main but NOT guaranteed to work. Use at your own risk. -->
- 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.
Files
underworldcode/underworld3-v3.1.0.zip
Files
(140.7 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:5f9d03f54e866da85ae48f544f308eb8
|
140.7 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/underworldcode/underworld3/tree/v3.1.0 (URL)
Software
- Repository URL
- https://github.com/underworldcode/underworld3