Skip to content

Scientific software

Code

The numerical codes behind the modelling work: two that I write and maintain, and the community codes I contribute to.

Most of my results come out of simulations, so the code is part of the research rather than a tool beside it. Both of my own codes are written in Julia, documented in full, and benchmarked against published reference cases before they are used for science.

MILEVA

Lead developer

Mantle Interaction and Lithospheric Evolution in Viscous Annuli

A finite-volume mantle-convection code in Julia.

MILEVA simulates thermal and compositional convection in Earth-like and planetary mantles. It solves the coupled Stokes, energy and composition equations on a staggered finite-volume grid, with velocities on cell faces and pressure at cell centres, while temperature and composition ride on Lagrangian markers.

Language
Julia
Method
Finite volume, staggered grid
Transport
Lagrangian markers
Geometry
2-D spherical and cylindrical annulus · 3-D spherical chunk and Yin-Yang sphere
Three-dimensional plumes in the Yin-Yang spherical shell at Ra = 10^6.
Three-dimensional plumes in the Yin-Yang spherical shell at Ra = 106.
Viscosity over 1 Gyr in the 2-D spherical annulus, with three continental rafts. Model R of van der Wiel et al. (2024).
Viscosity over 1 Gyr in the 2-D spherical annulus, with three continental rafts. Model R of van der Wiel et al. (2024).

MILET

Lead developer

Modeling in Lithospheric Evolution Tectonics

A thermomechanical finite-element framework for lithosphere and mantle dynamics.

MILET couples Stokes flow to heat transport on an inf-sup stable Taylor–Hood discretisation, with material carried by markers. It is built for problems where composition, rheology and metamorphic phase change evolve together: lithospheric foundering, delamination, drips and subduction.

Language
Julia, built on Gridap.jl
Method
Finite element, Taylor–Hood Q2/Q1
Transport
Marker-in-cell, RK4 advection
Geometry
2-D and 3-D Cartesian · Projected spherical chunk
Three-dimensional thermal convection in a box at Ra = 10^5.
Three-dimensional thermal convection in a box at Ra = 105.
Subduction in 2-D, reproducing Model 1 of Glerum et al. (2018).
Subduction in 2-D, reproducing Model 1 of Glerum et al. (2018).

Community codes

Alongside my own codes I contribute modules, benchmarks and post-processing to established open-source codes in the field.

ASPECT

C++ · deal.II · Trilinos

Planetary interior contributions: non-Newtonian viscosity laws for stagnant-lid regimes, thermal boundary-condition modules for Venus and Mars, and benchmarks for plume–lithosphere interaction under single-lid conditions.

  • Viscosity models
  • Planetary BCs
  • Benchmarks

LaMEM

C · PETSc · MPI

Ice-shell rheology for icy-moon applications, cryogenic extensions of the viscoelastoplastic constitutive laws, parallel scaling benchmarks, and graben and thrust-fault test cases.

  • Ice rheology
  • Parallel scaling
  • Icy-moon modules

iSALE

Fortran · Python

Post-processing for impact melt volume, shock-pressure mapping and tectonic response; equation-of-state tables for planetary silicates and ices; visualisation tools extending pySALEPlot to multi-layer icy targets.

  • EOS tables
  • pySALEPlot
  • Icy targets

Updated: