Recent Releases of Breeze.jl

Breeze.jl - v0.5.0

Breeze v0.5.0

Diff since v0.4.8

Breaking changes

  • Acoustic substepping was refactored, with new damping options and internal variables

Merged pull requests:

  • Add AD component to acoustic wave example (#565) (@dkytezab)
  • Add verifiable AD example (#578) (@dkytezab)
  • Bump CloudMicrophysics in / (#586) (@dependabot[bot])
  • Acoustic substepping cleanup: typed AcousticDampingStrategy + new default + BW example (#622) (@glwagner)
  • Bump CloudMicrophysics in / (#636) (@dependabot[bot])
  • Bump CloudMicrophysics in / (#638) (@dependabot[bot])
  • Fix moisture initialization in splitting supercell example (#648) (@kaiyuan-cheng)
  • [benchmarking] Compatibility for CUDA.jl v6 (#652) (@giordano)
  • Remove unused packages from examples env (#654) (@giordano)
  • Fix formulation of virtual potential temperature / bugs from #625 bug crawl (#656) (@kaiyuan-cheng)
  • Revert "Register atan, atand, mod as binary operations on Fields (#644)" (#658) (@giordano)
  • [benchmarking] Support AMD GPUs (#660) (@giordano)
  • Add eltype and architecture methods for AtmosphereModel (#661) (@giordano)
  • Fix summary and docs for FilteredBCs (#662) (@navidcy)
  • Improve citation formatting in polynomial_bulk_coefficient.jl (#663) (@navidcy)
  • Bump benchmark-action/github-action-benchmark from 1.21.0 to 1.22.0 (#665) (@dependabot[bot])
  • Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#666) (@dependabot[bot])
  • Bump JuliaRegistries/TagBot from 1.24.6 to 1.25.6 (#667) (@dependabot[bot])
  • Bump codecov/codecov-action from 5.5.3 to 6.0.0 (#668) (@dependabot[bot])
  • Bump julia-actions/cache from 3.0.1 to 3.0.2 (#669) (@dependabot[bot])
  • Pin CUDA.jl to v6.0 in tests (#670) (@giordano)
  • Add regression test for virtual potential temperature formulation (#674) (@kaiyuan-cheng)
  • Pin Reactant and GPUCompiler to known compatible versions (#675) (@giordano)
  • Fuse multi-output microphysical tendencies for GPU performance (#676) (@kaiyuan-cheng)
  • Adds benchmarking for Reactant vs. Vanilla AtmosphereModel (#677) (@dkytezab)
  • Allow passing the float type as argument to SplitExplicitTimeDiscretization (#678) (@giordano)
  • Use consistent float type when launching _update_pressure_and_average! (#680) (@giordano)
  • Use default FloatType in SplitExplicitTimeDiscretization constructor (#681) (@glwagner)
  • Support Metal GPUs in benchmarks (#682) (@giordano)
  • Run acousting substepping tests on Metal GPU when functional (#689) (@giordano)
  • Add some docs explaining different assumptions behind saturation humidity computation (#690) (@simone-silvestri)
  • Revert "Pin Reactant and GPUCompiler to known compatible versions" (#691) (@giordano)
  • Add AbstractSolarPosition for unified solar-zenith control (#692) (@glwagner)
  • Temporarily pin GPUCompiler to v1.10 (#695) (@giordano)
  • Bump version from 0.4.8 to 0.5.0 (#696) (@glwagner)
  • [CI] Remove redundant env block (#697) (@giordano)
  • Add vapor_gas_constant to Breeze.jl exports (#699) (@ewquon)
  • [CI] Give names to steps in benchmarks job (#701) (@giordano)
  • Move all Reactant tests to subdir (#702) (@giordano)
  • Bump GPUArraysCore in /docs (#705) (@dependabot[bot])
  • Revert "Temporarily pin GPUCompiler to v1.10" (#707) (@giordano)
  • Reserve underscore prefix for kernels in AGENTS.md (#709) (@ewquon)
  • Add number_concentration(model, species) lazy diagnostic (#711) (@jtbuch)

Closed issues:

  • Add regression tests for formulation of virtual potential temperature bugs (#659)
  • _update_pressure_and_average! kernel always called with Float64 argument (#679)
  • Add number_concentration(model, species) lazy diagnostic for one-moment microphysics (#710)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 30 days ago

Breeze.jl - P3_lookup_tables_v1.0

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by giordano about 2 months ago

Breeze.jl - v0.4.8

Breeze v0.4.8

Diff since v0.4.7

Merged pull requests:

  • Add FilteredSurfaceVelocities for computing bulk boundary conditions from a time-averaged state (#541) (@glwagner)
  • Add neutral atmospheric boundary layer example (#615) (@ewquon)
  • Fix 2π type promotion in extension (#635) (@dkytezab)
  • Bump CUDA in /benchmarking (#637) (@dependabot[bot])
  • Allow Oceananigans v0.107 (#639) (@giordano)
  • Update Oceananigans version to 0.107.1 (#641) (@navidcy)
  • Avoid use of at-doc macro inside structs (#642) (@giordano)
  • Register atan, atand, mod as binary operations on Fields (#644) (@ewquon)
  • Drop :grid from default_included_properties; test no-warning init (#645) (@ewquon)
  • Fix Lagrangian-averaged DynamicSmagorinsky clock-stage wiring: step_closure_prognostics! after tick_stage! (#646) (@ewquon)
  • Some minor tweaks in neutral BL example (#647) (@navidcy)
  • Some minor tweaks in TC example (#649) (@navidcy)
  • Bump version from 0.4.7 to 0.4.8 (#650) (@navidcy)
  • Fix bulk sensible heat flux potential temperature conversion (#651) (@bischtob)

Closed issues:

  • JLD2Writer warns about duplicate serialized/grid during init with AtmosphereModel (#643)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] about 2 months ago

Breeze.jl - v0.4.7

Breeze v0.4.7

Diff since v0.4.6

Merged pull requests:

  • Fix physics bugs found by Bug Crawl (#625) (#626) (@kaiyuan-cheng)
  • [CI] Update most Julia versions to v1.12.6 (#628) (@giordano)
  • [CI] Update all GPU jobs to use julia v1.12.6 (#629) (@giordano)
  • Rework parallelism strategy for running docs (#630) (@giordano)
  • Call materialize_advection for WENO GPU compatibility (#631) (@ewquon)
  • (0.4.7) Bump Breeze version (#632) (@simone-silvestri)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] about 2 months ago

Breeze.jl - v0.4.6

Breeze v0.4.6

Diff since v0.4.5

Merged pull requests:

  • Add error message when required keyword arguments to BulkDrag are missing (#603) (@fergu)
  • Homogenise math formatting in docstrings + few moar tweaks (#606) (@navidcy)
  • Revert "Test raising one moment microphysics" (#608) (@giordano)
  • Dump MLIR on Reactant tests (#610) (@dkytezab)
  • Change link to NumericalEarth.jl in README (#611) (@glwagner)
  • Don't promote in CloudMicrophysicsExt via (#612) (@dkytezab)
  • Add show method for TerrainMetrics (#617) (@navidcy)
  • Add closure prognostic hooks for LASD support (#618) (@ewquon)
  • Use prettysummary in show method when radiation.surface_properties.surface_temperature !isa ConstantField (#620) (@navidcy)
  • Clean up TerrainFollowingDiscretization (#621) (@kaiyuan-cheng)
  • Merge workarounds into hevi imex docs (#624) (@dkytezab)

Closed issues:

  • Clean up for TerrainFollowingDiscretization (#592)
  • Restore time_step! to BreezeReactantExt (#598)
  • Add bibtex ref for Bryan 2002 (#613)
  • Dynamic Smagorinsky is not properly hooked up (#616)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 2 months ago

Breeze.jl - v0.4.5

Breeze v0.4.5

Diff since v0.4.4

Merged pull requests:

  • Complete snow and ice closure for MPNE1M scheme (#587) (@kaiyuan-cheng)
  • Test raising one moment microphysics (#595) (@dkytezab)
  • Re-write of cloud_terminal_velocity in CloudMicrophysicsExt (#597) (@dkytezab)
  • Delete warning in time steppers (#599) (@dkytezab)
  • [CI] Reduce number of parallel jobs on macOS back to 2 (#601) (@giordano)
  • [CI] Further reduce memory limit for macOS CI jobs (#602) (@giordano)
  • Bump version from 0.4.4 to 0.4.5 (#605) (@glwagner)

Closed issues:

  • Override for Clima CloudMicrophysics (#594)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 2 months ago

Breeze.jl - v0.4.4

Breeze v0.4.4

Diff since v0.4.3

Merged pull requests:

  • Terrain-following coordinates for compressible dynamics (#506) (@glwagner)
  • Fix water conservation in 1M and 2M microphysics and numerical stability in 2M microphysics (#547) (@kaiyuan-cheng)
  • Support Oceanigans 0.106.3 (#583) (@dkytezab)
  • Reset wall_clock in RICO callback so that wall time is per interval (#585) (@glwagner)
  • Bump all environments to Oceananigans 0.106.3 (#589) (@dkytezab)
  • Bump version from 0.4.3 to 0.4.4 (#596) (@glwagner)

Closed issues:

  • Clean up mountain wave cases (#332)
  • UndefVarError: maybe_initialize_state! not defined in Breeze.TimeSteppers (#584)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 2 months ago

Breeze.jl - v0.4.3

Breeze v0.4.3

Diff since v0.4.2

Merged pull requests:

  • Finite difference validation tests (#573) (@dkytezab)
  • Bump actions/create-github-app-token from 2 to 3 (#574) (@dependabot[bot])
  • Allow Ocenanaigans v0.106 (#575) (@giordano)
  • Run Reactant tests with Julia v1.12 as well (#577) (@giordano)
  • Harden CI setup by pinning all GHA workflows (#579) (@giordano)
  • Fix dependabot setup (#580) (@giordano)
  • Bump version number to v0.4.3 (#581) (@giordano)

Closed issues:

  • Add finite-difference validation to reactant tests that do AD (#571)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 3 months ago

Breeze.jl - v0.4.2

Breeze v0.4.2

Diff since v0.4.1

Merged pull requests:

  • [docs] Enable erroring nanchecker for simulations (#556) (@giordano)
  • Bump julia-actions/cache from 2 to 3 (#559) (@dependabot[bot])
  • Bump CloudMicrophysics in / (#560) (@dependabot[bot])
  • [CI] Remove manual upload of cache upon failure (#561) (@giordano)
  • Add CUDA_Runtime_jll and Reactant_jll to extras of test env (#564) (@giordano)
  • Update key packages in AGENTS.md (#568) (@navidcy)
  • Bump version to v0.4.2 (#569) (@giordano)
  • [benchmark] Use a slightly larger small grid (#570) (@giordano)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 3 months ago

Breeze.jl - v0.4.1

Breeze v0.4.1

Diff since v0.4.0

Merged pull requests:

  • [benchmarks] Add comparison with WENO9 advection scheme (#497) (@giordano)
  • Restructure AGENTS.md into multi-file agent configuration (#538) (@glwagner)
  • Remove Breeze compat from benchmarking environment (#542) (@giordano)
  • Add dependency guardrail to Common Pitfalls (#544) (@glwagner)
  • Bump CUDA in /examples (#546) (@dependabot[bot])
  • [CI] Update Docker images to Julia v1.12.5 (#548) (@giordano)
  • model.specific_moisture -> specific_prognostic_moisture(model) (#549) (@giordano)
  • [docs] Explicitly set the seed also for GPU code (#550) (@giordano)
  • [CI] Use new runner for tests with --check-bounds-auto (#552) (@giordano)
  • Fix NaN in saturation adjustment (#553) (@kaiyuan-cheng)
  • Resolve ambiguity about Periodic in Reactant tests (#554) (@giordano)
  • Fix double-ρ₀ in microphysical tracer advection and diffusion (#555) (@kaiyuan-cheng)
  • Replace image in README with updated version (#557) (@glwagner)
  • Bump to 0.4.1 (#558) (@glwagner)

Closed issues:

  • [docs] NaNs in tropical cyclone world example (#551)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 3 months ago

Breeze.jl - v0.4.0

Breeze v0.4.0

Diff since v0.3.3

Breaking changes

This release changes the prognostic primary moisture variable from total moisture density to either vapor density or "equilibrium moisture density" (for saturation adjustment microphysics).

Merged pull requests:

  • Scheduled radiation updates + radiative-convective equilibrium case (#413) (@glwagner)
  • Update CloudMicrophysics requirement from 0.29.0, 0.30 to 0.31.4 (#459) (@dependabot[bot])
  • Revise equations for surface momentum and density fluxes + add bib citations (#480) (@navidcy)
  • Add dynamics and microphysics benchmark suites (#482) (@glwagner)
  • Update README with installation, quick start, and feature list (#483) (@glwagner)
  • Update formatting for equations (#484) (@navidcy)
  • Add some refs + fix latex rendering in docstrings (#487) (@navidcy)
  • Refactor moisture handling with scheme-dependent prognostic naming (#489) (@glwagner)
  • Make rain evaporation in 2M microphysics GPU-safe (#490) (@kaiyuan-cheng)
  • Point directly to benchmarks website, rather than the repository (#493) (@giordano)
  • [benchmarks] Actually use microphysics (#496) (@giordano)
  • [dependabot] Test new grouping strategy (#498) (@giordano)
  • Bump the per-dependency/Oceananigans group across 5 directories with 1 update (#499) (@dependabot[bot])
  • Bump the per-dependency/RRTMGP group across 2 directories with 1 update (#500) (@dependabot[bot])
  • Update AtmosphericProfilesLibrary requirement to 0.1.7 in /docs in the per-dependency/AtmosphericProfilesLibrary group across 1 directory (#501) (@dependabot[bot])
  • Update CairoMakie requirement to 0.15.8 in /examples in the per-dependency/CairoMakie group across 1 directory (#502) (@dependabot[bot])
  • Add 2D idealized squall line example (#504) (@glwagner)
  • Revert "Add 2D idealized squall line example (#504)" (#508) (@glwagner)
  • Avoid boxing of advection inside AtmosphereModel (#509) (@giordano)
  • [test] Use more extended logging messages in doctests (#510) (@giordano)
  • Restrict SSPRungeKutta3 time steppers to AtmosphereModel (#512) (@giordano)
  • Restrict potential_temperature_tendency to potential temperature formulation (#513) (@giordano)
  • [CI] Try using three parallel jobs instead of two for macOS tests (#514) (@giordano)
  • Add buoyancy-driven updraft to ParcelDynamics (#515) (@kaiyuan-cheng)
  • [CI] Add a job with --check-bounds=auto (#516) (@giordano)
  • [Reactant] Add timestepping fix to match Oceananigans (#517) (@dkytezab)
  • [docs] Temporarily ignore Oceananigans links (#521) (@giordano)
  • [docs] Check again links to Oceananigans docs (#522) (@giordano)
  • [Reactant] Test raising of CompressibleDynamics (#523) (@dkytezab)
  • Bump actions/upload-artifact from 6 to 7 (#524) (@dependabot[bot])
  • Bump actions/download-artifact from 7 to 8 (#525) (@dependabot[bot])
  • Fix typo in Breeze.jl documentation (#526) (@navidcy)
  • Use maybe_initialize_state! from Oceananigans (#527) (@giordano)
  • [CI] Set benchmark-data-dir-path for pull requests (#528) (@giordano)
  • [CI] Use earlyoom also on the GitHub-hosted Linux runners (#530) (@giordano)
  • Revert "[CI] Set benchmark-data-dir-path for pull requests" (#533) (@giordano)
  • Bump version from 0.3.3 to 0.4.0 (#539) (@glwagner)

Closed issues:

  • Build docs on GPU + harness more resources? (#90)
  • GigaLES GATE simulations of tropical convection (#128)
  • Package registration (#132)
  • Adding tests for Reactant/Enzyme (#160)
  • WENO reconstruction of energy density produces diabatic numerical fluxes (#215)
  • Reactant tracing for AnelasticFormulation (#223)
  • More compact notation for moisture densities? (#227)
  • AtmosphereModel.pressure and AtmosphereModel.pressure_solver should probably be properties of AnelasticFormulation (#245)
  • Benchmarking in CI (#252)
  • Show method for AtmosphereModel does not include all fields (#270)
  • Feature list in README and docs (#314)
  • [Reactant] Stack overflow from timestepping + Bounded topology (#437)
  • Acoustic sub stepping not a goal but a reality? (#485)
  • Microphysics not actually used in benchmarks (#495)
  • Possible errors detected by JET (#511)
  • Replace tick(...; stage=true) with tick_stage! (#519)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 3 months ago

Breeze.jl - v0.3.3

Breeze v0.3.3

Diff since v0.3.2

Merged pull requests:

  • Implement acoustic substepping for CompressibleDynamics (#415) (@glwagner)
  • [CI] Bump minimum Julia version to v1.11.9 (#470) (@giordano)
  • [test] Make all Simulations quiet -- take 2 (#476) (@giordano)
  • Some small fixes detected by JETLS (#477) (@giordano)
  • [docs] Fix rendering of admonition (#478) (@giordano)
  • Replace DefaultStabilityFunction with FittedStabilityFunction (Li et al. 2010) (#479) (@glwagner)
  • Bump version from 0.3.2 to 0.3.3 (#481) (@glwagner)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 4 months ago

Breeze.jl - v0.3.2

Breeze v0.3.2

Diff since v0.3.1

Merged pull requests:

  • [examples] Tropical Cyclone World via Cronin and Chavas (2019) (#100) (@glwagner)
  • Refactor microphysics interface and implement ParcelDynamics (#405) (@glwagner)
  • CCN activation for 2M microphysics (#420) (@kaiyuan-cheng)
  • Add a precipitating microphysics case to the cloudy thermal bubble example (#424) (@jtbuch)
  • Use new, cleaner interpolate syntax for parcel simulations (#425) (@glwagner)
  • Add a benchmarking subpackage (#426) (@glwagner)
  • Enable Reactant compilation of + tracing through Breeze timestepping (#429) (@dkytezab)
  • [CI] Minor improvements to the whitespace workflow (#430) (@giordano)
  • Add default_included_properties for AtmosphereModel (#432) (@glwagner)
  • Fix definition of virtual potential temperature (#438) (@glwagner)
  • Update CloudMicrophysics requirement from 0.29.0 to 0.29.0, 0.30 (#442) (@dependabot[bot])
  • Enable ParcelDynamics to support microphysics_model_update (#445) (@kaiyuan-cheng)
  • Add dew point calculation (#446) (@kaiyuan-cheng)
  • Change link from ClimaOcean to NumericalEarth in README (#447) (@glwagner)
  • Add pre-commit hook and explain how to use it (#449) (@giordano)
  • [CI] Use benchmarking Docker image for benchmarking job (#450) (@giordano)
  • Use kernels for ParcelModel (#455) (@kaiyuan-cheng)
  • [CI] Run tests with -O0 (#457) (@giordano)
  • Change kernel launching to :xyz to support further Reactant integration (#461) (@dkytezab)
  • [CI] Disable GPU support for Reactant until we actually start using it (#464) (@giordano)
  • Update Slack invite link in README.md (#465) (@glwagner)
  • Fix Slack link in index.md (#466) (@glwagner)
  • Test Reactant construction + compilation of models w/ WENO (#468) (@dkytezab)
  • Show forcing and thermodynamic constants in AtmosphereModel display (#469) (@bischtob)
  • Wind and stability-dependent bulk transfer coefficients (#471) (@glwagner)
  • [test] Make all Simulations quiet (#472) (@giordano)
  • Fix quality of BreezeReactantExt extension (#474) (@giordano)
  • Fix typo in index.md (#475) (@navidcy)

Closed issues:

  • Add ParcelModel mode (#180)
  • A reference state close to the initial condition (#234)
  • Better README gallery? (#320)
  • 2M microphysics lacks aerosol activation for cloud water number concentration (#416)
  • Reactant tracing through variable length simulations (#428)
  • Problem reading FieldTimeSeries KeyError: key "serialized" not found (#431)
  • ParcelDynamics does not support microphysics_model_update! (#434)
  • VirtualPotentialTemperature diagnostic looks ...unexpected? for BOMEX (#436)
  • Include dewpoint temperature as a diagnostic for data assimilation (#444)
  • Use kernels not nested loops for ParcelModel setting (#454)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 4 months ago

Breeze.jl - v0.3.1

Breeze v0.3.1

Diff since v0.3.0

Merged pull requests:

  • [dycore] Add simple dynamics test for momentum conservation (#146) (@glwagner)
  • Add a supercell case for model validation (#398) (@kaiyuan-cheng)
  • Update citation year in README.md and Docs (#407) (@navidcy)
  • Refactor sound speed comments for clarity and formatting (#408) (@navidcy)
  • Fix xlims and xticks on lineplots in acoustic wave example (#409) (@navidcy)
  • Convert animation to use countourf in inertia gravity wave example (#410) (@navidcy)
  • Support EnergyFluxBoundaryConditions for liquid-ice potential temperature formulations (#411) (@glwagner)
  • Resolve issues identified by JETLS (#412) (@giordano)
  • Update Oceananigans compat to 0.104 (#414) (@navidcy)
  • Clean up EnergyFluxBoundaryCondition implementation (#418) (@glwagner)
  • Add EditorConfig file (#419) (@giordano)

Closed issues:

  • What's the intrinsic wave speed? (#385)
  • isbits error when running prescribed_sea_surface_temperature.jl on GPU (#386)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 5 months ago

Breeze.jl - v0.3.0

Breeze v0.3.0

Diff since v0.2.1

Breaking changes

  1. 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.

  1. Default Timestepper Change

The default timestepper changed from :RungeKutta3 to :SSPRungeKutta3:

# Old default
timestepper = :RungeKutta3

# New default
timestepper = :SSPRungeKutta3
  1. 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
  1. 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

  1. 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 optics for RadiativeTransferModel from RRTMGP.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 labeled events (#355) (@giordano)
  • CompressibleDynamics with simple explicit time-stepping (#356) (@glwagner)
  • Fix reference in docstring for thermodynamic adjustment factor (#357) (@glwagner)
  • NFC: Simplify Oceananigans compat 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 RadiativeTransferModel constructor (#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 Float64 as 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 AbstractOptics in error message (#378) (@giordano)
  • Increase relative humidity in cloud kelvin helmholtz (#379) (@glwagner)
  • Remove all imports, take 2 (#380) (@giordano)
  • [docs] Use more DocStringExtensions utils, 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 RelativeHumidity in set! (#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)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 5 months ago

Breeze.jl - v0.2.1

Breeze v0.2.1

Diff since v0.2.0

Merged pull requests:

  • Bump version from 0.2.0 to 0.2.1 (#348) (@navidcy)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 6 months ago

Breeze.jl - v0.2.0

Breeze v0.2.0

Diff since v0.1.3

Breaking changes

PR#331 introduce breaking changes.

  • Split the thermodynamic variable from the dynamics approximation. Thus we now need to do, e.g.,

    model = AtmosphereModel(grid; dynamics=AnelasticDynamics(reference_state))
    

    and

    model = AtmosphereModel(grid; formulation=:LiquidIcePotentialTemperature)
    

Merged pull requests:

  • Split up "formulation" and "dynamics" and change semantics (#331) (@glwagner)
  • [CI] Use Docker image for GPU jobs (#335) (@giordano)
  • [CI] Increase timeout for test jobs (#338) (@giordano)
  • Diagnose velocities from momentum at boundaries (#340) (@navidcy)
  • Fix grammar and punctuation in radiative_transfer.md (#342) (@navidcy)
  • Fix formatting of mathematical equations in comments (#343) (@navidcy)
  • Fix quick-start figure in Docs (#344) (@navidcy)
  • Add bibtex entries + fix make docstring citations REPL-friendly (#345) (@navidcy)

Closed issues:

  • Making room for compressible dynamics (#330)
  • Diagnose velocities from momentum at boundaries (#339)
  • Quick start simulation not working? (#341)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 6 months ago

Breeze.jl - v0.1.3

Breeze v0.1.3

Diff since v0.1.2

Merged pull requests:

  • Implement NonEquilibriumCloudFormation for 1M microphysics (#284) (@glwagner)
  • Make LiquidIcePotentialTemperature the default thermodynamics (#305) (@glwagner)
  • Add capability to set in-situ temperature (#310) (@glwagner)
  • Update installation instructions after Breeze registration (#319) (@navidcy)
  • [CI] Fix conditional for docs deploy on tags (#321) (@giordano)
  • [tests] Actually use formulation in turbulence_closures tests (#322) (@giordano)
  • [docs] Move code for running Literate examples to its own script (#323) (@giordano)
  • [docs] Clean up temp file before deployment, not after build (#325) (@giordano)
  • Update README links to stable documentation (#327) (@navidcy)
  • formulation_density(formulation) interface (#328) (@glwagner)
  • Swap order of output of materialize_momentum_and_velocities (#329) (@giordano)
  • Rename parameter 'density' to 'ρ' in ∇_dot_Jᶜ function (#336) (@navidcy)
  • Bump version from 0.1.2 to 0.1.3 (#337) (@glwagner)

Closed issues:

  • Use 1M microphysics for RICO case (#275)
  • formulation is not set in turbulence_closures tests (#318)
  • materialize_momentum_and_velocities is expected to return velocities and momentum (#324)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 6 months ago

Breeze.jl - v0.1.2

Breeze v0.1.2

Diff since v0.1.1

First release of Breeze! 🎉

Merged pull requests:

  • Update the flux boundary conditions to discrete form (#4) (@mmr0)
  • Add support for CloudMicrophysics (#5) (@glwagner)
  • Implement anelastic AtmosphereModel (#6) (@glwagner)
  • Implement a Bomex case (#7) (@glwagner)
  • Delete duplicate methods in microphysics (#10) (@navidcy)
  • Fix typo in saturation vapor pressure (#11) (@glwagner)
  • Set up tests via github actions (#12) (@glwagner)
  • Change package name from AquaSkyLES to Breeze (#13) (@glwagner)
  • Update docs (#14) (@glwagner)
  • Add computation of averages for subsidence forcing to Bomex example (#16) (@glwagner)
  • Make MoistAirBuoyancy a concrete type + adapt for MoistAirBuoyancy utilities (#18) (@glwagner)
  • Add show methods + doctest for MoistAirBuoyancy + AtmosphereThermodynamics (#19) (@navidcy)
  • Reduce bomex resolution to Siebesma et al (2003) value and increase advection scheme order (#20) (@glwagner)
  • Add relative humidity computation to bomex example (#22) (@glwagner)
  • Fix typo in reference pressure (#23) (@glwagner)
  • go back to simple defn of exner (#24) (@glwagner)
  • bugfix in updating momentum state (#26) (@bischtob)
  • More tests, bugfixes, and docs (#27) (@glwagner)
  • Add comment about including need to import CUDA for examples when using GPU() (#32) (@mmr0)
  • Revise README with improved project details (#33) (@glwagner)
  • [CI] Improve GitHub Actions setup (#34) (@giordano)
  • Add Codecov badge to README (#35) (@navidcy)
  • Update README link to development version (#36) (@navidcy)
  • changed (reverted?) geostrophic forcing term (#37) (@mmr0)
  • Update Oceananigans version (#38) (@glwagner)
  • Fix and add docs to illustrate how saturation adjustment works (#39) (@glwagner)
  • Add References via DocumenterCitations + few docs tweaks (#40) (@navidcy)
  • Fix typo in saturation_adjustment.md (#41) (@navidcy)
  • set_theme! for all Docs + plot dry adiabatic lapse rate (#42) (@navidcy)
  • Add microphysics in show(io::IO, model::AtmosphereModel) (#43) (@navidcy)
  • CompatHelper: bump compat for JLD2 to 0.6, (keep existing compat) (#44) (@navidcy)
  • Add derivation of dQ, dT, dp relationship + fixes few glitches (#46) (@navidcy)
  • CompatHelper: add new compat entry for KernelAbstractions at version 0.9, (keep existing compat) (#47) (@github-actions[bot])
  • CompatHelper: bump compat for CloudMicrophysics to 0.29, (keep existing compat) (#49) (@github-actions[bot])
  • Update thermodynamics.md for clarity (#50) (@navidcy)
  • Add bib entry for Pauluis (2008) + few other fixes/code alignment (#51) (@navidcy)
  • Few more tweaks on Docs/Thermodynamics (#52) (@navidcy)
  • Enhancements on Clausius-Clapeyron section in Docs (#54) (@navidcy)
  • Fix typo in saturation specific humidity formula in Docs (#55) (@navidcy)
  • Some improvements on saturation adjustment docs (#56) (@navidcy)
  • [CI] Explicitly run tests on minimum supported version (#57) (@giordano)
  • [CI] Use dependabot instead of CompatHelper (#59) (@giordano)
  • Change AtmosphereThermodynamics to ThermodynamicConstants, plus more tests (#62) (@glwagner)
  • Remove unused RootSolvers from project file (#63) (@giordano)
  • Clarify mass ratio definitions using meteorological terminology (#64) (@kaiyuan-cheng)
  • Notational tweak: be explicit about ℒ(T=0); no need to define new subscript ℒ_{0k} (#65) (@navidcy)
  • Add Aqua tests and other various improvements (#67) (@giordano)
  • Add badge for Aqua.jl to README (#68) (@navidcy)
  • Run tests with ParallelTestRunner (#70) (@giordano)
  • Fix anelastic_pressure_solver tests (#71) (@glwagner)
  • More general set! plus MoistureMassFractions abstraction (#72) (@glwagner)
  • Split up anelastic pressure tests for better load balancing (#73) (@giordano)
  • More quality assurance: ExplicitImports (#74) (@giordano)
  • Clarify Thermodynamics docs and improve notation (#75) (@glwagner)
  • [Dycore] Implement tendency term for moist static energy following Pauluis (2008) (#76) (@glwagner)
  • [CI] Rework docs deployment (#77) (@giordano)
  • [CI] Do not error out when cleaning up docs if previews don't exist (#78) (@giordano)
  • Some rendering fixes in Docs/Dynamics + add links to Docs/Thermodynamics page (#80) (@navidcy)
  • [CI] Fix condition for cleaning up previews (#82) (@giordano)
  • Fixes gravity so that it points down (#84) (@navidcy)
  • Make quick start example an example again (#85) (@glwagner)
  • [docs] Add contributing guide (#86) (@giordano)
  • [CI] Build documentation with Julia v1.12 (#87) (@giordano)
  • [docs] Replace randn -> rand in example to limit module of noise (#88) (@giordano)
  • [CI] Run tests also on GPU (#93) (@giordano)
  • [GPU] Add adapt_structure for MoistAirBuoyancy, AnelasticFormulation, and ReferenceState (#94) (@glwagner)
  • Run doctests in all tests (#95) (@giordano)
  • Revise README for Breeze project details (#96) (@glwagner)
  • [docs] Tip about running tests without GPU (#97) (@giordano)
  • Tweaks in latex rendering in Docs/Dynamics (#98) (@navidcy)
  • Fix mixture heat capacity to include liquid and ice, as well as docstrings for mixture heat capacity and mixture gas constant (#99) (@navidcy)
  • Change the name of some core properties (#101) (@glwagner)
  • [examples] Add thermal bubble example (#102) (@glwagner)
  • Use DocStringExtensions (#103) (@giordano)
  • WarmPhaseSaturationAdjustment for AtmosphereModel (#105) (@glwagner)
  • Improve documentation for ThermodynamicConstants (#106) (@glwagner)
  • [CI] Split docs building job in two parts (#107) (@giordano)
  • Fix formatting in vapor_saturation.jl documentation (#108) (@navidcy)
  • Move docstring from kernel to method for the pressure_correction update (#109) (@navidcy)
  • Add modules=[Breeze] argument to makedocs to actually run doctests (#110) (@giordano)
  • [dependabot] Update also projects in docs and test directories (#111) (@giordano)
  • Split equation for reference temperature in Docs/Thermodynamics (#112) (@navidcy)
  • Bump actions/upload-artifact from 4 to 5 (#113) (@dependabot[bot])
  • Bump actions/download-artifact from 5 to 6 (#114) (@dependabot[bot])
  • Update CairoMakie requirement from 0.13, 0.14 to 0.15 in /docs (#115) (@dependabot[bot])
  • Update Oceananigans requirement to 0.100.7 in /docs (#116) (@dependabot[bot])
  • Update thermal bubble example (#117) (@navidcy)
  • Add high-res thermal bubble animation in README (#118) (@navidcy)
  • Fix bug in saturation adjustment solver for MoistAirBuoyancy (#120) (@glwagner)
  • [CI] Temporarily use dev version of Documenter (#122) (@giordano)
  • Fix typo in README pointing to wrong example (#123) (@glwagner)
  • Unified adjustment solver for MoistStaticEnergyState and PotentialTemperatureState + atmos bomex case (#124) (@glwagner)
  • Change opening docs page to use AtmosphereModel (#125) (@glwagner)
  • Groom and reorganize Thermodynamics docs (#130) (@glwagner)
  • Change code block to use @example syntax (#134) (@navidcy)
  • Minor tweaks in Docs/Thermodynamics (#135) (@navidcy)
  • [CI] Remove JLD2 files before publishing docs (#136) (@giordano)
  • Support turbulence closures from Oceananigans (#140) (@glwagner)
  • Actually respect user forcing and add a test (#141) (@glwagner)
  • Build abstraction for computing saturation vapor pressure over mixed phase surfaces (#142) (@glwagner)
  • Add more cross-links in documentation (#143) (@giordano)
  • Update thermal bubble animation (#144) (@navidcy)
  • [docs] Clarify definition of air density (#145) (@giordano)
  • Fix MSE definition and reference to Global System for Atmospheric Modeling (#147) (@glwagner)
  • Fix Δc^l value in thermodynamics.md (#150) (@navidcy)
  • Update simulation stop time from 15 to 25 minutes (#151) (@navidcy)
  • Throw error for non-NamedTuple forcing (#152) (@glwagner)
  • Generalized SaturationAdjustment to include a MixedPhaseEquilibrium (#154) (@glwagner)
  • Set some grouping for Julia dependencies in Dependabot (#158) (@giordano)
  • Fix BOMEX case (#159) (@kaiyuan-cheng)
  • Bump Oceananigans to v0.101 (#161) (@giordano)
  • Update recommended Julia version to 1.12 (#164) (@navidcy)
  • Add/enhance some docstrings (#165) (@navidcy)
  • Start building CloudMicrophysics extension (#166) (@glwagner)
  • [CI] Run GPU tests using Julia v1.12 (#167) (@giordano)
  • Revert "[CI] Temporarily use dev version of Documenter" (#170) (@giordano)
  • Rename .cursorrules to AGENTS.md (#172) (@glwagner)
  • Some moar fixes in docstrings (#173) (@navidcy)
  • Enhance docstrings (#175) (@navidcy)
  • Extension to RRTMGP.jl and implement RadiativeTransferModel (#176) (@glwagner)
  • Fix treatment of moisture and BOMEX configuration (#177) (@kaiyuan-cheng)
  • Add compute_diffusivities to update_state! for AtmosphereModel (#181) (@glwagner)
  • Pass total specific moisture into saturation adjustment (#182) (@glwagner)
  • Add saturation adjustment integration tests via AtmosphereModel (#183) (@glwagner)
  • Update semantics: eg model.moist_static_energy -> specific_energy (#184) (@glwagner)
  • Remove virtual temperature approximation in buoyancy plus misc fixes (#188) (@glwagner)
  • Enhance mixed-phase saturation adjustment docs (#189) (@navidcy)
  • Add an example of cloudy Kelvin Helmholtz instability (#190) (@glwagner)
  • change PotentialTemperatureOperation to PotentialTemperature and export (#191) (@glwagner)
  • Few minor tweaks (#193) (@navidcy)
  • [docs] Run linkchecks (#194) (@giordano)
  • Fix prettysummary import in CloudMicrophysics extension (#195) (@giordano)
  • Bump actions/checkout from 5 to 6 (#196) (@dependabot[bot])
  • Update CloudMicrophysics requirement to 0.29.0 in /docs (#197) (@dependabot[bot])
  • Update CloudMicrophysics requirement to 0.29.0 in /test (#198) (@dependabot[bot])
  • Update Statistics requirement to 1.11.1 in /test (#199) (@dependabot[bot])
  • Add inertia gravity wave validation case (#200) (@kaiyuan-cheng)
  • Always load CloudMicrophysics when running the quality assurance tests (#201) (@giordano)
  • Define Base.eltype(::AbstractThermodynamicState) (#202) (@giordano)
  • Fix name of AbstractThermodynamicState shortcut (#204) (@giordano)
  • Fix link in README to point to Aqua.jl (#206) (@navidcy)
  • Fix initial conditions that correspond to constant N (#207) (@navidcy)
  • Set up as workspace (for dependabot etc.) (#208) (@IanButterworth)
  • Fix moist static energy expression in the dycore docs (#212) (@glwagner)
  • Make turbulence closures actually work + support for buoyancy gradients (#213) (@glwagner)
  • Reconstruct specific quantities instead of density quantities for advection (#214) (@glwagner)
  • Change AtmosphereModel.thermodynamics to AM.thermodynamic_constants (#216) (@glwagner)
  • Refactor AnelasticFormulation (and formulations in general) (#217) (@glwagner)
  • Implement a PotentialTemperatureThermodynamics formulation (#218) (@glwagner)
  • Add a new diagnostic for computing the hydrostatic pressure (#221) (@glwagner)
  • Allow user specification of different momentum+tracer advection schemes (#224) (@glwagner)
  • Add a supercell test case and fix inconsistencies in the hydrometeor variables. (#225) (@kaiyuan-cheng)
  • Update animations in README.md (#226) (@navidcy)
  • Allow "energy forcing" of potential temperature + polish examples (#228) (@glwagner)
  • [docs] Run Literate examples concurrently (#230) (@giordano)
  • [CI] Stricter condition for deploying the docs (#231) (@giordano)
  • Update README with BOMEX validation profiles (#232) (@navidcy)
  • Add virtual potential temperature + equivalent potential temperature diagnostics (#233) (@glwagner)
  • [docs] Build literate examples on GPU (#235) (@giordano)
  • Features to simplify canonical LES (#236) (@glwagner)
  • Tweak bomex example (#237) (@navidcy)
  • [docs] Render CairoMakie figures as PNG (#238) (@giordano)
  • Prescribed SST example! (#239) (@glwagner)
  • [docs] Fix random seed in examples (#240) (@giordano)
  • Import prettysummary from Oceananigans.Utils (#242) (@navidcy)
  • [docs] Including info about computing environment in Literate examples (#244) (@giordano)
  • Compute speed + vorticity online and update ξ_limits (#246) (@navidcy)
  • Revert "[docs] Run Literate examples concurrently" (#247) (@giordano)
  • Create abstractions for bulk flux boundary conditions (#248) (@glwagner)
  • [docs] Run Literate examples concurrently (#249) (@giordano)
  • Enhances the phrasing in BOMEX example + fixes some rendering issues (#250) (@navidcy)
  • Fix rendering and references in docstrings + adds AtmosphereModels.Diagnostics in API list (#251) (@navidcy)
  • Precipitating shallow cumulus convection (RICO) (#253) (@glwagner)
  • Change base_ to surface_ (#254) (@glwagner)
  • [CI] Longer timeout for tests jobs (#255) (@giordano)
  • [docs] Define list of example files only in one place (#256) (@giordano)
  • Some minor tweaks at the internal gravity wave example (#257) (@navidcy)
  • Add proper boundary condition to reference pressure and density (#259) (@glwagner)
  • Prune unused examples (#262) (@glwagner)
  • Minor improvements to the prescribed sea surface temperature example (#263) (@glwagner)
  • Fix typo in sea surface temperature entry (#265) (@navidcy)
  • Improve the RICO example and enforce impenetrability on subsidence velocity (#266) (@glwagner)
  • Remove duplicate import of Oceananigans (#268) (@navidcy)
  • Test different float types via adjusting Oceananigans.defaults.FloatType (#269) (@navidcy)
  • Silence Oceananigans warnings during turbulence_closures tests (#271) (@giordano)
  • Bump actions/download-artifact from 6 to 7 (#272) (@dependabot[bot])
  • Bump actions/upload-artifact from 5 to 6 (#273) (@dependabot[bot])
  • Bump actions/cache from 4 to 5 (#274) (@dependabot[bot])
  • Call correct advection interface functions (#277) (@glwagner)
  • [CI] Use self-hosted runners for GPU jobs (#279) (@giordano)
  • Standardize notation for Kessler constants vs Breeze thermodynamic variables (#280) (@Copilot)
  • Clarify Kessler vs Breeze thermodynamic constants in DCMIP2016 comment (#281) (@Copilot)
  • Updates radiation docs (#285) (@navidcy)
  • [CI] Fix Julia version to v1.12.2 in all jobs (#286) (@giordano)
  • Use IterationInterval for progress report in examples (#292) (@navidcy)
  • Add a default NaNChecker to AtmosphereModel (#293) (@navidcy)
  • Avoid import for extending methods (#294) (@navidcy)
  • Remove all imports (#296) (@giordano)
  • [CI] Install TagBot (#298) (@giordano)

Closed issues:

  • Change package name to Breeze.jl? (#2)
  • "mixture" functions should accept total specific water content, plus independent ratios for non-vapor phases (#8)
  • Duplicate method definition? (#9)
  • BOMEX GPU isbits problem from MoistAirBuoyancy (#17)
  • Clouds look funky (bad) in bomex validation case (#21)
  • Potentially wrong advection operator? (#25)
  • Question about Clausius-Clapeyron integration (#53)
  • Linear Test Issue (#81)
  • Append test file names with _test? (#89)
  • Getting auxiliary information from tests and printing to screen (#119)
  • Moist thermal bubble example (#127)
  • Support Oceananigans turbulence closures (#137)
  • Abstraction for forcing functions common to canonical LES cases (#139)
  • Thermal Bubble in the docs and in Readme look different (#149)
  • SaturationAdjustment solver error specific to GPU+Float32 (#162)
  • moisture_mass_fraction or moisture_specific_content? (#169)
  • Build docs / examples on GPU (#174)
  • CPU and GPU runs with the same configuration give very different results (#178)
  • Incorrect Brunt-Väisälä frequency definition in multiple test cases (#203)
  • Rerun high-resolution examples for README (#209)
  • Wrong details on thermodynamic variables in the docs (#210)
  • bomex wrong time average in outputs? (#211)
  • Flexible selection of advection schemes for different directions and variables (#219)
  • Use "surface pressure" and "surface density" instead of base pressure and base density (#243)
  • Implement correct surface/bottom boundary condition for the reference pressure (#258)
  • AtmosphereModel does not convert float type of coriolis to match that of grid's (#267)
  • Add default_nan_checker (#283)

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by github-actions[bot] 6 months ago

Breeze.jl - Boussinesq dynamics with warm saturation adjustment

This release implements an Oceananigans buoyancy formulation that requires potential temperature and total specific humidity tracers, and which computes temperature and buoyancy through warm phase saturation adjustment. It does not have cold phase adjustment, radiation, or microphysics.

Atmosphere - Atmospheric Composition and Dynamics - Julia
Published by glwagner about 1 year ago