The Underworld code was designed for solving (very) long timescale geological deformations accurately, tracking deformation and evolving interfaces to very high strains. It uses a particle-in-cell based finite element method to track the material history accurately and highly-tuned multigrid solvers for fast implicit solution of the equations of motion. The implementation has been fully parallel since the inception of the project, and a plugin/component architecture ensures that extensions can be built without significant exposure to the underlying technicalities of the parallel implementation. We also paid considerable attention to model reproducibility and archiving — each run defines its entire input state and the repository state automatically.
A typical geological problems for which the code was designed is the deformation of the crust and lithospheric mantle by regional plate motions — these result in the formation of localised structures (e.g. faults), basins, folds and in the generation of surface topography. The role of surface processes — redistributing surface loads and changing boundary conditions, is known to be significant in modifying the response of the lithosphere to the plate-derived forces. The coupling of surface process codes to Underworld is feasible, but raises some interesting challenges (and opportunities !) such as the need to track horizontal deformations and match changes to the topography at different resolutions in each model. We will share some of our insights into this problem.