Atmospheric Physics Building,Department of Physics, University of Oxford, Parks Road, Oxford, OX1 3PU
Simone Silvestri, Politecnico Torino
Andrea Simpson (andrea.simpson@physics.ox.ac.uk)
Abstract
Climate projections still carry an uncertainty large enough that low- and high-emission scenarios visibly overlap, with direct consequences on the cost of climate adaptation and mitigation policies. Reducing this uncertainty requires higher resolution and improved physical parameterisations, but also a different kind of software, in which an Earth system model behaves less like a monolithic executable and more like a library that can be scripted, extended, and instrumented.
In this talk, I will present Oceananigans, a GPU-native ocean modelling framework written in Julia and developed within the Climate Modeling Alliance (CliMA). Oceananigans is built as a scripting library for ocean modelling, in which every component of a simulation, from the grid to the physical parameterisations, is accessible and modifiable from a single high-level interface. The same library covers regimes that traditionally require separate codes, from large-eddy simulation of boundary-layer turbulence to global ocean integrations. Under this user-facing layer, Oceananigans has been written for GPUs from scratch around three principles: memory leanness, communication-computation overlap, and compute-heavy gradient-preserving numerics. These choices allow to perform mesoscale-resolving global simulations on resources roughly an order of magnitude smaller than the ones required by climate-class ocean models, and the use of high-order shock-capturing schemes acts as an implicit closure that can substantially raise the effective resolution of the grid. In the second part of the talk, I will introduce NumericalEarth, a community-driven effort spawned by the Oceananigans contributors that extends the same design philosophy to a coupled Earth system. In NumericalEarth, atmosphere, ocean, sea ice, and land components share a unified interface, can be interchangeably prognostic or prescribed, and remain fully scriptable Julia objects. It is therefore possible to use the coupled model itself as a sandbox where interface parameterisations are tested, swapped, and eventually calibrated against observational data.