Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Underworld
Technical Notes
Methods, implementation notes, benchmarks and worked examples from the Underworld geodynamics code. Each note is a living web article and, where it carries a DOI, a fixed archival PDF.
2026

Finding Particles in a Distributed, Unstructured Mesh

It can be difficult to figure out where you are in an unstructured mesh of triangles or tetrahedra; worse when the mesh is distributed in parallel. We have to solve this problem for particle-in-cell type codes such as Underworld3. This is how we do it.
Read doi10.6084/m9.figshare.33193611

Particles in Underworld3

Underworld is built around the idea of active Lagrangian tracer particles that carry history and composition information as the material deforms. How do we combine this information with our symbolic mathematical framework ?
Read doi10.6084/m9.figshare.33193599

Symbolic Time Derivatives in Underworld3

In Underworld3, the time derivative is a symbolic object. It appears in the solver's strong form as a SymPy expression, alongside the constitutive stress and the body force.
Read doi10.6084/m9.figshare.33193596

Constitutive Models in Symbolic Form

A constitutive model is a Python class where the relationship between fluxes and gradients is encoded in SymPy. At every stage the mathematics is visible, inspectable, and differentiable. The framework handles Jacobians, C code generation, and PETSc integration. You handle the physics.
Read doi10.6084/m9.figshare.33193590

Physical Units in Computational Geodynamics

Non-dimensionalisation (rewriting problems to make them re-scalable from lab to the real world) is a specialised task that all modellers confront at some point. It is important for accurate and efficient numerical solutions. Can we take away the pain that comes with the task ?
Read doi10.6084/m9.figshare.33193587

Mesh Variables and PETSc Vectors: Keeping Arrays in Sync

One of the less glamorous but important problems in a finite element framework is this: how does the user assign values to a field variable, and how does the framework ensure that PETSc sees those values correctly, in parallel, without the user needing to keep track themselves?
Read doi10.6084/m9.figshare.33193578

How Underworld3 Turns SymPy into C

What actually happens between the moment you write a mathematical expression in underworld3's python layer and the moment PETSc receives a finite element term in the form of compiled C code ?
Read doi10.6084/m9.figshare.33193572

AI and Scientific Software: What We Learned Rebuilding Underworld3

Underworld3 has about 50,000 lines of Python/ Cython wrapping PETSc, SymPy, and a just-in-time compiler. I began a trial of AI coding tools in 2025 and they have gradually become central to the way our team works. This is a story of co-evolution as much as it is about adoption of a new set of tools.
Read doi10.6084/m9.figshare.33193560

Our Journey from Underworld2 to Underworld3

Underworld is a code for geodynamics — mantle convection, lithospheric deformation, subduction, ice flow. We solve coupled, nonlinear PDEs with complex rheologies using Lagrangian particles to track material history. The project has been running for 20 years: why did we start again ?
Read doi10.6084/m9.figshare.33193566
2025

New features of the surface-coupling framework in Underworld 2

Read doi10.6084/m9.figshare.33193557

How many processors should we use to solve Problem X?

Parallel computation puts many CPUs to work on solving a problem much more quickly than one CPU alone. But this only works if the tasks are carefully scheduled and the additional CPUs are not waiting around for something to do. How do we choose the right number of processors for a given problem ?
Read doi10.6084/m9.figshare.33193554

Underworld and Singularity

TL; DR: Underworld is now Singularity-enabled, making it easier and somewhat quicker to use compared to traditional HPC installs. We demonstrate results using over 10,000 CPUs and more than one billion unknowns for solving the Stokes equation with Underworld 2.16
Read doi10.6084/m9.figshare.33193545
2024

Underworld3

Introducing Underworld3: Mathematically Self-Describing Modelling in Python for Desktop, HPC and Cloud.
Read doi10.6084/m9.figshare.33193533

30 Years of Citcom, Ellipsis and Underworld

CITCOM is a geodynamics modelling code based on the finite element method that is designed for planetary evolution modelling where large spatial variations and strong non-linearities occur in the material properties.
Read doi10.6084/m9.figshare.33193530
2023

Compressible convection in cartesian coordinates with Underworld3

Read doi10.6084/m9.figshare.33193527

ISMIP-HOM benchmark experiments using Underworld

Read doi10.6084/m9.figshare.33193518
2021

Free surface in Underworld

Read doi10.6084/m9.figshare.33193503

Underworld 2.11 Scaling

Read doi10.6084/m9.figshare.33193458

Scaling in Underworld

To test scalability we run weak scaling tests on various HPC machines to check the numerical framework remains robust when pushing for higher fidelity models.
Read doi10.6084/m9.figshare.33193452

Stress recovery in Underworld

Read doi10.6084/m9.figshare.33193446
2020

Underworld's lightweight cloud for online classrooms.

We built a cheap-and-cheerful solution with persistent storage and a binder-like access to notebooks in a repository that is aimed at serving a single classroom. The zero-to-server time is just a few minutes and there is minimal manual configuration.
Read doi10.6084/m9.figshare.33193422
2019

Viscoelasticity in Underworld2

Read doi10.6084/m9.figshare.33191160
2018

Alaska Moho Model (Reproducible research with containers)

Read doi10.6084/m9.figshare.33193410

Craton Formation and the Onset of Plate Tectonics

Read doi10.6084/m9.figshare.33193398
2017

Modelling Drips and Delamination with Underworld

Read doi10.6084/m9.figshare.33193386

Using physical units in Underworld

Read doi10.6084/m9.figshare.33193380

Shear Bands with Dilatancy modelled with Underworld

Read doi10.6084/m9.figshare.33193365
2015

Underworld 2

Read doi10.6084/m9.figshare.33193233
2014

The Dynamics of Continental Accretion

Read doi10.6084/m9.figshare.33193179
29 notes, 29 with a registered DOI. The DOI identifies the archival publication; this site is the current rendition and may carry corrections, updated links and discussion. Notes are written by the Underworld community — how to submit one.