🌲🌡💧 Fast, differentiable, and GPU-aware land modeling across scales with Oceananigans.jl.
Terrarium.jl is a new and upcoming land model that aims to support hybrid physics- and data-driven land modeling across multiple spatial and temporal scales. We envision Terrarium to be part of a new generation of Earth system component models that combine modularity, interactivity, GPU-compability and auto-differentiability (AD) for seamless integration of process-based and data-driven model components in both global and regional scale simulations.
Terrarium is being developed alongside SpeedyWeather.jl and Oceananigans.jl as the land component of a new, user-friendly, and fully GPU/AD-compatible Earth System Model in the Julia programming language.
Warning
🚧🚧 Under Construction! 🚧🚧
Terrarium.jl is still in a prototyping stage and is not production-ready. Expect things to change rapidly and break often. If, however, you share our vision for a new paradigm of Earth system modeling and would like to get involved in the project, please don’t hesitate to reach out by creating an issue on GitHub issues or sending us an email. We are always happy to welcome new collaborators!
We want a land surface (and subsurface) model that is
- Fast enough to run global-scale simulations on a laptop at coarse (100 km) resolutions
- Flexible enough to scale-up to high resolution simulations in HPC environments
- Fully GPU-compatible with the ability to easily switch between running on CPU-based and GPU-based architectures
- Fully auto-differentiable with Enzyme.jl to enable systematic parameter estimation and hybrid modeling with neural differential equations
- Modular and extensible to allow for rapid prototyping of model components with varying levels of complexity
- Interactive and user-friendly to make land surface modeling fun and accessible for a larger audience of researchers and practitioners, as well as students and educators
- Open-source and community-driven to foster interdisciplinary collaboration and development
It is important to emphasize, however, what Terrarium is not:
- Terrarium is not a comprehensive land model. While we are always open to suggestions and contributions to add new processes, we do not aim to build a state-of-the-art terrestrial ecosystem model rivaling that of, e.g. the CTSM. Terrarium will always favor simplicity, efficiency, and interoperability over process-complexity.
- Terrarium is not “just another model”. We do not intend for users to simply download our model products and cite our papers. We want users to directly interact with our model, ideally running their own simulations and writing their own code.
- Terrarium is not a monolithic model. Modularity and extensibility are core to our vision. Terrarium provides a library of models, process implementations, and numerical tools which users can use to build their own simulations. We will provide guidance and a set of well-tested and stable model configurations, but we encourage users to experiment and push the limits of what those models can do.
It might initially seem strange that a land model would be built on top of a framework for ocean modeling. There are, however, some key advantages in doing so:
- Firstly, like ocean models, land models are commonly implemented using finite difference and/or finite volume method (FDM/FVM) to approximate spatial gradients in mass and energy conservation laws. Oceananigans provides state-of-the-art tools for FVM simulation in Julia, with a focus on geophysical applications, which aligns well with our goals. Like most land models, Terrarium will initially focus on 1D column modeling; however, using Oceananigans affords us the possibility of very feasibly expanding to 2D and 3D simulations in the future!
- Secondly, the numerical operators provided by Oceananigans are built to be both auto-differentiable and GPU-compatible out-of-the-box, which means that Terrarium can inherit these capabilities almost “for free”.
- Finally, and perhaps most importantly, we believe in the vision pioneered by the Climate Modeling Alliance and the Oceananigans team for the development of a new generation of Earth System Models that are open, accessible, interactive, and capable of learning from data in ways that go beyond traditional data assimilation.
Terrarium is still in an early prototype stage and is not yet registered as a package in the Julia General registry.
However, you can still install the package from the repository via the package manager (type ]
in your REPL):
pkg> add https://github.com/TUM-PIK-ESM/Terrarium.jl
or clone the repository and start hacking directly!
Coming soon!
An open source project is only as strong as its community of contributors. We're alays happy to accept contributions, no matter how big or small!
Terrarium.jl is in a very early stage of development, so this is a golden opportunity for you to get your ideas in on the ground floor. If you have some ideas or code you would like to contribute, please don't hesitate to create an issue and get involved!
See the NOTICE file for copyright information.
Terrarium.jl is free and open source licensed under the European Union Public License v1.2.
What does that mean for you? You are 100% free to
- Copy, modify, and redistribute the code
- Use the software as a package in your own project (regardless of license or copyright status)
- Use the software for both commercial and non-commerical purposes
However, if you make changes or modification to the code, excluding those made purely for the purpose of interoperability, you are required to re-distribute the modified software under the EUPL v1.2 or a compatible license. This is vital to ensure the long-term survival of the project and to foster an open, supportive, and diverse community.