Releases: CliMA/Oceananigans.jl
v0.106.3
Oceananigans v0.106.3
Merged pull requests:
- Partial cell conservation (#5356) (@simone-silvestri)
- Add flow over hill validation using open boundaries and a hydrostatic model with implicit surface (#5359) (@tomchor)
- Remove initialization_update_state! and clean up initialization (#5420) (@glwagner)
- Fix typo in Simulation tips docs (#5425) (@glwagner)
- Relieve memory in unit tests (#5428) (@simone-silvestri)
- Fix formatting and citation errors in index.md (#5430) (@navidcy)
- Bump minor version from 0.106.2 to 0.106.3 (#5431) (@simone-silvestri)
v0.106.2
Oceananigans v0.106.2
Merged pull requests:
- (0.106.2) Refactor coriolis and add Triad scheme (#5383) (@simone-silvestri)
- Shift the
RightFaceFoldedfold upwards by one row (#5408) (@simone-silvestri) - Extend TabulatedFunction to support 4D and 5D interpolation (#5417) (@glwagner)
v0.106.1
Oceananigans v0.106.1
Merged pull requests:
- Add restart verification script (#5379) (@ewquon)
- Reinvoke sharding tests and refactor Clock constructor for sharded grids (#5389) (@glwagner)
- Improve serial tripolar grid fold tests (#5405) (@briochemc)
- Temporarily drop Benchmark section from Docs + delete
legacy_benchmarks(#5412) (@briochemc) - Fix issue downstream in Reactant on 1.12 (#5415) (@dkytezab)
- Reinstate Docs/Benchmarks (#5419) (@navidcy)
- Small improvements to the benchmarking pipeline (#5421) (@giordano)
v0.106.0
Oceananigans v0.106.0
Breaking changes
- #5355 changed the default file when restoring from a checkpointer.
Merged pull requests:
- Add benchmarking package with earth_ocean case (#5317) (@glwagner)
- Rework support for reduction operations on Metal GPU to avoid materialization of the interior (#5329) (@alesok)
- (0.106) Log checkpoint file and mtime when restoring simulations (#5355) (@taimoorsohail)
- (0.105.5) Fix
initialize_closure_fields!()use withDynamicSmagorinsky(#5366) (@tomchor) - Fix section rendering that includes greek LaTeX characters in the documentation (#5380) (@navidcy)
- Bump julia-actions/cache from 2 to 3 (#5382) (@dependabot[bot])
- Propose fix some typos (#5385) (@jeis4wpi)
- Reduce number of ambiguities (#5390) (@giordano)
- Explicit imports in Grids (#5391) (@giordano)
- Load XESFM after Oceananigans (#5393) (@giordano)
- Add new paper reference to Oceananigans documentation (#5395) (@navidcy)
- Fix formatting of reference list in index.md (#5397) (@navidcy)
- Fix typo with density perturbation in docs (#5398) (@navidcy)
- Fix the reference list in the Langmuir example (#5400) (@navidcy)
- (0.105.5) Add unit test for zero momentum flux at immersed peripheral nodes (#5402) (@tomchor)
- Implement ReactantCore.materialize_traced_array for Field (#5409) (@Pangoraw)
- Revise citation for De Abreu and Timmermans (#5411) (@navidcy)
- Remove Oceananigans compact from Project.toml in
benchmarks(#5414) (@simone-silvestri)
Closed issues:
v0.105.5
Oceananigans v0.105.5
This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.
v0.105.4
Oceananigans v0.105.4
Merged pull requests:
- (0.105.4) Add basic tests for Reactant-Oceananigans correctness (#5093) (@glwagner)
- Rename
JULIA_DEPOT_PATHto the.juliafor buildkite (#5368) (@tomchor) - Use view instead of indexing in cpu_face_constructor_r (#5376) (@glwagner)
- Fix
HydroStaticFreeSurfaceModelinit for open boundary conditions withSplitExplicitFreeSurface(#5378) (@rafmudaf)
Closed issues:
- Bug with Reactant + Periodic BCs + ParallelTestRunner (#5208)
v0.105.3
Oceananigans v0.105.3
Merged pull requests:
- (0.105.3) Fix interpolation of terms in chain horizontal derivatives for MutableVerticalDiscretization (#5339) (@glwagner)
- Restructure AGENTS.md into multi-file agent configuration (#5350) (@glwagner)
- (0.105.2) Fix
with_halofor aTripolarGrid(#5353) (@simone-silvestri) - Fix typo SKR3 -> SRK3 (#5360) (@briochemc)
- Update papers section in index.md (#5362) (@navidcy)
- Add 9 missing papers to the reference list (#5363) (@glwagner)
- Add new reference to Zheng et al. (2025) in index (#5364) (@navidcy)
- Fix ContinuousForcing field index mismatch in HydrostaticFreeSurfaceModel (#5370) (@glwagner)
- Add dependency guardrail to Common Pitfalls (#5371) (@glwagner)
Closed issues:
- Reformulating continuous forcing in discrete form giving unexpected results (#5369)
v0.105.2
Oceananigans v0.105.2
Merged pull requests:
- Add random seeds to examples for reproducible results (#5312) (@tomchor)
- (0.105.2) Fix and test checkpointing with open-domain simulations with a radiation
OpenBoundaryCondition(#5347) (@tomchor)
Closed issues:
- Tilted boundary layer example failing on docs (#5299)
- Refactor timestepping to better integrate paranoid update (#5300)
- delete symlinks and trigger again docs CI build on that commit (tagbot) (#5320)
- Stable docs page 404s (#5338)
- Picking up a simulation fails when the model has
OpenBoundaryConditions with a non-trivialscheme(#5346)
v0.105.1
Oceananigans v0.105.1
Merged pull requests:
- Enable
AveragedSpecifiedTimesto be used in output writers (#4876) (@xkykai) - Fix lock-exchange example (#5248) (@simone-silvestri)
- Reduce method ambiguities by disambiguating ConstantField binary ops (#5313) (@glwagner)
- (0.105.1) Add density and gravity_wave_speed to PerturbationAdvection (#5314) (@glwagner)
- Add maybe_initialize_state! and simplify Reactant time stepper overrides (#5315) (@glwagner)
- Fix inability to raise
Boundedtopology with Reactant (#5322) (@dkytezab) - Add citation for Gupta et al. on upper-ocean energetics (#5325) (@navidcy)
- Fix undefined variable
free_surfaceinside error message (#5328) (@giordano) --check-bounds=autofor Reactant tests (#5331) (@dkytezab)- Avoid topology-aware operators when filling halos in the SplitExplicitFreeSurface (#5332) (@simone-silvestri)
- Fix broken hard-coded URLs with @ref (#5335) (@briochemc)
- Enhance
run!docstring (#5336) (@navidcy) - Add bibtex entry for Wagner et al. 2021 (#5337) (@navidcy)
Closed issues:
v0.105.0
Oceananigans v0.105.0
Breaking Changes
There are 12 commits on main since v0.104.5. Of these, 3 contain breaking changes:
- compute_diffusivities! → compute_closure_fields! (PR #5274)
The function compute_diffusivities! has been renamed to compute_closure_fields! across the entire codebase. This is an exported symbol from TurbulenceClosures. Anyone who:
- Imports or calls compute_diffusivities! directly
- Extends compute_diffusivities! for a custom closure
will need to update to compute_closure_fields!.
- New step_closure_prognostics! interface (PR #5274)
A new exported function step_closure_prognostics! is now called by every time stepper (AB2, RK3, SplitRK) between tick! and update_state!. Previously, prognostic closure
stepping (e.g., TKE equation) was entangled inside compute_diffusivities!. Now it's a separate call. This is breaking for:
- Custom closures with prognostic variables that previously stepped them inside compute_diffusivities! — they must now implement step_closure_prognostics! instead.
- Custom time steppers that don't call step_closure_prognostics!(model, Δt) after tick!.
- New initialize_closure_fields! interface (PR #5274)
A new exported function initialize_closure_fields! is called during initialize! to set up closure fields when a simulation starts. Custom closures that previously did
initialization inside compute_diffusivities! need to move that logic here.
- Struct renames (PR #5274)
-
CATKEDiffusivityFields -> CATKEClosureFields
-
TKEDissipationDiffusivityFields -> TKEDissipationClosureFields
These are internal types but may be referenced by users doing checkpointing, custom closures, or diagnostics. Additionally, two fields were removed from both structs:
- previous_compute_time — no longer needed
- _skip_next_compute — no longer needed
- Removed update_previous_compute_time! (PR #5274)
The internal function update_previous_compute_time! was deleted entirely (from CATKE). Code that called it will break.
- Kernel function argument rename: diffusivities → closure_fields (PR #5274)
Throughout the internal kernel functions (tendency kernels in hydrostatic, nonhydrostatic, and shallow water models), the argument name diffusivities has been renamed to
closure_fields. This is breaking for anyone who dispatches on or extends these internal kernel functions using keyword arguments or positional argument names.- cell_diffusion_timescale signature change (PR #5274)
The second argument in Diagnostics.cell_diffusion_timescale(closure, diffusivities, grid, clock, fields) was renamed from diffusivities to closure_fields. This affects
anyone extending this diagnostic for custom closures.
Non-breaking changes (bug fixes, features, docs)
- PR #5298: VarianceDissipationComputations now uses transport_velocities for HydrostaticFreeSurfaceModel (bug fix)
- PR #5297: xnodes/ynodes/znodes on windowed Fields now correctly return windowed nodes; mask_immersed_field! respects windowed indices (bug fix)
- PR #5237: SplitRungeKutta3 added to Reactant extension (new feature, non-breaking)
- PR #5295: Internal variable rename θ_radians → θ (cosmetic, non-breaking)
- PR #5282: Docstring added to MutableVerticalDiscretization (docs only)
- PR #5234: Distributed grids docs fixes (docs only)
- PR #5302–#5306: Documentation/reference updates
Merged pull requests:
- Implement horizontal derivatives at constant z for
MutableVerticalDiscretization(#5101) (@glwagner) - Setup vitepress for the docs (#5159) (@lazarusA)
- Distributed grids docs small fixes (#5234) (@romanlee)
- Add split runge kutta to reactant extension (#5237) (@jlk9)
- Extend TabulatedFunction to support 2D and 3D interpolation. (#5240) (@glwagner)
- Allow FieldTimeSeries to be read from NetCDF without reading the original architecture (#5271) (@tomchor)
- (0.105.0) Implement interface for stepping closure prognostic variables (#5274) (@glwagner)
- Add docstring to MutableVerticalDiscretization (#5282) (@briochemc)
- Drop a leftover
_radians(#5295) (@navidcy) - Fix nodes and immersed masking for windowed fields (#5297) (@briochemc)
- Use the correct velocities in
VarianceDissipationComputations(#5298) (@simone-silvestri) - Update references in index.md (#5302) (@navidcy)
- [docs] Fix URL of paper (#5304) (@giordano)
- Add new paper reference to Oceananigans documentation (#5305) (@navidcy)
- Revise citation for Johnston et al. in references (#5306) (@navidcy)
- Add fields with non-default indices to Field tutorial (#5308) (@glwagner)
- Support boolean comparison operations on fields (#5309) (@glwagner)
Closed issues: