Juliacon 2024

Subzero.jl: Fast and Flexible Sea Ice Physics
2024-07-12 , While Loop (4.2)

Julia’s speed and extensibility allow fast and iterative exploration of fine-scale sea ice dynamics. Performance improvements of 15-20x over similar MATLAB code enable simulations over climate-relevant scales. Furthermore, the model’s modular design, enhanced by Julia’s multiple dispatch, encourages users to test novel experiment configurations. These improvements uncovered physical properties not captured by traditional models, which in turn continue to inform Subzero’s development.


Julia’s speed and flexibility promise advances in efficient and accessible climate modeling. For example, through the combination of Julia and GPUs, Oceananigans.jl has allowed mesoscale-resolving large ensemble ocean runs, the likes of which have previously been restricted to atmospheric models. As a developer-researcher team, we plan to adapt these computational advances to discrete-element sea ice modeling, where individual ice floes are represented as distinct elements that interact with other floes, the ocean, and the atmosphere. Towards this goal, we have translated the discrete-element sea ice model Subzero.jl from MATLAB to Julia to explore the physics of fine-grained sea ice dynamics while addressing the computational challenges posed by a sea ice field that constantly evolves in both size and shape.

In this translation, we focus on performance and ease of use. We have realized, and engineered, large performance improvements that now allow larger and faster simulations. Some of these speedups have resulted from our contributions to various Julia geometry libraries, highlighting the experience of developers becoming contributors to other Julia packages. Additionally, we have designed the code base in such a way that it is easily extended and customizable for users. This modularity takes advantage of multiple dispatch and has inspired new additions to the model as users request new features. Finally, we have achieved coupling with Oceanaigans.jl, furthering our research agenda and the usefulness of Subzero.jl within the field.

We have used the new model to investigate the transfer of momentum through sea ice packs and the ocean in various scenarios, including sea ice packs of various concentrations and sizes. Recently, we have collaborated with users interested in modeling the effects of storms on the ice pack, as well as the formation of cracks within the ice. We are excited to assist new users to extend and develop Subzero.jl independently as a way to increase both the developer and user base, highlighting the interplay between users and developers.

I am an assistant professor at TU Delft working in the department of Geoscience and Remote Sensing. My research focuses on the interactions between ocean and sea ice dynamics.