diff --git a/.github/workflows/BuildJOSSPaper.yml b/.github/workflows/BuildJOSSPaper.yml new file mode 100644 index 00000000..2026adb7 --- /dev/null +++ b/.github/workflows/BuildJOSSPaper.yml @@ -0,0 +1,55 @@ +name: Build PDF for JOSS paper + +on: + push: + branches: + - "paper" + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: always. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + paper: + runs-on: ubuntu-latest + name: Build Paper + steps: + - name: Checkout + uses: actions/checkout@v6 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@85a18372e48f551d8af9ddb7a747de685fbbb01c + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper/paper.md + - name: Upload + uses: actions/upload-artifact@v6 + id: upload-paper + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper/paper.pdf + - name: Install Python dependencies + run: pip install github3.py + - name: Create custom status + shell: python {0} + run: | + import os + from github3 import login + + token = "${{ github.token }}" + gh = login(token=token) + + owner, repo_name = "${{ github.repository }}".split('/') + repo = gh.repository(owner, repo_name) + + sha = "${{ github.sha }}" + state = "success" + target_url = "${{ steps.upload-paper.outputs.artifact-url }}" + description = "Download PDF" + context = "${{ github.workflow }} / Preview" + repo.create_status(sha, state, target_url, description, context) diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 00000000..1c42d357 --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,259 @@ +@article{Oceananigans, + author = {Ramadhan, Ali and Wagner, Gregory LeClaire and Hill, Chris and Campin, Jean-Michel and Churavy, Valentin and Besard, Tim and Souza, Andre and Edelman, Alan and Ferrari, Raffaele and Marshall, John}, + title = {{Oceananigans.jl: Fast and friendly geophysical fluid dynamics on GPUs}}, + journal = {Journal of Open Source Software}, + year = {2020}, + volume = {5}, + number = {53}, + pages = {2018}, + doi = {10.21105/joss.02018} +} + +@article{Siebesma2003, + author = {Siebesma, A. Pier and Bretherton, Christopher S. and Brown, Andrew and Chlond, Andreas and Cuxart, Joan and Duynkerke, Peter G. and Jiang, Hongli and Khairoutdinov, Marat and Lewellen, David and Moeng, Chin-Hoh and Sanchez, Enrique and Stevens, Bjorn and Stevens, David E.}, + title = {A Large Eddy Simulation Intercomparison Study of Shallow Cumulus Convection}, + journal = {Journal of the Atmospheric Sciences}, + year = {2003}, + volume = {60}, + number = {10}, + pages = {1201--1219}, + doi = {10.1175/1520-0469(2003)60<1201:ALESIS>2.0.CO;2} +} + +@article{vanZanten2011, + author = {van Zanten, Margreet C. and Stevens, Bjorn and Nuijens, Louise and Siebesma, A. Pier and Ackerman, Andrew S. and Burnet, Fr{\'e}d{\'e}ric and Cheng, Andr{\'e} and Couvreux, Fleur and Jiang, Hongli and Khairoutdinov, Marat and Kogan, Yefim and Lewellen, David C. and Mechem, David and Nakamura, Kozo and Noda, Akira and Shipway, Ben J. and Slawinska, Joanna and Wang, Shuyi and Wyszogrodzki, Andrzej}, + title = {Controls on precipitation and cloudiness in simulations of trade-wind cumulus as observed during RICO}, + journal = {Journal of Advances in Modeling Earth Systems}, + year = {2011}, + volume = {3}, + number = {2}, + pages = {M06001}, + doi = {10.1029/2011MS000056} +} + +@article{CloudMicrophysics, + author = {Jaruga, Anna and Schneider, Tapio}, + title = {CloudMicrophysics.jl: A Julia package for cloud microphysics modeling}, + journal = {Journal of Open Source Software}, + year = {2024}, + note = {In preparation} +} + +@article{RRTMGP, + author = {Pincus, Robert and Mlawer, Eli J. and Delamere, Jennifer S.}, + title = {Balancing Accuracy, Efficiency, and Flexibility in Radiation Calculations for Dynamical Models}, + journal = {Journal of Advances in Modeling Earth Systems}, + year = {2019}, + volume = {11}, + number = {10}, + pages = {3074--3089}, + doi = {10.1029/2019MS001621} +} + +@software{Churavy_KernelAbstractions_jl, + author = {Churavy, Valentin}, + license = {MIT}, + title = {{KernelAbstractions.jl}}, + url = {https://github.com/JuliaGPU/KernelAbstractions.jl}, + doi = {10.5281/zenodo.4021259}, +} + +@article{Bezanson2017, + author = {Bezanson, Jeff and Edelman, Alan and Karpinski, Stefan and Shah, Viral B.}, + title = {Julia: A Fresh Approach to Numerical Computing}, + journal = {SIAM Review}, + year = {2017}, + volume = {59}, + number = {1}, + pages = {65--98}, + doi = {10.1137/141000671} +} + +@article{Deardorff1980, + author = {Deardorff, James W.}, + title = {Stratocumulus-capped mixed layers derived from a three-dimensional model}, + journal = {Boundary-Layer Meteorology}, + year = {1980}, + volume = {18}, + number = {4}, + pages = {495--527}, + doi = {10.1007/BF00119502} +} + +@book{Stull1988, + author = {Stull, Roland B.}, + title = {An Introduction to Boundary Layer Meteorology}, + publisher = {Springer Netherlands}, + year = {1988}, + doi = {10.1007/978-94-009-3027-8} +} + +@article{OceananigansArxiv, + author = {Wagner, Gregory L. and Silvestri, Simone and Constantinou, Navid C. and Ramadhan, Ali and Campin, Jean-Michel and Hill, Chris and Chor, Tomas and Strong-Wright, Jago and Lee, Xin Kai and Poulin, Francis and Souza, Andre and Burns, Keaton J. and Bishnu, Siddhartha and Marshall, John and Ferrari, Raffaele}, + title = {High-level, high-resolution ocean modeling at all scales with {Oceananigans}}, + journal = {arXiv preprint arXiv:2502.14148}, + year = {2025}, + doi = {10.48550/arXiv.2502.14148}, + url = {https://arxiv.org/abs/2502.14148} +} + +@article{DALES, + author = {Heus, Thijs and van Heerwaarden, Chiel C. and Jonker, Harm J. J. and Pier Siebesma, A. and Axelsen, Simon and van den Dries, Kees and Geoffroy, Olivier and Moene, Arnold F. and Pino, David and de Roode, Stephan R. and Vil{\`a}-Guerau de Arellano, Jordi}, + title = {Formulation of the {Dutch Atmospheric Large-Eddy Simulation (DALES)} and overview of its applications}, + journal = {Geoscientific Model Development}, + year = {2010}, + volume = {3}, + number = {2}, + pages = {415--444}, + doi = {10.5194/gmd-3-415-2010} +} + +@article{MicroHH, + author = {van Heerwaarden, Chiel C. and van Stratum, Bart J. H. and Heus, Thijs and Gibbs, Jeremy A. and Fedorovich, Evgeni and Mellado, Juan Pedro}, + title = {{MicroHH 1.0}: a computational fluid dynamics code for direct numerical simulation and large-eddy simulation of atmospheric boundary layer flows}, + journal = {Geoscientific Model Development}, + year = {2017}, + volume = {10}, + number = {8}, + pages = {3145--3165}, + doi = {10.5194/gmd-10-3145-2017} +} + +@article{PyCLES, + author = {Pressel, Kyle G. and Kaul, Colleen M. and Schneider, Tapio and Tan, Zhihong and Misber, Siddhartha}, + title = {Large-eddy simulation in an anelastic framework with closed water and entropy balances}, + journal = {Journal of Advances in Modeling Earth Systems}, + year = {2015}, + volume = {7}, + number = {3}, + pages = {1425--1456}, + doi = {10.1002/2015MS000496} +} + +@article{CM1, + author = {Bryan, George H. and Fritsch, J. Michael}, + title = {A Benchmark Simulation for Moist Nonhydrostatic Numerical Models}, + journal = {Monthly Weather Review}, + year = {2002}, + volume = {130}, + number = {12}, + pages = {2917--2928}, + doi = {10.1175/1520-0493(2002)130<2917:ABSFMN>2.0.CO;2} +} + +@techreport{WRF, + author = {Skamarock, William C. and Klemp, Joseph B. and Dudhia, Jimy and Gill, David O. and Liu, Zhiquan and Berner, Judith and Wang, Wei and Powers, Jordan G. and Duda, Michael G. and Barker, Dale M. and Huang, Xiang-Yu}, + title = {A Description of the {Advanced Research WRF Model Version 4}}, + institution = {National Center for Atmospheric Research}, + year = {2019}, + number = {NCAR/TN-556+STR}, + doi = {10.5065/1dfh-6p97} +} + +@article{MesoNH, + author = {Lac, Christine and Chaboureau, Jean-Pierre and Masson, Val{\'e}ry and Pinty, Jean-Pierre and Tulet, Pierre and Escobar, Juan and Leriche, Maud and Barthe, Christelle and Aouizerats, Benjamin and Augros, Cl{\'e}ment and Aumond, Pierre and Auguste, Florian and Bechtold, Peter and Berthet, Sarah and Bielli, S{\`e}verine and Bosseur, Fran{\c{c}}ois and Caumont, Olivier and Cohard, Jean-Martial and Colin, Jeanne and Couvreux, Fleur and Cuxart, Joan and Delautier, Ga{\"e}lle and Dauhut, Thibaut and Ducrocq, V{\'e}ronique and Filippi, Jean-Baptiste and Gazen, Didier and Geoffroy, Olivier and Gheusi, Fran{\c{c}}ois and Honnert, Rachel and Lafore, Jean-Philippe and Lebeaupin Brossier, Cindy and Libois, Quentin and Lunet, Thibaut and Mari, C{\'e}line and Maric, Tomislav and Mascart, Patrick and Mog{\'e}, Maxime and Mo{\"i}se, Gwendal and Molini{\'e}, Guilhem and Peyrot, Fr{\'e}d{\'e}ric and Pergaud, Julien and Perraud, Emilie and Pigeon, Gr{\'e}goire and Redelsperger, Jean-Luc and Riber, D. and Ricard, Didier and Richard, Evelyne and Rinc{\'o}n, Samuel and Rodier, Quentin and Seyfried, Laura and Stein, Jo{\"e}l and S{\"u}hre, Karsten and Taufour, Marie and Thouron, Odile and Turner, S{\'e}bastien and Verrelle, Adrien and Vi{\'e}, Beno{\^i}t and Visentin, Florian and Vionnet, Vincent and Wautelet, Philippe}, + title = {Overview of the {Meso-NH} model version 5.4 and its applications}, + journal = {Geoscientific Model Development}, + year = {2018}, + volume = {11}, + number = {5}, + pages = {1929--1969}, + doi = {10.5194/gmd-11-1929-2018} +} + +@article{ICON, + author = {Z{\"a}ngl, G{\"u}nther and Reinert, Daniel and R{\'\i}podas, Pilar and Baldauf, Michael}, + title = {The {ICON} ({IC}osahedral {N}on-hydrostatic) modelling framework of {DWD} and {MPI-M}: Description of the non-hydrostatic dynamical core}, + journal = {Quarterly Journal of the Royal Meteorological Society}, + year = {2015}, + volume = {141}, + number = {687}, + pages = {563--579}, + doi = {10.1002/qj.2378} +} + +@article{SAM, + author = {Khairoutdinov, Marat F. and Randall, David A.}, + title = {Cloud Resolving Modeling of the {ARM} Summer 1997 {IOP}: Model Formulation, Results, Uncertainties, and Sensitivities}, + journal = {Journal of the Atmospheric Sciences}, + year = {2003}, + volume = {60}, + number = {4}, + pages = {607--625}, + doi = {10.1175/1520-0469(2003)060<0607:CRMOTA>2.0.CO;2} +} + +@article{PTerodaC3TILES, + author = {Thuburn, John}, + title = {Potential-based thermodynamics with consistent conservative cascade transport for implicit large eddy simulation: {PTerodaC3TILES} version 1.0}, + journal = {Geoscientific Model Development}, + year = {2025}, + volume = {18}, + number = {11}, + pages = {3331--3357}, + doi = {10.5194/gmd-18-3331-2025}, + url = {https://gmd.copernicus.org/articles/18/3331/2025/} +} + +@article{DPSCREAM, + author = {Bogenschutz, P. A. and Clevenger, T. C. and Bradley, A. M. and Caldwell, P. M. and Beydoun, H. and Mahfouz, N. and Keen, N. D. and Guba, O. and Bertagna, L. and Foucar, J. and Zhang, J. and Donahue, A. S.}, + title = {High Performance, High Fidelity: A {GPU}-Accelerated Doubly-Periodic Configuration of the Simple Cloud-Resolving {E3SM} Atmosphere Model Version 1 ({DP-SCREAMv1})}, + journal = {Journal of Advances in Modeling Earth Systems}, + year = {2025}, + volume = {17}, + number = {11}, + doi = {10.1029/2025MS005127}, + url = {https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2025MS005127}, + publisher = {American Geophysical Union (AGU)}, + issn = {1942-2466} +} + +@article{NeuralGCM, + author = {Kochkov, Dmitrii and Yuval, Janni and Langmore, Ian and Norgaard, Peter and Smith, Jamie and Mooers, Griffin and Kl{\"o}wer, Milan and Lottes, James and Rasp, Stephan and D{\"u}ben, Peter and Hatfield, Sam and Battaglia, Peter and Sanchez-Gonzalez, Alvaro and Willson, Matthew and Brenner, Michael P. and Hoyer, Stephan}, + title = {Neural general circulation models for weather and climate}, + journal = {Nature}, + year = {2024}, + volume = {632}, + number = {8027}, + pages = {1060--1066}, + doi = {10.1038/s41586-024-07744-y}, + url = {https://www.nature.com/articles/s41586-024-07744-y} +} + +@article{Silvestri2025, + author = {Silvestri, Simone and Wagner, Gregory L. and Constantinou, Navid C. and Hill, Christopher N. and Campin, Jean-Michel and Souza, Andre N. and Bishnu, Siddhartha and Churavy, Valentin and Marshall, John and Ferrari, Raffaele}, + title = {A {GPU}-Based Ocean Dynamical Core for Routine Mesoscale-Resolving Climate Simulations}, + journal = {Journal of Advances in Modeling Earth Systems}, + year = {2025}, + volume = {17}, + number = {4}, + doi = {10.1029/2024MS004465}, + url = {https://doi.org/10.1029/2024MS004465}, + publisher = {American Geophysical Union (AGU)}, + issn = {1942-2466} +} + +@misc{SpeedyWeather, + title = {{SpeedyWeather.jl}: A Julia global atmospheric model for interactivity and extensibility}, + howpublished = {\url{https://github.com/SpeedyWeather/SpeedyWeather.jl}}, + note = {Accessed 2025-12-31} +} + +@misc{JAXGCM, + title = {{JAX GCM} (Dinosaur): A differentiable dynamical core for global atmospheric modeling}, + howpublished = {\url{https://github.com/neuralgcm/dinosaur}}, + note = {Accessed 2025-12-31} +} + +@misc{ClimaCore, + title = {{ClimaCore.jl}: Performance-portable spectral-element discretizations for climate modeling}, + howpublished = {\url{https://github.com/CliMA/ClimaCore.jl}}, + note = {Accessed 2025-12-31} +} + +@misc{ClimaAtmos, + title = {{ClimaAtmos.jl}: An atmosphere model built on {ClimaCore.jl}}, + howpublished = {\url{https://github.com/CliMA/ClimaAtmos.jl}}, + note = {Accessed 2025-12-31} +} + diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 00000000..1d949ae2 --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,171 @@ +--- +title: 'Breeze.jl: A Julia package for simulating atmospheric flows' +tags: + - Julia + - atmospheric science + - large-eddy simulation + - cloud physics + - computational fluid dynamics + - GPU computing +authors: + - name: Gregory L. Wagner + orcid: 0000-0001-5317-2445 + affiliation: "1, 2" + corresponding: true + - name: Navid C. Constantinou + orcid: 0000-0002-8149-4094 + affiliation: "3, 4" + - name: Madelaine Gamble Rosevear + orcid: 0000-0003-4254-843X + affiliation: "4, 5" + - name: Tobias Bischoff + orcid: 0000-0002-5629-5765 + affiliation: 1 + - name: Kai-Yuan Cheng + orcid: 0000-0002-4246-7659 + affiliation: 1 + - name: Mosè Giordano + orcid: 0000-0002-7218-2873 + affiliation: 6 +affiliations: + - name: Aeolus Labs, CA, USA + index: 1 + - name: Massachusetts Institute of Technology, Cambridge, MA, USA + index: 2 + - name: University of Melbourne, Parkville, VIC, Australia + index: 3 + - name: Australian Research Council Center of Excellence for the Weather of the 21st Century, Australia + index: 4 + - name: University of Tasmania, Hobart, TAS, Australia + index: 5 + - name: University College London, London, UK + index: 6 +date: 31 December 2025 +bibliography: paper.bib +--- + +## TODO / Table of contents + +- Summary +- [ ] TODO: *Introduction / summary figure* +- Statement of Need +- Key Features + - Dynamics equations sets + - AnelasticDynamics + - CompressibleDynamics + - [ ] ParcelDynamics + - Thermodynamic Formulations + - Static energy + - Liquid-ice potential temperature + - [ ] Conservative potential temperature (Bryan and Fritsch 2002) + - [ ] Total energy (Romps 2008, Yatunin 2025) + - [ ] Entropy for non-phase-equilibrium (?) + - Radiative Transfer + - Gray radiation + - Clear sky radiation + - [ ] All sky radiation + - [ ] Aerosol scatting radiation (?) + - Microphysics schemes + - No microphysics (!) + - Warm- and mixed-phase SaturationAdjustment + - CloudMicrophysics 1M scheme + - [ ] CloudMicrophysics 2M warm-phase scheme + - [ ] CloudMicrophysics P3+2M scheme + - [ ] Time stepping methods +- Example Applications + - Idealized stuff + - Intercomparisons: + - BOMEX + - RICO + - [ ] GATE + - [ ] Radiative convective equilibrium + - [ ] Open boundary case? + - Prototype mesoscale applications + - [ ] Dry tropical cyclone setup (Cronin and Chavas 2019) +- [ ] Performance and scaling benchmarks +- Acknowledgements +- References + +# Summary + +Breeze.jl is an open-source Julia package for simulating atmospheric flows, with a focus on large-eddy simulation (LES) of boundary layer turbulence, cloud dynamics, and moist convection. Built on top of Oceananigans.jl [@Oceananigans], Breeze.jl provides specialized physics for atmospheric applications including anelastic and compressible dynamics, moist thermodynamics with saturation adjustment, cloud microphysics, and radiative transfer. The package is designed for high-performance computing on both CPUs and GPUs, enabling researchers to perform high-resolution atmospheric simulations efficiently. + +# Statement of Need + +Atmospheric simulation and weather prediction prevent disaster, help plan and help people plan their day. +Weather prediction is currently undergoing a revolution due to the emergence of cheap and accurate machine-learning-based emulators. +Yet despite a gathering quorum of conditions, including increasingly powerful modern software tools and increasingly capable hardware tailored specifically to numerical computation, no such revolution has transformed "traditional" numerical weather prediction (NWP) systems. +With modern software and hardware, we now have the technology to develop an instantly installable, easily learnable, blazingly fast, ML-integrated and differentiable NWP system that is orders of magnitude more efficient than traditional systems. Breeze represents an attempt to realize this goal. + +Numerical simulation of atmospheric flows spans scales from meters to thousands of kilometers, requiring diverse computational tools with distinct capabilities. At the smallest scales, large-eddy simulation (LES) models resolve turbulent eddies in the atmospheric boundary layer and have become essential for understanding cloud processes and convective dynamics. Existing LES codes include DALES [@DALES], microHH [@MicroHH], PyCLES [@PyCLES], PTerodaC³TILES [@PTerodaC3TILES], and the System for Atmospheric Modeling (SAM) [@SAM]. At larger scales, mesoscale models simulate weather systems from a few kilometers to regional scales, with prominent examples including Cloud Model 1 (CM1) [@CM1], the Weather Research and Forecasting model (WRF) [@WRF], Meso-NH [@MesoNH], and the ICON nonhydrostatic model [@ICON]. Some models, notably SAM and CM1, bridge these scales by operating in both LES and cloud-resolving configurations. + +At the global convection-permitting end of this spectrum, the Simple Convection-Permitting E3SM Atmosphere Model (SCREAM) has also been adapted into a doubly-periodic configuration (DP-SCREAM), enabling efficient studies of horizontal-resolution sensitivity and scale awareness in a controlled setting [@DPSCREAM]. At the global-model end more broadly, modern efforts include the CliMA atmospheric dycore, a spectral-element dynamical core designed for climate and global simulations [@ClimaCore; @ClimaAtmos], simplified Julia-first global models such as SpeedyWeather.jl [@SpeedyWeather], and differentiable / machine-learning-oriented global modeling frameworks such as JAX GCM [@JAXGCM] and NeuralGCM [@NeuralGCM]. + +The Weather Research and Forecasting model (WRF) exemplifies a "dual mandate" approach: its name emphasizes both *research* and *forecasting* as co-equal goals. We believe there is a need for a modern take on WRF: a new dual-mandate atmosphere model that is simultaneously (i) a world-class tool for real applications and regional prediction, and (ii) an exceptionally modular, scriptable, and learnable model for research and education. + +An atmosphere model built on Oceananigans is ideally suited to this approach. First, Oceananigans employs relatively simple C-grid numerical methods and sits within a well-established Julia ecosystem that supports powerful usability patterns for model configuration, simulation, visualization, and post-processing [@Oceananigans]. Second, Oceananigans has demonstrated world-leading performance for ocean simulations, including recent GPU-based mesoscale-resolving climate simulations, with reported speedups of \(O(10\text{--}100\times)\) relative to existing Fortran-based codes in comparable regimes [@OceananigansArxiv; @Silvestri2025]. As a result, an atmosphere model based on Oceananigans also has the potential to become a world-class code for regional weather forecasting applications. + +Existing atmospheric models face several challenges. Many legacy codes are written in Fortran and can be difficult to extend, modify, or learn for new users. +Such legacy codes are not easily ported to new accelerators, especially when portability across vendors (Nvidia, AMD) is needed. +While these codes achieve excellent performance, their complexity often creates barriers to entry for students and researchers from adjacent fields. +Modern codes may offer improved usability but sometimes lack either the physical fidelity or computational performance required for production simulations. + +Breeze.jl addresses these challenges by combining high performance with accessibility. Key design principles include: + +1. **GPU-first architecture**: Breeze.jl is designed from the ground up for GPU computing. Leveraging KernelAbstractions.jl [@Churavy_KernelAbstractions_jl], the same code runs efficiently on both CPUs and GPUs, enabling researchers to utilize modern accelerated hardware without code modifications. This approach follows the successful model demonstrated by Oceananigans.jl [@OceananigansArxiv], which showed that high-level Julia code can achieve excellent performance across heterogeneous architectures. + +2. **Julia scripting paradigm**: Written entirely in Julia [@Bezanson2017], Breeze.jl offers a scripting-based workflow where simulations are configured through human-readable Julia scripts rather than configuration files or compiled executables. This design accelerates the research cycle by enabling rapid prototyping, inline visualization, and interactive exploration of results. The same scripts serve as self-documenting examples for education. + +3. **Extreme modularity**: Julia's multiple dispatch enables flexible composition of physical parameterizations. Users can swap thermodynamic formulations, microphysics schemes, turbulence closures, and other components independently. This modularity facilitates both research into individual processes and education about atmospheric physics. + +4. **Oceananigans.jl foundation**: By building on Oceananigans.jl [@Oceananigans; @OceananigansArxiv], Breeze.jl inherits a battle-tested infrastructure for structured grids, advection schemes, time-stepping, and diagnostics, while adding atmosphere-specific physics including anelastic dynamics, moist thermodynamics, cloud microphysics, and radiative transfer. + +5. **Coupled Earth system modeling**: Breeze.jl interfaces with ClimaOcean for coupled atmosphere-ocean simulations, enabling studies of air-sea interaction and supporting the development of next-generation Earth system models. + +# Key Features + +## Dynamical Cores + +Breeze.jl supports multiple dynamical formulations: + +- **Anelastic dynamics**: Filters acoustic waves while preserving gravity waves and convective motions, ideal for simulating atmospheric boundary layers and shallow convection. +- **Compressible dynamics**: Fully compressible equations for applications requiring acoustic wave propagation. + +## Thermodynamic Formulations + +The package offers flexible thermodynamic formulations: + +- **Liquid-ice potential temperature thermodynamics**: Prognostic potential temperature density for anelastic simulations. +- **Static energy thermodynamics**: Prognostic static energy density, useful for energy-conserving formulations. + +## Cloud Microphysics + +Through an extension to CloudMicrophysics.jl, Breeze.jl supports: + +- Zero-moment (saturation adjustment) schemes +- One-moment bulk microphysics schemes +- A flexible interface for implementing additional schemes + +## Radiative Transfer + +Integration with RRTMGP.jl provides: + +- Clear-sky radiative transfer calculations +- Gray atmosphere approximations for idealized studies + +# Example Applications + +Breeze.jl includes documented examples demonstrating its capabilities: + +- Dry and moist thermal bubbles +- BOMEX shallow cumulus intercomparison case [@Siebesma2003] +- RICO precipitating shallow convection [@vanZanten2011] +- Kelvin-Helmholtz instability with cloud formation +- Mountain wave dynamics +- Single-column radiation + +# Acknowledgements + +We acknowledge contributions from the Climate Modeling Alliance (CliMA) and the broader Julia community. N.C.C. and M.G.R. are supported by the Australian Research Council Center of Excellence for the Weather of the 21st Century CE230100012. N.C.C. was further supported by the Australian Reasearch Council Discovery Project DP240101274. + +# References