Published July 8, 2026 | Version v3.1.0

Underworld3: Mathematically Self-Describing Modelling in Python for Desktop, HPC and Cloud

  • 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 preconditioner property).

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 internal mesh._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 public mesh.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