This package provides a Julia implementation of the Marshall, Molteni Quasigeostrophic Atmsopheric Model in three layers. It runs on CPU or CUDA GPUs and is differentiable via Zygote.jl.
The model is solved with a pseudo-spectral approach on a gaussian grid with approatiate spherical harmonics transforms defined. Example scripts are provided in the examples
folder.
Install e.g. via ]add https://github.com/maximilian-gelbrecht/QG3.jl.git
and test the installation with ]test QG3
The repository includes pre-computed forcing and initial conditions on a T21 to run the model but no proper dataset to re-compute those in order to save space. The example folder also includes the necessary scripts to pre-compute those for other grids and datasets.
Details about the model can be read up in "Towards a Dynamical Understanding of Planetary-Scale Flow Regimes", Marshall, Molteni, Journal of Atmsopheric Sciences, 1993
Its governing equation for the quasigeostrophic vorticity
where the voriticy
Currently there are two different implementations, one that is optimised for CPU (the "2D version") and one that is optimised for GPU (the "3D version"). The GPU version can also run on CPU, albeit a bit slower, but not the other way around. Further explainations in the documentation.
It's unlikely that this model will see a lot of further development. But key ideas and lessons learned from this project are applied to SpeedyWeather.jl. We are currently working on a AD and GPU enabled version of this much more complex atmospheric model.
If you are using this model for any publications or other works, please cite us.