Breeze.jl
Authors/Creators
- 1. Aeolus Labs, Massachusetts Institute of Technology
- 2. University of Melbourne
- 3. University College London
- 4. Aeolus Labs
- 5. University of Tasmania
Description
Breeze v0.3.0
Breaking changes
- Function Argument Order Changes (most impactful) Several thermodynamic functions had their argument order changed to be more consistent (temperature first):
density(p, T, q, constants) → density(T, p, q, constants)
vapor_pressure(ρ, T, qᵛ, constants) → vapor_pressure(T, ρ, qᵛ, constants)
This affects any code directly calling these low-level thermodynamics functions.
- Default Timestepper Change
The default timestepper changed from :RungeKutta3 to :SSPRungeKutta3:
# Old default
timestepper = :RungeKutta3
# New default
timestepper = :SSPRungeKutta3
- Radiation Model API Changes
The RadiativeTransferModel constructor now uses an optics type system:
- New types: GrayOptics, ClearSkyOptics, AllSkyOptics
- The old optical_thickness field was replaced with a more structured optics approach
- Added BackgroundAtmosphere, liquid_effective_radius, ice_effective_radius fields
- New Dynamics Types (additive, but may affect dispatch)
New dynamics types were added: CompressibleDynamics - for fully compressible Euler equations PrescribedDynamics / KinematicModel - for kinematic models with prescribed velocity fields
- Module Restructuring
Thermodynamic formulations were moved from AtmosphereModels to their own top-level modules:
StaticEnergyFormulations/
PotentialTemperatureFormulations/
AnelasticEquations/
CompressibleEquations/
KinematicDriver/
This is mostly internal, but could affect code that imports from internal module paths.
Merged pull requests:
- Native implementation of DCMIP2016 Kessler microphysics (#241) (@kaiyuan-cheng)
- Implement SSPRungeKutta3TimeStepper (#291) (@glwagner)
- Clear sky
opticsforRadiativeTransferModelfromRRTMGP.jl(#334) (@glwagner) - [CI] Fix triggers of docs builds and condition for setting
BREEZE_LABEL_BUILD_ALL_EXAMPLES(#346) (@giordano) - Add Zenodo badge + CITATION.cff (#349) (@navidcy)
- Delete .github/workflows/DocPreviewsCleanup.yml (#350) (@navidcy)
- Simplify author affiliation formatting in CITATION.cff (#353) (@navidcy)
- [docs] Add a note about reproducibility of the simulations (#354) (@giordano)
- [CI] Don't trigger docs builds on
labeledevents (#355) (@giordano) - CompressibleDynamics with simple explicit time-stepping (#356) (@glwagner)
- Fix reference in docstring for thermodynamic adjustment factor (#357) (@glwagner)
- NFC: Simplify
Oceananiganscompat bounds (#360) (@giordano) - [docs] Don't actually save unused figures in Literate examples (#361) (@giordano)
- Update Oceananigans requirement from 0.102.2 to 0.102.2, 0.103 (#362) (@dependabot[bot])
- Add test for error path in
RadiativeTransferModelconstructor (#363) (@giordano) - [docs] Minor improvements to the acoustic wave example (#365) (@giordano)
- [docs] Build RICO example only on-demand (#366) (@giordano)
- Implement AllSkyOptics for RadiativeTransferModel (#367) (@glwagner)
- Add capability to set relative humidity directly (#368) (@glwagner)
- Refactor thermodynamic formulations into independent modules (#372) (@glwagner)
- Support 2M microphysics from CloudMicrophysics (#373) (@glwagner)
- [CI] Reduce parallel jobs on GPU runners (#374) (@giordano)
- Always reset
Float64as default float type at the end (#375) (@giordano) - [CI] Only cache scratchspaces for GPU jobs (#376) (@giordano)
- [docs] Automatically generate list of modules for API page (#377) (@giordano)
- Automatically list all subtypes of
AbstractOpticsin error message (#378) (@giordano) - Increase relative humidity in cloud kelvin helmholtz (#379) (@glwagner)
- Remove all imports, take 2 (#380) (@giordano)
- [docs] Use more
DocStringExtensionsutils, and add more crossrefs (#381) (@giordano) - Add TetensFormula saturation vapor pressure (#384) (@glwagner)
- Add bibtex entry and fixes some docs refs (#388) (@navidcy)
- Add support for vertically implicit time discretization (#390) (@glwagner)
- [AGENTS.md] Add instructions about MCPRepl and port some advice from Oceananigans (#391) (@glwagner)
- [CI] Run jobs with Julia v1.12.4 (#392) (@giordano)
- Implement a KinematicModel based on PrescribedVelocityFields (#394) (@glwagner)
- [CI] Use Breeze Docker images with julia version number in the tag (#399) (@giordano)
- Avoid all
Core.Boxes in Breeze (#400) (@giordano) - Remove stale imports (#401) (@giordano)
- Update README and docs landing with list of features, roadmap, and gallery (#402) (@glwagner)
- Bump to 0.3.0 (#403) (@glwagner)
- Try to make the tests cheaper (#404) (@glwagner)
- Cleanup whitespaces in Breeze codebase (#406) (@giordano)
Closed issues:
- Support setting
RelativeHumidityinset!(#282) - Insanely cool cloud visualization in docs / README (#315)
- Non-reproducible simulations (#351)
- Use TabulatedFunction to accelerate evaluation of
saturation_vapor_pressure(#370) - AtmosphereModel description for Docs landing page/README needs update? (#393)
Notes
Files
NumericalEarth/Breeze.jl-v0.3.0.zip
Files
(342.6 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:6c7d0481739cf23e9e5d6c2091ec5f8a
|
342.6 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/NumericalEarth/Breeze.jl/tree/v0.3.0 (URL)
Software
- Repository URL
- https://github.com/NumericalEarth/Breeze.jl