Skip to content

Releases: CliMA/Oceananigans.jl

v0.106.3

26 Mar 10:07
0911da6

Choose a tag to compare

Oceananigans v0.106.3

Diff since v0.106.2

Merged pull requests:

v0.106.2

25 Mar 14:04
85ba915

Choose a tag to compare

Oceananigans v0.106.2

Diff since v0.106.1

Merged pull requests:

v0.106.1

23 Mar 19:41
8358412

Choose a tag to compare

Oceananigans v0.106.1

Diff since v0.106.0

Merged pull requests:

v0.106.0

20 Mar 00:35
96f04c9

Choose a tag to compare

Oceananigans v0.106.0

Diff since v0.105.4

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 with DynamicSmagorinsky (#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:

  • Lagrangian-averaged DynamicSmagorinsky producing zero values for eddy viscosity (again) (#5365)
  • Some incorrect formatting in the docs (#5377)
  • Langmuir example includes all reference list from the Docs (#5399)
  • T_forcing and S_forcing do not receive the expected values (#5407)

v0.105.5

20 Mar 11:23
4aa81b5

Choose a tag to compare

Oceananigans v0.105.5

Diff since v0.105.4

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

08 Mar 18:45
7d463d6

Choose a tag to compare

Oceananigans v0.105.4

Diff since v0.105.3

Merged pull requests:

  • (0.105.4) Add basic tests for Reactant-Oceananigans correctness (#5093) (@glwagner)
  • Rename JULIA_DEPOT_PATH to the .julia for buildkite (#5368) (@tomchor)
  • Use view instead of indexing in cpu_face_constructor_r (#5376) (@glwagner)
  • Fix HydroStaticFreeSurfaceModel init for open boundary conditions with SplitExplicitFreeSurface (#5378) (@rafmudaf)

Closed issues:

  • Bug with Reactant + Periodic BCs + ParallelTestRunner (#5208)

v0.105.3

04 Mar 23:52
9d1b456

Choose a tag to compare

Oceananigans v0.105.3

Diff since v0.105.2

Merged pull requests:

Closed issues:

  • Reformulating continuous forcing in discrete form giving unexpected results (#5369)

v0.105.2

02 Mar 12:02
fcad9aa

Choose a tag to compare

Oceananigans v0.105.2

Diff since v0.105.1

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-trivial scheme (#5346)

v0.105.1

26 Feb 10:15
9a109e7

Choose a tag to compare

Oceananigans v0.105.1

Diff since v0.105.0

Merged pull requests:

Closed issues:

  • AverageSpecifiedTimes cannot be used (#4875)
  • JLD2Writer does not create per-rank files when filename contains .jld2 extension (#5263)
  • How does checkpointing happen after wall-time limit is reached? (#5291)

v0.105.0

20 Feb 02:12
43e1f11

Choose a tag to compare

Oceananigans v0.105.0

Diff since v0.104.5

Breaking Changes

There are 12 commits on main since v0.104.5. Of these, 3 contain breaking changes:

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

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

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

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

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

  • Use Vitepress for documentation (#4891)
  • Add fields with non-default indices to Field tutorial (#5206)
  • Support boolean comparison operations on fields (>, <, >=, <=, ==) (#5307)