Recent Releases of Oceananigans.jl

Oceananigans.jl - v0.110.11

Oceananigans v0.110.11

Diff since v0.110.10

Merged pull requests:

  • (0.110.11) Restores update_state! ordering for nonhydrostatic model (#5791) (@jagoosw)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 30 days ago

Oceananigans.jl - v0.110.10

Oceananigans v0.110.10

Diff since v0.110.9

Merged pull requests:

  • Bump CUDA in /test (#5696) (@dependabot[bot])
  • Remove type-instability in buffer_*_parameters (#5748) (@simone-silvestri)
  • Bugfix in left center-field boundary conditions with PerturbationAdvection (#5767) (@tomchor)
  • Speed up multi_region cubed sphere and zstar tests (#5775) (@tomchor)
  • (0.110.10) Fix substeps alignment in SplitExplicitFreeSurface (#5788) (@simone-silvestri)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.9

Oceananigans v0.110.9

Diff since v0.110.8

Merged pull requests:

  • Add distributed tests for ConjugateGradientPoissonSolver (#5757) (@xkykai)
  • Reject FieldTimeSeries operands in AbstractOperations (#5760) (@xkykai)
  • Fix distributed mean: reduce conditional_length globally (#5763) (@xkykai)
  • Fix NCCL send/recv for Bool fields (ImmersedBoundaryGrid mask) (#5765) (@aklocker42)
  • Fix tilted bottom boundary layer example (#5766) (@tomchor)
  • Add Lx, Ly, Lz to adapt calls in Adapt.adapt_structure(::RectilinearGrid) (#5769) (@jlk9)
  • Add set!(::FieldTimeSeries, ::Number) (#5773) (@xkykai)
  • Fix ZarrWriter test (#5776) (@tomchor)
  • Misc fixes for better type-generic support (#5783) (@giordano)
  • Bump version to 0.110.9 (#5787) (@xkykai)

Closed issues:

  • Tilted bottom boundary layer tutorial blows up in newer versions (#5722)
  • Binary operations between FieldTimeSeries silently drop the time dimension (#5758)
  • Distributed mean is incorrect: denominator not globally reduced (result is nranks× too large) (#5762)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.8

Oceananigans v0.110.8

Diff since v0.110.7

What's Changed

Full Changelog: https://github.com/CliMA/Oceananigans.jl/compare/v0.110.7...v0.110.8

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.7

Oceananigans v0.110.7

Diff since v0.110.6

Merged pull requests:

  • Simplify Relaxation: drop ContinuousForcing dependency, add transform and Field targets (#5620) (@glwagner)
  • Add ColumnwiseTridiagonalPreconditioner for the CG Poisson solver (#5650) (@xkykai)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.6

Oceananigans v0.110.6

Diff since v0.110.5

Closed issues:

  • Test velocity exchanges across the tripolar seam more thoroughly (#4488)
  • Add option for distributed computation to benchmark (#5579)
  • Type-unstable ifelse over tuples in interpolating_time_indices(::Clamp, …) (mixed Int/Float64 slot) (#5731)

What's Changed

Full Changelog: https://github.com/CliMA/Oceananigans.jl/compare/v0.110.5...v0.110.6

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 month ago

Oceananigans.jl - v0.110.5

Oceananigans v0.110.5

Diff since v0.110.4

Merged pull requests:

  • Update on_architecture for MetalGPU to specifically target StepRangeLen{FT, Float64, Float64} (#5375) (@glwagner)
  • Add BFloat16 as supported float type (#5476) (@Pangoraw)
  • Bump codecov/codecov-action from 6 to 7 (#5674) (@dependabot[bot])
  • Add tracer budget closure test (#5679) (@navidcy)
  • Better show for RotatedLatitudeLongitudeGrid and LambertConformalConicGrid (#5709) (@navidcy)
  • [CI] Upload docs build directory as an artifact (#5710) (@giordano)
  • Add Reactant == for LatitudeLongitudeGrid (#5711) (@dkytezab)
  • Remove convert type piracy from Reactant extension (#5713) (@giordano)
  • Bump project version from 0.110.4 to 0.110.5 (#5721) (@glwagner)

Closed issues:

  • Custom validate_grid for Reactant + LatLon (#5668)
  • Treatment of bathymetry in ShallowWaterModels (#5712)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 2 months ago

Oceananigans.jl - v0.110.4

Oceananigans v0.110.4

Diff since v0.110.3

Closed issues:

  • JLD2Writer(overwrite_existing=true) behaves like iteration-level overwrite, not file-level overwrite (#5643)
  • Accidental emoji rendering in docstrings (#5685)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 2 months ago

Oceananigans.jl - v0.110.3

Oceananigans v0.110.3

Diff since v0.110.2

Closed issues:

  • JLD2Writer(overwrite_existing=true) behaves like iteration-level overwrite, not file-level overwrite (#5643)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 2 months ago

Oceananigans.jl - v0.110.2

Oceananigans v0.110.2

Diff since v0.110.1

Closed issues:

  • cell_diffusion_timescale breaks for CATKE (#5641)
  • TripolarGrid face-coordinate generation appears incomplete at the north seam, yielding NaNs in rotation_angle / intrinsic_vector (#5665)

What's Changed

Full Changelog: https://github.com/CliMA/Oceananigans.jl/compare/v0.110.1...v0.110.2

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 2 months ago

Oceananigans.jl - v0.110.1

Oceananigans v0.110.1

Diff since v0.110.0

Merged pull requests:

  • Allow set! to copy between reduced and windowed single-layer fields (#5652) (@glwagner)
  • Update Project.toml (#5653) (@glwagner)

Closed issues:

  • Passive tracers are not conserved on tripolar grid (#4466)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 2 months ago

Oceananigans.jl - v0.110.0

Oceananigans v0.110.0

Diff since v0.109.2

Breaking changes

Merged pull requests:

  • Add target_transport to PerturbationAdvection for per-boundary transport control (#5479) (@tomchor)
  • add zarr writer and chunk size as option to io benchmark (#5638) (@vopikamm)
  • (0.110.0) Rename OpenNormalFlow and add a scheme to Value (#5648) (@glwagner)

Closed issues:

  • Add scheme slot to Value (Value{MS}) and migrate PerturbationAdvection's Center-field path (#5647)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 2 months ago

Oceananigans.jl - v0.109.2

Oceananigans v0.109.2

Diff since v0.109.1

Merged pull requests:

  • Limit pass through to target extension for auto_extension (#5644) (@rafmudaf)
  • (0.109.2) Apply tracer open boundary conditions in NonhydrostaticModel (#5646) (@tomchor)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 2 months ago

Oceananigans.jl - v0.109.1

Oceananigans v0.109.1

Diff since v0.109.0

Merged pull requests:

  • Support tracers in PerturbationAdvection open boundary conditions (#5617) (@tomchor)
  • Regularize correctly U and V bc for a TripolarGrid (#5633) (@simone-silvestri)
  • (0.109.1) Fix _fractional_indices ambiguities and adapt last_Δt and last_stage_Δt to kernel time (#5634) (@dkytezab)
  • Update number of ambiguities (#5640) (@giordano)

Closed issues:

  • add zarr as output_format with a variable chunk size (#5637)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.109.0

Oceananigans v0.109.0

Diff since v0.108.2

Breaking changes

  • the syntax of time_discretization was changed

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.108.2

Oceananigans v0.108.2

Diff since v0.108.1

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.108.1

Oceananigans v0.108.1

Diff since v0.108.0

Closed issues:

  • Implement a ZarrOutputWriter (#3821)
  • Extend NetCDFWriter to support TripolarGrid and MutableVerticalDiscretization (#4332)
  • Makie ext: support plotting FieldTimeSeries directly (#5599)
  • Accept FieldTimeSeries directly in boundary conditions (always interpolate) (#5621)
  • Bug in area operator Az and potentially other operators... (#5623)
  • Support OrthogonalSphericalShellGrid in ZarrWriter (#5625)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.108.0

Oceananigans v0.108.0

Diff since v0.107.7

Breaking changes

  • When picking up a simulation from a checkpoint instead of using the Δt that was saved in the checkpoint, the simulation will use the Δt that was constructed with.

Merged pull requests:

  • Share open-boundary transport machinery across models (#5569) (@tomchor)
  • (v0.108.0) Always use user-defined ∆t on pickup (#5588) (@taimoorsohail)
  • Recursively test for type piracy with Aqua (#5602) (@giordano)
  • Update number of ambiguities in tests (#5603) (@giordano)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.107.7

Oceananigans v0.107.7

Diff since v0.107.6

Merged pull requests:

  • Change behavior for halo metrics for a TripolarGrid + bugfix at j == 1 (#5565) (@simone-silvestri)
  • Bugfix actuations for TimeInterval (#5572) (@simone-silvestri)
  • Add CosineRampMask forcing mask (#5574) (@ewquon)
  • Set JULIA_CUDA_USE_COMPAT=false in tests (#5577) (@simone-silvestri)
  • Correct erroneous WENO docstring (#5580) (@simone-silvestri)
  • Disambiguate FractionalIndices (#5585) (@simone-silvestri)
  • Remove xesmf extension (#5590) (@simone-silvestri)
  • Size BatchedTridiagonalSolver scratch by worksize, fixing OOB on RightFaceFolded tripolar grids (#5594) (@briochemc)
  • Avoid deprecation warning about CUFFT in CUDA extension (#5597) (@giordano)

Closed issues:

  • Out-of-bounds write in BatchedTridiagonalSolver on RightFaceFolded tripolar grids (#5593)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.107.6

Oceananigans v0.107.6

Diff since v0.107.5

What's Changed

Full Changelog: https://github.com/CliMA/Oceananigans.jl/compare/v0.107.5...v0.107.6

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.107.5

Oceananigans v0.107.5

Diff since v0.107.4

Closed issues:

  • Bug: Adapt.adapt_structure swaps north/south in CommunicationBuffers (#5422)
  • interpolate! fails silently on Flat topologies with explicitly specified coordinate in Flat directions (#5511)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 3 months ago

Oceananigans.jl - v0.107.4

Oceananigans v0.107.4

Diff since v0.107.3

Merged pull requests:

  • Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#5507) (@dependabot[bot])
  • Only allow CUDA.jl v5 in benchmarking environment (#5531) (@giordano)
  • Make benchmarks compatible with both CUDA.jl v5 and v6 (#5532) (@giordano)
  • Bump julia-actions/setup-julia from 2 to 3 (#5535) (@dependabot[bot])
  • Register atan, atand, mod as binary operations on Fields (#5538) (@giordano)
  • Fix formatting in run_benchmarks.jl (#5540) (@glwagner)
  • (0.107.4) unify Simulation interface in ReactantExt (#5541) (@juliasloan25)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.107.3

Oceananigans v0.107.3

Diff since v0.107.2

Merged pull requests:

  • Append colon to JULIA_DEPOT_PATH (#5525) (@giordano)
  • Avoid use of at-doc macro inside structs (#5527) (@giordano)
  • Simplify definition of at-binary not to require loads of imports (#5528) (@giordano)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.107.2

Oceananigans v0.107.2

Diff since v0.107.1

Merged pull requests:

  • Adapt to CUDA.jl v6 (#5458) (@giordano)
  • Explicit imports in Advection (#5523) (@giordano)
  • Resolve some ambiguities (#5524) (@giordano)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.107.1

Oceananigans v0.107.1

Diff since v0.107.0

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.

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.107.0

Oceananigans v0.107.0

Diff since v0.106.6

Breaking changes

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.

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.106.6

Oceananigans v0.106.6

Diff since v0.106.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.

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.106.5

Oceananigans v0.106.5

Diff since v0.106.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.

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.106.4

Oceananigans v0.106.4

Diff since v0.106.3

Merged pull requests:

  • Switch biases to be enums rather than distinct types. (#5318) (@jackdfranklin)
  • Add a hydrostatic barotropic soliton case validation for hydrostatic open boundaries (#5387) (@tomchor)
  • Reorganize Reactant test groups and add CI coverage (#5423) (@glwagner)
  • Streamline benchmarking pipeline (#5429) (@simone-silvestri)
  • Automated dependency checking (#5432) (@jackdfranklin)
  • Distributed should account for z-only fields (#5434) (@dkytezab)
  • Skip fill_corners! when no corner neighbors exist (#5435) (@glwagner)
  • Fix NSYS kernel charts and add kernel comparison to summary (#5440) (@simone-silvestri)
  • Fix publish-benchmarks pipeline token permissions (#5448) (@simone-silvestri)
  • Revert "Switch biases to be enums rather than distinct types. (#5318)" (#5449) (@wsmoses)
  • [CI] Run sharding tests under earlyoom (#5453) (@giordano)
  • Bump codecov/codecov-action from 5 to 6 (#5455) (@dependabot[bot])
  • Clear ambiguities in conditional_length (#5456) (@simone-silvestri)
  • Replace PR benchmark polling with Buildkite dispatch (#5457) (@simone-silvestri)
  • Remove duplicate turbulence closure test from GitHub Actions (#5460) (@tomchor)
  • Update number of ambiguities (#5462) (@giordano)
  • Fill small documentation gaps (Units, SphericalCoriolis, background_closure_fluxes, PiecewiseLinearMask) (#5463) (@tomchor)
  • Add BulkDrag boundary conditions documentation (#5464) (@tomchor)
  • Remove dependency on CUDA_Runtime_jll in test/ environment (#5466) (@giordano)
  • Add "performance dashboard" to README (#5467) (@simone-silvestri)
  • (0.106.4) Move NetCDF output attribute methods from extension to Models module (#5469) (@simone-silvestri)

Closed issues:

  • Collect benchmark results and host them on a website (#4851)
  • Benchmarking script depends on downstream packages (#5418)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 4 months ago

Oceananigans.jl - v0.106.3

Oceananigans v0.106.3

Diff since v0.106.2

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.106.2

Oceananigans v0.106.2

Diff since v0.106.1

Merged pull requests:

  • (0.106.2) Refactor coriolis and add Triad scheme (#5383) (@simone-silvestri)
  • Shift the RightFaceFolded fold upwards by one row (#5408) (@simone-silvestri)
  • Extend TabulatedFunction to support 4D and 5D interpolation (#5417) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.106.1

Oceananigans v0.106.1

Diff since v0.106.0

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.105.5

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.

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.106.0

Oceananigans v0.106.0

Diff since v0.105.4

Breaking changes

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.105.4

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.105.3

Oceananigans v0.105.3

Diff since v0.105.2

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_halo for a TripolarGrid (#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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.105.2

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 5 months ago

Oceananigans.jl - v0.105.1

Oceananigans v0.105.1

Diff since v0.105.0

Merged pull requests:

  • Enable AveragedSpecifiedTimes to 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 Bounded topology with Reactant (#5322) (@dkytezab)
  • Add citation for Gupta et al. on upper-ocean energetics (#5325) (@navidcy)
  • Fix undefined variable free_surface inside error message (#5328) (@giordano)
  • --check-bounds=auto for 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:

  • 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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 6 months ago

Oceananigans.jl - v0.105.0

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)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 6 months ago

Oceananigans.jl - v0.104.5

Oceananigans v0.104.5

Diff since v0.104.4

Merged pull requests:

  • Bugfix in CATKE with RK3 v2 (#5269) (@simone-silvestri)
  • Use FieldTimeSeries in tilted BBL example (with NetCDF output) (#5273) (@tomchor)
  • Add test for PrescribedFreeSurface with PrescribedVelocityFields and ZStar (#5278) (@Copilot)
  • Update NumericalEarth Slack link in README (#5279) (@glwagner)
  • Changing rotation_angle to output in radians instead of degrees (#5280) (@jlk9)
  • Validate indices for field time series (#5281) (@briochemc)
  • Add new paper citation to Oceananigans section (#5284) (@navidcy)
  • Fix equations rendering in split_explicit_timesteppers.jl (#5285) (@navidcy)
  • (0.104.5) Use the default FloatType in TripolarGrid (#5288) (@simone-silvestri)
  • Add new paper citation to Oceananigans documentation (#5293) (@navidcy)
  • Add reference to Zhang et al. (2025) on Enceladus (#5294) (@navidcy)

Closed issues:

  • OceananigansDocumentation repo is quite large due to SVGs (#5027)
  • don't delete previews too fast (#5243)
  • Absolute or relative imports? (#5290)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 6 months ago

Oceananigans.jl - v0.104.4

Oceananigans v0.104.4

Diff since v0.104.3

Merged pull requests:

  • Add the possibility for using fill_halo_regions! instead of extended halos for SplitExplicitFreeSurface (#4750) (@simone-silvestri)
  • Do not explicitly step model.velocities for pressure_correction models (#5178) (@simone-silvestri)
  • Support FFT planning for ConcreteRArray (#5246) (@dkytezab)
  • (0.104.4) Guarantee conservation with an ImplicitFreeSurface (#5247) (@simone-silvestri)
  • unpin reactant (#5253) (@wsmoses)
  • Use WENO in the ocean mixing example (#5254) (@tomchor)
  • Add pre-commit hook and explain how to use it (#5256) (@giordano)
  • Always run Base.julia_cmd() in distributed tests (#5258) (@giordano)
  • Create test-specific project (#5259) (@giordano)
  • (0.104.4) Bugfix for DynamicSmagorinsky (improve check for restoration) (#5260) (@glwagner)
  • Add support for RK3 in Reactant extension (#5261) (@dkytezab)
  • Explicit imports in MultiRegion, and remove all imports in that module (#5262) (@giordano)

Closed issues:

  • Problem with wind mixing and convection example (#5231)
  • Support FFT tracing for ConcreteRArray (#5244)
  • Reactant failing on buildkite (#5249)
  • Dynamic Smagorinsky always produces zero values for eddy viscosity (#5257)
  • Enter the Product Title Here (#5265)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 6 months ago

Oceananigans.jl - v0.104.3

Oceananigans v0.104.3

Diff since v0.104.2

Merged pull requests:

  • Extend FFTBasedPoissonSolver to work on AMDGPU (#4593) (@navidcy)
  • Do not pass CommunicationBuffers as clock to BC (#5063) (@Mikolaj-A-Kowalski)
  • F-point pivot fold zipper boundary for tripolar grids (#5094) (@briochemc)
  • Fix Clock constructor preventing Nonhydrostatic model to run on MetalGPU (#5187) (@alesok)
  • Support combining distributed output for FieldTimeSeries with Reduced directions (#5188) (@simone-silvestri)
  • Fix typos in generalized vertical coordinates documentation (#5190) (@navidcy)
  • Move benchmarks from GPU 1 to GPU 0 (#5193) (@simone-silvestri)
  • Add docstrings back to NetCDFWriter (#5194) (@tomchor)
  • Rearrange example scripts in make.jl (#5196) (@navidcy)
  • Convert examples in docstrings to doctests (#5197) (@navidcy)
  • Fix typo (#5198) (@navidcy)
  • Fix formatting of urls in the docs (#5199) (@navidcy)
  • Refine schedules documentation for clarity and consistency (#5201) (@navidcy)
  • Fix callback in example within Docs/Checkpoint (#5202) (@navidcy)
  • apply_regionally! on multi-region kernels (#5203) (@simone-silvestri)
  • Fix test_complex_boundary_conditions on distributed CI (#5205) (@navidcy)
  • Enhance checkpointing tests with closure::Tuple (#5209) (@navidcy)
  • Zenodo: Add citation metadata for Oceananigans.jl (#5215) (@milankl)
  • Add more docstrings for FieldTimeSeries (#5217) (@briochemc)
  • Add support for OffsetArray in restore_prognostic_state! + minor variable name changes (#5218) (@taimoorsohail)
  • Added support for combining FTS using multiple ranks where filename is an absolute path (#5221) (@taimoorsohail)
  • Fix formatting of titles in oceananigans.bib (#5222) (@navidcy)
  • Add friendlier error for wrong timestepper in model constructors (#5224) (@briochemc)
  • Introduce distributed conservation tests and fix some bugs (#5225) (@simone-silvestri)
  • Fix Distributed GPU unit tests (#5226) (@navidcy)
  • Simplify distributed test pipeline (#5228) (@simone-silvestri)
  • Implement TimeSeriesInterpolatedField and support FieldTimeSeries in PrescribedVelocityFields (#5233) (@glwagner)
  • Use stage=1 in Clock constructor for ReactantGrid (#5236) (@jlk9)
  • Jlk9/reactant clock stage 1 (#5241) (@jlk9)
  • (0.104.3) Make FieldTimeSeries respect architecture when reading from NetCDF files (#5242) (@tomchor)
  • Update Julia version requirement to 1.10 (#5245) (@briochemc)
  • Pin reactant (#5250) (@simone-silvestri)
  • [WIP] Update FieldTimeSeries NetCDF architecture handling (#5251) (@Copilot)

Closed issues:

  • AMDGPU with NonhydrostaticModel? (#4591)
  • Conservation with Distributed architecture and ZStarCoordinate not ensured (#5161)
  • Nonhydrostatic model fails on MetalGPU due to Clock(::AbstractGrid) constructor (#5186)
  • Calling HydrostaticFreeSurfaceModel with invalid timestepper = :RungeKutta3 throws unfriendly error. (#5192)
  • restore_prognostic_state! not supported for OffsetArrays (#5212)
  • BoundaryConditionOperation not compiling on GPU. (#5214)
  • Unusual density fluctuations have been observed in submarine acoustic simulation. (#5219)
  • Feature request: Prescribed velocity field time series (#5227)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 6 months ago

Oceananigans.jl - v0.104.2

Oceananigans v0.104.2

Diff since v0.104.1

Merged pull requests:

  • Problems with TimeStepWizard and ImmersedBoundaryGrid on MetalGPU (#4990) (@alesok)
  • Fix halo-edge interpolation and column depth for extended conformal cubed sphere grids (#5060) (@siddharthabishnu)
  • Simplify and test FTS boundary conditions (#5171) (@simone-silvestri)
  • Delete unused maybe_enable_peer_access! function (#5173) (@giordano)
  • Remove RungeKuttaScheme alias (#5174) (@giordano)
  • Add new paper references to Docs (#5175) (@navidcy)
  • (0.104.2) Add convenience method for 1D interpolation (#5182) (@glwagner)
  • Update including parameter to use default properties (#5184) (@navidcy)

Closed issues:

  • Run HydrostaticFreeSurfaceModel with ImmersedBoundaryGrid on MetalGPU (#4969)
  • rename master to main in OceananigansDocumentation repo (#5160)
  • Undefined references to switch_device! and sync_all_devices! in maybe_enable_peer_access! (#5170)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 7 months ago

Oceananigans.jl - v0.104.1

Oceananigans v0.104.1

Diff since v0.104.0

Merged pull requests:

  • Test that certain modules have exactly 0 ambiguities (#5115) (@giordano)
  • Update Julia compat from version from 1.9 to 1.10 (#5163) (@navidcy)
  • Fix ConditionalOperation method (#5165) (@simone-silvestri)
  • Resolve many more issues identified by JETLS (#5166) (@giordano)
  • Add a checkpointing method for constant fields (#5168) (@simone-silvestri)
  • Resolve bug in binary_operation (#5169) (@simone-silvestri)

Closed issues:

  • Bogus Oceananigans.AbstractOperations.ConditionalOperation method (#5154)
  • Bogus methods in binary_operations.jl (#5167)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 7 months ago

Oceananigans.jl - v0.104.0

Oceananigans v0.104.0

Diff since v0.103.1

Breaking changes

Merged pull requests:

  • Creation of FieldTimeSeries from BinaryOperation of other FTS + some FTS bug fixes (#3644) (@jagoosw)
  • Flip location along accumulating dimension for Accumulating scans (#4358) (@glwagner)
  • Allow reductions with dims kwarg work for FieldTimeSeries (#4385) (@navidcy)
  • (0.104.0) Reformulate hydrostatic model timestepping (#4811) (@simone-silvestri)
  • Enhance simulation docstring time step argument options + add prettytime(::AbstractTime) methods (#4887) (@navidcy)
  • (v0.104.0) Checkpointing simulations (#4892) (@ali-ramadhan)
  • "For developers" section in the documentation + document AbstractModel interface (#4971) (@glwagner)
  • Make FieldTimeSeries work with NetCDF output (#5017) (@tomchor)
  • Adds docs for perturbation advection (#5026) (@jagoosw)
  • Add a spherical baroclinic instability example (#5072) (@glwagner)
  • Refactor BoundaryAdjacentMean to AverageBoundaryFlux (#5073) (@glwagner)
  • Combine distributed data automagically in FieldTimeSeries (#5079) (@glwagner)
  • Move initialization of JLD2Writer to run! (#5080) (@glwagner)
  • Refactor getindex for FunctionField to convert to eltype(grid) (#5081) (@glwagner)
  • (0.104.0) Change notation to free_surface.displacement (#5082) (@glwagner)
  • Fix distributed validation scripts (#5083) (@glwagner)
  • Implement BulkDrag for linear and quadratic drag boundary conditions (#5084) (@glwagner)
  • Add info about minimum TKE to CATKE docs (#5086) (@glwagner)
  • (0.104.0) Grid as positional argument in models (#5087) (@simone-silvestri)
  • Update citation format in comments (#5088) (@navidcy)
  • fix error in docs for target function signature (#5089) (@xkykai)
  • Update the docs to show we can do 3D stokes drift (#5090) (@glwagner)
  • Update author details for JOSS paper citation (#5092) (@navidcy)
  • Fix subscript LaTeX rendering in docstrings (#5095) (@navidcy)
  • Use Julia v1.12.3 for CI (#5096) (@navidcy)
  • Fix typos in boundary conditions documentation (#5098) (@xkykai)
  • Implement Adapt for BoundaryConditionKernelFunction (#5100) (@glwagner)
  • Explicit imports in more modules (#5102) (@giordano)
  • [tests] Cap total number of ambiguities (#5105) (@giordano)
  • Remove dependency on Random (#5106) (@giordano)
  • Explicit imports in even more modules (#5107) (@giordano)
  • Revive codecov (#5108) (@navidcy)
  • Implement developer docs for TurbulenceClosures (#5110) (@glwagner)
  • [AGENTS.md] Add instructions about MCPRepl and port some advice from Breeze (#5111) (@glwagner)
  • Ensure complete halo filling and organize halo-fill tests (#5113) (@siddharthabishnu)
  • Export BoundaryConditionOperation (#5116) (@glwagner)
  • (v0.104.0) Remove support for pushing output writers and diagnostics into ordered dicts without a key (#5117) (@ali-ramadhan)
  • Remove unused import Base statements (#5118) (@navidcy)
  • Refactor default arguments in distributed architecture docstring (#5119) (@navidcy)
  • Fix line-break typo in citation for Brenner et al. 2025 (#5120) (@briochemc)
  • Typo in Clock constructor (#5123) (@alesok)
  • Switch the ocean mixing and convection example to use Dynamic Smagorinsky (#5124) (@tomchor)
  • Update paper citations in index.md (#5125) (@navidcy)
  • Enhance GPU usage instructions in README (#5126) (@navidcy)
  • Add Oceananigans to the docs environment with [sources] section (#5129) (@giordano)
  • Reduce CFL in ocean mixing and convection example (#5130) (@glwagner)
  • Add process coverage and Codecov actions to CI (#5132) (@navidcy)
  • Remove all Core.Boxes (#5133) (@giordano)
  • Update CI configurations for MakieExt and ConservativeRegridding to use Julia 1.12 (#5134) (@navidcy)
  • Remove some stale imports (#5135) (@giordano)
  • [CI] Correctly fail failing tests by fixing interpolation of variable (#5136) (@giordano)
  • Revise divergence equation in vertical coordinates (#5142) (@rafferrari)
  • Drop conservative regridding extension (#5143) (@asinghvi17)
  • Add Chor et al. (2025) paper (#5144) (@navidcy)
  • Add GitHub action to clear whitespace (#5145) (@navidcy)
  • (0.104.0) Remove support for AB3 barotropic substepping (#5147) (@simone-silvestri)
  • Remove ConservativeRegridding from Project (#5148) (@simone-silvestri)
  • Add new papers to the Oceananigans section (#5149) (@navidcy)
  • Code cleanup (#5153) (@navidcy)
  • Close advection scheme errors + tests (#5158) (@simone-silvestri)

Closed issues:

  • Initialize output before running a simulation, rather than on construction? (#1163)
  • Convenience function: checkpoint(simulation) (#1249)
  • Feature: MPI-aware output writing and FieldTimeSeries (#2351)
  • Add example in docs on the sphere (#2584)
  • Checkpointer does not work for ShallowWaterModel (#2866)
  • NetCDFOutputWriter sometimes outputs twice at approximately the same time step (#3056)
  • Should we change Lx, Ly -> Lλ, Lφ for latitude-longitude grids? (#3134)
  • Estimate total output size when initializing output writers and throw a warning? (#3312)
  • Ensure simulation.Δt is the same across MPI ranks (#3336)
  • Stokes Drift Docs/Physics page does not include 3D Stokes implementation (#3432)
  • Boundary conditions and diffusion with background fields (#3568)
  • Simulation tips may be a little misleading (#3594)
  • Error in AveragedTimeInterval Output (#3670)
  • Change free surface displacement name from η to displacement for HydrostaticFreeSurfaceModel (#3702)
  • Bottom drag on immersed boundaries may differ if implemented with Forcing vs ImmersedBoundaryCondition (#3704)
  • A couple of issues with reductions over FieldTimeSeries (#3752)
  • Interface to build and output boundary conditions (#3774)
  • Implementing drag boundary conditions based on similarity theory (#3807)
  • Why is conformal_mapping the last property of OrthogonalSphericalShellGrid? (#3826)
  • Restarting from a checkpoint should restore the time step? (#3845)
  • FieldTimeSeries support for NetCDF (#3935)
  • Non-hydrostatic curvilinear shell? (#3943)
  • Incorrect style in HydrostaticFreeSurfaceModel constructor (#3966)
  • Wouldn't make sense for the *spacings to be GridMetricOperations? (#3970)
  • distributed_hydrostatic_turbulence.jl yields NaNs (#4068)
  • New documented example w immersed boundary, latlon grid, and immersed boundary bottom drag (#4102)
  • CumulativeIntegrals of Center fields are defined on Centers as opposed to Faces (#4354)
  • Warning message regarding free surface when using checkpoint is not consistent (#4516)
  • Trying to run a regional simulation with river inflow (#4703)
  • Conflict between immersed bottom and sponge relaxation (#4721)
  • Reductions on FieldTimeSeries not working (#4813)
  • Checkpointing that works (#4857)
  • Lock-Exchange Implementation (#4898)
  • Do we need docs for OpenBoundaryCondition with the PerturbationAdvection scheme? (#4916)
  • Convert FunctionField output to eltype(grid) (#5048)
  • Make output writers work for models that do not have grids (#5085)
  • "Running your first model" section of the README also needs using CUDA (#5109)
  • Output boundary conditions? (#5112)
  • Noise in vertical velocity when using AMD closure (#5114)
  • Mistyping(?) in clock.jl (#5121)
  • Bogus Oceananigans.Fields.validate_shifted_index method (#5151)
  • Bogus Oceananigans.Grids.default_horizontal_extent method (#5152)
  • Bogus Oceananigans.Advection.centered_reconstruction_weights method (#5155)
  • Bogus methods Oceananigans.Advection._multi_dimensional_reconstruction_x/Oceananigans.Advection._multi_dimensional_reconstruction_y (#5156)
  • Bogus methods Oceananigans.Advection.upwinded_divergence_flux_Uᶠᶜᶜ/Oceananigans.Advection.upwinded_divergence_flux_Vᶜᶠᶜ (#5157)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 7 months ago

Oceananigans.jl - v0.103.1

Oceananigans v0.103.1

Diff since v0.103.0

Merged pull requests:

  • Lock Exchange Example (#4968) (@surbhidhiman)
  • Update docs for turbulence closures (#5069) (@glwagner)
  • Update references in index.md (#5070) (@navidcy)
  • Update coordinate system information in physics documentation (#5071) (@glwagner)
  • Adds linkcheck=true in makedocs + fixes a bunch of broken urls (#5074) (@navidcy)
  • Implement TabulatedFunction (#5077) (@glwagner)

Closed issues:

  • Make use of CUDA.versioninfo() (#874)
  • Update Coord system and Notation page in docs (#1779)
  • Document the fact that you can pass a Tuple as closure to models (#1879)
  • Should we use Base.TwicePrecision to align_time_step? (#2321)
  • Support Nz = 1 with DistributedFFTPoissonSolver (#2533)
  • Highlighting important breaking changes in releases (#3147)
  • Doing better than overwriting_existing=true with output? (#3543)
  • Oddly-written halo filling code for the cubed sphere (#4855)
  • Possible error in computing Cs² of dynamic Smagorinsky-Lilly model (#4880)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.103.0

Oceananigans v0.103.0

Diff since v0.102.5

Breaking changes

  • This PR changes the interface for using turbulence closures that have prognostic tracers. Instead of adding these tracers manually, the tracers are added implicitly. As a result, any attempt to manually add closure tracers will result in an error.
  • For example:

Before this PR

closure = CATKEVerticalDiffusivity()
tracers = (:T, :S, :e)
model = HydrostaticFreeSurfaceModel(; grid, closure, tracers)

After this PR

it should now be built with

closure = CATKEVerticalDiffusivity()
tracers = (:T, :S)
model = HydrostaticFreeSurfaceModel(; grid, closure, tracers)

Merged pull requests:

  • Fix cubed sphere corner vorticity (restore 4/3 scaling) (#4741) (@siddharthabishnu)
  • Change the user interface so that closure tracers are automatically added (#4788) (@glwagner)
  • Fill vertical halos for conformal cubed sphere fields (#5018) (@siddharthabishnu)
  • Add conservative regridding extension (#5028) (@glwagner)
  • update spot_tracer_diffusion (#5046) (@briochemc)
  • Show bounds in WENO summary plus validation (#5054) (@glwagner)
  • Fix formatting in ConjugateGradientSolver function (#5055) (@glwagner)
  • Fix boundary gradient operators on extended conformal cubed sphere grids (#5056) (@siddharthabishnu)
  • Update formatting for forcings summary output (#5057) (@glwagner)
  • Add info to docs about using the TEST_GROUP env variable (#5058) (@glwagner)
  • Fix immersed cell when bottom = top z (#5062) (@briochemc)
  • Validate location input in FieldBoundaryConditions constructor (#5065) (@glwagner)
  • Tweak show and summary for Distributed grids and LatitudeLongitudeGrid (#5066) (@glwagner)
  • Fix distributed CI (#5067) (@navidcy)
  • Bump version from 0.102.5 to 0.103.0 (#5068) (@glwagner)

Closed issues:

  • More robust method for specifying fluxes across boundaries (#1400)
  • Should grids and clocks have units? (#1462)
  • Bug for distributed output when with_halos=false (but only for some fields) (#2352)
  • Emit a summary of model data in set!(model, ...) ? (#2462)
  • Longitude values are not correctly defined on every panel of the conformal cubed sphere (#3217)
  • Face-Face-Any metrics and horizontal coordinates are not filled in the halo regions for ConformalCubedSphereGrid (#3246)
  • Clock and QuasiAdamsBashforth2 both have a property representing the previous time-step (#3564)
  • Call it "Simulation setup" in the docs, not "Model setup" (#3584)
  • Documentation 2.0 (#3672)
  • Re-licensing Oceananigans under Apache 2.0 (#3708)
  • Out of memory error with Docs tests (#3779)
  • Does the show method for OrthogonalSphericalShellGrid make sense? (#3808)
  • Segmentation fault filling halo regions with Partition(y=2) (#3878)
  • Support for using set! on FieldTimeSeries with functions of time (#3929)
  • Free surface for non-hydrostatic model? (#3946)
  • Throwing a nice error if CUDA-aware MPI is not configured (#3983)
  • Unexpected collapse of stratification in convecting_plankton.jl example with Julia v1.11 (#4613)
  • Internal wave example blowing up with Julia v1.11 (#4618)
  • no method matching default_prognostic_bc error when building FieldBoundaryConditions (#4759)
  • compute_numerical_bottom_height is incorrect for PartialCellBottom (#5061)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.102.5

Oceananigans v0.102.5

Diff since v0.102.4

Merged pull requests:

  • Extending DistributedField and DistributedFFTBasedPoissonSolver functionality to allow for distributed FFT preconditioner for ConjugateGradientPoissonSolver (#4555) (@xkykai)
  • Change default minimum buffer upwind order to 3 (#5009) (@glwagner)
  • Resolve warnings when importing symbols already usinged (#5041) (@giordano)
  • [docs] Include info about computing environment in Literate examples (#5043) (@giordano)
  • Add znodes docstring (copied back from v0.94.3) (#5045) (@briochemc)
  • Add with_number_type function for distributed grids for correct reconstruction (#5050) (@xkykai)
  • Change default to hydrostatic_pressure_anomaly = nothing for vertically periodic topologies (#5052) (@xkykai)
  • Correct field constructor to work with OffsetArrays (#5053) (@simone-silvestri)

Closed issues:

  • Laplacian on ImmersedBoundaryGrid is incorrect if using ∂x, ∂y, and ∂z composition (#2915)
  • Differences of reduced fields seem to not be defined? (#5040)
  • Missing znodes docstrings + broken links in docs (#5042)
  • DistributedFFTBasedPoissonSolver on reduced precision grid doesn't work as preconditioner for ConjugateGradientPoissonSolver in distributed settings (#5044)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.102.4

Oceananigans v0.102.4

Diff since v0.102.3

Merged pull requests:

  • Generalize bounded WENO advection (#5002) (@glwagner)
  • Fix flaky test: test_chunked_abstraction (#5038) (@ali-ramadhan)
  • Support vertical plots with custom coordinates (#5039) (@glwagner)

Closed issues:

  • Flaky test: test_chunked_abstraction in test_output_readers.jl (#5037)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.102.3

Oceananigans v0.102.3

Diff since v0.102.2

Merged pull requests:

  • Explicit imports in more modules (#5015) (@giordano)
  • (v0.102.3) Fix NetCDF outputs on vertically stretched lat-lon grids, test non-hydrostatic η output, and fix non-hydrostatic free surface time stepping (#5030) (@ali-ramadhan)
  • [docs] Use PNG format for CairoMakie images (#5031) (@giordano)
  • Update horizontal_convection.jl (#5034) (@navidcy)
  • [docs] Use PNG figures in more places (#5036) (@giordano)

Closed issues:

  • Implicit free surface implementation in NonhydrostaticModel (#4715)
  • Cannot output η via a NetCDFWriter on a vertically stretched lat-lon grid (#5029)
  • Cannot time step a NonhydrostaticModel with an ImplicitFreeSurface on a CUDA GPU (#5032)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.102.2

Oceananigans v0.102.2

Diff since v0.102.1

Merged pull requests:

  • SphericalCoriolis which supports nonhydrostatic and hydrostatic formulations (#4695) (@francispoulin)
  • Fix clock argument in TriadIsopycnalSkewSymmetricDiffusivity's explicit_R₃₃_∂z_c function (#4780) (@xkykai)
  • Support ImmersedBoundaryGrid reconstruction using NetCDF (#4848) (@tomchor)
  • Allow arbitrary fluxes across immersed boundaries and test this with AdvectiveForcing (#4987) (@tomchor)
  • Check undefined exports with Aqua (#4992) (@giordano)
  • Implement minimum_buffer_upwind_order for WENO and UpwindBiased (#5003) (@glwagner)
  • Move prettysummary to Utils (#5006) (@giordano)
  • Fix location was not passed in configure_kernel (#5007) (@simone-silvestri)
  • Disambiguate binary operations on Numbers (#5010) (@glwagner)
  • Link prominently to jobs working on or with Oceananigans (#5011) (@glwagner)
  • Fix small typo in validation script (#5012) (@tomchor)
  • Reorganize test_output_readers.jl (#5016) (@tomchor)
  • Add NORi paper (#5020) (@navidcy)
  • Update community resource links in README (#5022) (@glwagner)
  • (0.102.2) Fix NaNs in halo regions due to division by zero in split-explicit free surface (#5025) (@ali-ramadhan)

Closed issues:

  • CUDA/KA circular dependancy (#3964)
  • clock argument missing in TriadIsopycnalSkewSymmetricDiffusivity's explicit_R₃₃_∂z_c function (#4779)
  • Different behavior of AdvectiveForcing when tracers encounter a domain boundary and an immersed boundary (#4812)
  • Calling nodes on integral of field on LatitudeLongitudeGrid raises error (#5014)
  • NaNs in the halo regions when running a hydrostatic model with land (#5024)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 8 months ago

Oceananigans.jl - v0.102.1

Oceananigans v0.102.1

Diff since v0.102.0

Merged pull requests:

  • Add a test for CATKE with DateTime clock and fix (#4885) (@glwagner)
  • Oceananigans-local FFTW num threads setting (#4958) (@milankl)
  • Use julia v1.12 for CI (#4961) (@navidcy)
  • Bump actions/checkout from 5 to 6 (#4973) (@dependabot[bot])
  • Fix typo in internal_wave.jl comment (#4983) (@navidcy)
  • Remove all remaining unused imports (#4993) (@giordano)
  • Remove all self-qualified accesses (#4994) (@giordano)
  • Remove duplicate hack_cosd/hack_sind definitions (#4995) (@giordano)
  • Do not import Base.sum! from Statistics (#4996) (@giordano)
  • Use explicit imports in more modules (#4997) (@giordano)
  • Bump version from 0.102.0 to 0.102.1 (#5005) (@navidcy)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.102.0

Oceananigans v0.102.0

Diff since v0.101.3

Breaking changes

  • This release fixes the non-standard style of BuoyancyField, which is renamed to buoyancy_field
  • It also adds ExplicitImports to testing which will affect in which modules certain names are available.

Other changes

  • Finally, it implements a buoyancy_force and buoyancy_tracers interface for TurbulenceClosures. This is not a breaking change.

Merged pull requests:

  • Improvements and fixes to NetCDFWriter (#4890) (@tomchor)
  • fix tapering function in diffusive GM (#4909) (@xkykai)
  • Update CPU architecture reference in OutputReaders.jl (#4963) (@simone-silvestri)
  • Fix typo in models_overview.md (#4964) (@awiteck)
  • Update warning message format in split_hydrostatic_runge_kutta_3.jl (#4965) (@navidcy)
  • Add set! for FieldTimeSeries that can take in functions of time (#4966) (@glwagner)
  • Clean up; implement buoyancy_force interface for TurbulenceClosures (#4967) (@glwagner)
  • Use Julia v1.12.2 for CI (#4970) (@navidcy)
  • Fix typos in internal wave comments (#4974) (@navidcy)
  • Add adapt method for AMD plus closure coeff for functions (#4976) (@glwagner)
  • Run Aqua tests (#4979) (@giordano)
  • Improve testing coverage for AdvectiveForcing (and other forcings too) (#4980) (@tomchor)
  • Start running ExplicitImports checks (#4985) (@giordano)
  • Bump to 0.102.1 (#4986) (@glwagner)
  • Add Brenner et al. (2025) paper to documentation (#4988) (@navidcy)
  • Downgrade version from 0.102.1 to 0.102.0 (#4991) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.101.3

Oceananigans v0.101.3

Diff since v0.101.2

Merged pull requests:

  • Make nodes() return the correct indices when passed a view of a Field (#4814) (@tomchor)
  • Refactor the buffer system and add methods for synchronize_communication! (#4939) (@simone-silvestri)
  • Three dimensional column_depth methods (#4940) (@simone-silvestri)
  • Refactor SplitExplicitFreeSurface to compute transport barotropic velocities (#4941) (@simone-silvestri)
  • Remove redundant FT definition in fields tests (#4942) (@giordano)
  • Remove integrated areas in ImplicitFreeSurface and refactor solver (#4943) (@simone-silvestri)
  • Properly set status for computed fields (#4945) (@erin-atkinson)
  • Add AGENTS.md for agent-assisted coding (#4946) (@glwagner)
  • Fix bug in multi-region SplitExplicitFreeSurface (#4947) (@simone-silvestri)
  • Add DJ4Earth paper (#4950) (@navidcy)
  • Run benchmarks on julia 1.12 (#4951) (@simone-silvestri)
  • Remove unused cubed spheres module (#4953) (@simone-silvestri)
  • Fix formatting and punctuation in references (#4955) (@navidcy)
  • Fix typo in grids doc (#4956) (@awiteck)
  • Add "it" to operations doc for clarity (#4957) (@awiteck)
  • Remove duplicate citation for DJ4Earth paper (#4959) (@navidcy)
  • Update MakieExt for Makie v0.24 + add tests (#4960) (@navidcy)

Closed issues:

  • nodes() returns the full grid when given a smaller view of a Field (#4729)
  • compute!(field, time) doesn't update status of field (#4944)
  • [doc] Add README-zh-CN.md (#4948)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.101.2

Oceananigans v0.101.2

Diff since v0.101.1

Merged pull requests:

  • Try reusing the julia path for distributed tests (#4783) (@simone-silvestri)
  • Change regularize_forcing to materialize_forcing, plus refine model_forcing interface (#4930) (@glwagner)
  • import OutputReaders in Reactant extension (#4935) (@simone-silvestri)
  • Introduce Abstract formulation types for FourierTridiagonalPoissonSolver (#4936) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.101.1

Oceananigans v0.101.1

Diff since v0.101.0

Merged pull requests:

  • Add missing method for ReactantState architecture (#4931) (@simone-silvestri)
  • Don't materialize gradients by default (#4933) (@glwagner)
  • Bump version from 0.101.0 to 0.101.1 (#4934) (@giordano)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.101.0

Oceananigans v0.101.0

Diff since v0.100.7

Breaking changes

Merged pull requests:

  • Implicit free surface formulation for NonhydrostaticModel (#4740) (@glwagner)
  • Create a Simulation tutorial + few fixes for DateTime clocks (#4834) (@glwagner)
  • Update CI to Julia version to 1.12.0 (#4836) (@navidcy)
  • Materialize buoyancy gradients for use in parameterizations (#4837) (@simone-silvestri)
  • Allow initialization of empty FieldDatasets similar to methods for FieldTimeSeries and define set! behaviour for FieldDataset (#4866) (@erin-atkinson)
  • Fix type inference failure in AbstractOperations (#4870) (@simone-silvestri)
  • Clean up minor irregularities in tilted_bottom_boundary_layer (#4878) (@glwagner)
  • Fix RotatedLatitudeLongitudeGrid and add more tests (#4879) (@glwagner)
  • Move float_or_date_time in NCDatasetsExt (#4884) (@navidcy)
  • Update blurb about Oceananigans contributors in README and docs (#4886) (@ali-ramadhan)
  • Fix and improve show methods for CATKEEquation and CATKEMixingLength (#4895) (@ali-ramadhan)
  • CATKE: Clamp TKE diffusivity (#4897) (@ali-ramadhan)
  • Add new paper citation to Oceananigans section (#4899) (@navidcy)
  • [docs] Use @example for distributed grid examples (#4900) (@giordano)
  • Typo in BuoyancyFormulations (#4901) (@simone-silvestri)
  • Add paper in list (#4903) (@navidcy)
  • Simplify and add tests for prettysummary(::Function) (#4905) (@giordano)
  • (0.101.0) Export public Smagorinsky constructors (#4910) (@glwagner)
  • Add new reference for Juliana Tool evaluation (#4913) (@navidcy)
  • Extend API to allow passing a buffer scheme to advection schemes (#4914) (@simone-silvestri)
  • Don't use Float64 in boundary conditions docs, its bad practice (#4915) (@glwagner)
  • Fix typo: DescreasingOrderAdvectionScheme -> DecreasingOrderAdvectionScheme` (#4917) (@simone-silvestri)
  • import BuoyancyForce in MultiRegion (#4918) (@simone-silvestri)
  • fill halo regions of OnDisk field time series when loading (#4919) (@simone-silvestri)
  • Correctly load _part*.jld2 files in FieldTimeSeries (#4921) (@simone-silvestri)
  • Add Peng et al. 2025 (#4922) (@navidcy)
  • Use default fallback for isapprox on Fields (#4924) (@giordano)
  • Change diffusivity_fields to closure_fields (#4925) (@glwagner)
  • import xesmf_coordinates from XESMF.jl (#4926) (@simone-silvestri)
  • Update docs to explain that tested Julia version is 1.12 (#4928) (@navidcy)

Closed issues:

  • Type instability in reduction operators (#4869)
  • CubedSphere does not export SphericalGeometry (#4881)
  • Persistent warning about IntervalArithmetic when building the docs (#4883)
  • CATKE show methods missing some parameters (#4893)
  • CᵘⁿD in CATKEEquation is described incorrectly (#4894)
  • CATKE TKE diffusivity not being clamped (#4896)
  • CUDA-versions-related error on Nvidia V100 (#4907)
  • Fix scalar operations in isapprox between Field (#4920)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 9 months ago

Oceananigans.jl - v0.100.7

Oceananigans v0.100.7

Diff since v0.100.6

Merged pull requests:

  • (0.100.7) Update Oceananigans to use non-uniform conformal cubed sphere grid from CubedSphere.jl (#4724) (@siddharthabishnu)
  • Add new papers to Oceananigans references (#4867) (@navidcy)
  • Add on_architecture method for XESMF.Regridder (#4871) (@xkykai)
  • Add some missing Oxford commas (#4874) (@navidcy)

Closed issues:

  • Multi-GPU performance/benchmarks (#4872)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.6

Oceananigans v0.100.6

Diff since v0.100.5

Merged pull requests:

  • Docs, Examples, and Validation for the XESMF extension (#4823) (@navidcy)
  • Add missing import when extending FieldBoundaryConditions in MultiRegion (#4860) (@navidcy)
  • Rename 'bcs' to 'boundary_conditions' in on_architecture for FieldTimeSeries (#4863) (@xkykai)
  • Pass correct kwargs... in distributed tripolar fill_halo_event! (#4865) (@simone-silvestri)

Closed issues:

  • Further work on OceananigansXESMF extension (#4818)
  • on_architecture(fts::FieldTimeSeries) fails because fts has no field bcs (#4862)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.5

Oceananigans v0.100.5

Diff since v0.100.4

Merged pull requests:

  • (0.100.5) Fix outputting index-reduced fields like the free surface height (#4567) (@ali-ramadhan)
  • Add fields to implicit_step! in tke_timestep! (#4859) (@simone-silvestri)

Closed issues:

  • Unable to output η using NetCDFWriter (#4384)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.4

Oceananigans v0.100.4

Diff since v0.100.3

Merged pull requests:

  • Clean up unnecessary splatting and allow fields to be passed in the implicit solver (#4383) (@simone-silvestri)
  • Implement MixedBoundaryCondition (aka RobinBoundaryCondition) (#4723) (@glwagner)
  • Define keys for FieldDataset (#4735) (@erin-atkinson)
  • Some quality of life changes to distributed functions (#4838) (@simone-silvestri)
  • Improve benchmark tests (#4842) (@simone-silvestri)
  • Improve the overview of the Models docs tutorial (#4843) (@glwagner)
  • Update CubedSphere version range in Project.toml (#4846) (@navidcy)
  • Clean up VarianceDissipation (#4850) (@simone-silvestri)
  • Reorder Buildkite test group execution order to speed up test builds (#4854) (@ali-ramadhan)
  • Accomodate CUDA@5.8.5 in Project.toml temporarily (#4856) (@xkykai)
  • Bump version from 0.100.3 to 0.100.4 (#4858) (@navidcy)

Closed issues:

  • CombinationBoundaryCondition to complement Gradient and Value boundary conditions (#4490)
  • Speed up test builds by just reordering the test groups (#4853)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.3

Oceananigans v0.100.3

Diff since v0.100.2

Merged pull requests:

  • Move defaults to central location for gravitational acceleration, rotation rate, and planet radius (#4833) (@glwagner)
  • Fix mt problem with julia 1.12 (#4840) (@simone-silvestri)
  • Bump patch release 0.100.3 (#4841) (@navidcy)

Closed issues:

  • mediterranean_simulation_with_ecco_restoring.jl example (#4835)
  • Julia 1.12.0: ERROR: LoadError: FieldError: type Core.TypeName has no field mt (#4839)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.2

Oceananigans v0.100.2

Diff since v0.100.1

Merged pull requests:

  • (0.100.2) Refactor checkpointing restoring + set particles from checkpointing only if they exist (#4749) (@simone-silvestri)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.1

Oceananigans v0.100.1

Diff since v0.100.0

Merged pull requests:

  • Eliminate GridMetricOperation and create node metrics (#4805) (@glwagner)
  • (0.100.1) Set CUDA.jl compatibility to v5.9+ (#4824) (@ali-ramadhan)
  • Include AbstractOperations in distributed reductions (#4829) (@simone-silvestri)
  • Minor change in regridder interface (#4830) (@simone-silvestri)
  • Support time stepping with DateTime clock (#4831) (@glwagner)
  • Simplify README header (#4832) (@glwagner)

Closed issues:

  • "Number of threads per block exceeds kernel limit" when computing a reduction on a KernelFunctionOperation on some GPUs (#4047)
  • Calculating cell time scale in triply bounded ImmersedBoundaryGrid errors on GPU (#4663)
  • ERROR: Number of threads per block exceeds kernel limit (640 > 512). for small immersed-boundary problems with TimeStepWizard and PartialCellBottom (#4694)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 10 months ago

Oceananigans.jl - v0.100.0

Oceananigans v0.100.0

Diff since v0.99.2

Breaking changes

Merged pull requests:

  • Symmetrizing Laplacian in order to use conjugate gradient in nonuniform grids (#4563) (@xkykai)
  • (0.100.0) NamedCoordinate -> NamedDiscretization (#4672) (@navidcy)
  • Add methods to write a field directly to NetCDF (#4730) (@tomchor)
  • Add a new tutorial for Models (#4790) (@glwagner)
  • Further enhancements of the XESMF extension (#4819) (@navidcy)
  • Fix ranks not seeing the correct device (#4827) (@simone-silvestri)

Closed issues:

  • ConjugateGradientPoissonSolver blows up with PartialCellBottom (#4634)
  • FourierTridiagonalPoissonSolver's multiply_by_spacing! doesn't use immersed boundary-aware spacing operators (#4692)
  • Laplacian operator for ConjugateGradientPoissonSolver is nonsymmetric for nonuniform grids (#4693)
  • Lowering Enzyme testing time (#4776)
  • DOCUMENTER_KEY missing from Nautilus; Docs/Doc Previews aren't being deployed (#4801)
  • XESMF doesn't work on GPU (#4821)
  • GPU memory not distributed correctly over multiple devices (#4826)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.99.2

Oceananigans v0.99.2

Diff since v0.99.1

Add new extension for XESMF.jl that allows conservative regridding for CenterFields.

Merged pull requests:

  • (0.99.2) Add XESMF.jl extension to use xESMF to compute tracer regridding weights (#4782) (@taimoorsohail)
  • Collection of optimizations for mean! and _mean (#4792) (@glwagner)
  • Compute Average in two steps rather than one (#4795) (@glwagner)
  • Clarify few things in tripolar grid docstring (#4802) (@navidcy)
  • Some code clean-up (#4806) (@tomchor)
  • Bump Enzyme compat (#4807) (@wsmoses)
  • Remove reactant from distributed tests (#4808) (@simone-silvestri)
  • Fix bug in computing slopes in the corner (#4810) (@simone-silvestri)
  • Add back sparse matrix utils (#4815) (@simone-silvestri)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.99.1

Oceananigans v0.99.1

Diff since v0.99.0

Merged pull requests:

  • Remove misleading benchmark scripts (#4787) (@glwagner)
  • Removing Reactant extension method for materialize_immersed_boundary (#4789) (@jlk9)
  • Fix TracedStepRangeLen reference for latest Reactant (#4793) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.99.0

Oceananigans v0.99.0

Diff since v0.98.1

Breaking changes

  • HeptadiagonalSolver no longer supported

Merged pull requests:

  • Remove the HeptadiagonalSolver (#4386) (@simone-silvestri)
  • Sets last_Δt, last_stage_Δt for Reactant grids equal to regular grids (#4784) (@jlk9)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.98.1

Oceananigans v0.98.1

Diff since v0.98.0

Merged pull requests:

  • Regularize auxiliary boundary conditions (#4722) (@glwagner)
  • Remove support for MultiRegionObject split on different devices (#4738) (@simone-silvestri)
  • Move Buildkite CI to Nautilus (#4755) (@glwagner)
  • Permit Missing bcs on Face Fields (#4756) (@glwagner)
  • Add function for resetting the model clock (#4757) (@glwagner)
  • Add a test for SRK3 checkpointer (#4763) (@simone-silvestri)
  • Do not specify JULIA_NUM_THREADS or JULIA_NUM_PRECOMPILE_TASKS for Buildkite CI (#4765) (@ali-ramadhan)
  • Once again, fix warning message formatting in SplitRungeKutta3TimeStepper (#4766) (@navidcy)
  • Change closure_turbulent_velocity to closure_auxiliary_velocity (#4767) (@glwagner)
  • Enforce (temporarily) CUDA.jl < v5.8.3 for Buildkite CI docs (#4769) (@ali-ramadhan)
  • Update docs/Project.toml CUDA compat entry (#4770) (@navidcy)
  • (0.98.1) Make convert_for_netcdf() accesible to users (#4772) (@tomchor)
  • Eliminate Reactant set_to_field (#4773) (@jlk9)
  • Add compute_flux_bc_tendencies! to Reactant extension of time_step (#4775) (@jlk9)

Closed issues:

  • Function closure_turbulent_velocity has a confusing name (#4745)
  • Can't reconstruct FieldTimeSeries of Face field with OpenBoundaryCondition (#4754)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.98.0

Oceananigans v0.98.0

Diff since v0.97.8

Breaking changes

  • new interface for OpenBoundaryConditions where a new kwarg scheme specified as OpenBoundaryCondition(scheme = ...) specifies the numerical treatment of the boundary (see PerturbationAdvection).

Merged pull requests:

  • Add grid reconstruction utilities to reconstruct Grids from NetCDF outputs (#4660) (@tomchor)
  • (0.98.0) Modify interface for OpenBoundaryConditions with schemes and use Tuples in boundary_mass_fluxes (#4687) (@tomchor)
  • Refactor fill_halo_regions!: Reduce boundary conditions slowdown (#4706) (@simone-silvestri)
  • Bump actions/checkout from 4 to 5 (#4712) (@dependabot[bot])
  • Use CG as fallback solver for all cases (#4720) (@glwagner)
  • CompatHelper: bump compat for JLD2 to 0.6, (keep existing compat) (#4726) (@github-actions[bot])
  • Indexing for a CallableCoordinate (#4727) (@simone-silvestri)
  • Fix warning message formatting in SplitRungeKutta3TimeStepper (#4728) (@navidcy)
  • A new formulation for the split RK3 timestepper (#4737) (@simone-silvestri)
  • Extend the interior function to MultiRegionFields (#4743) (@siddharthabishnu)
  • Extend minimum spacing functions without location arguments to MultiRegionGrids (#4744) (@siddharthabishnu)
  • Add a docstring for RotatedLatitudeLongitudeGrid (#4746) (@glwagner)
  • Add Wang et al. 2025 (#4752) (@navidcy)
  • Support equality between GPU fields and CPU fields (#4753) (@glwagner)

Closed issues:

  • Equality operation does not work between fields on different architectures (#4751)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 11 months ago

Oceananigans.jl - v0.97.8

Oceananigans v0.97.8

Diff since v0.97.7

Merged pull requests:

  • RK3 CATKE Implementation (#4705) (@simone-silvestri)
  • Informative error when using LagrangianParticles on Distributed archs (#4709) (@navidcy)
  • Correct the implicit Split-RK3 diffusion implementation (#4710) (@simone-silvestri)
  • Update Atkinson et al. 2025 (#4716) (@erin-atkinson)
  • Add Shikanian and Parfenyev (2025) (#4717) (@navidcy)
  • Bump patch release (#4718) (@navidcy)

Closed issues:

  • Error: running Lagrangian Particles in Distributed(CPU()) mode (#4697)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] 12 months ago

Oceananigans.jl - v0.97.7

Oceananigans v0.97.7

Diff since v0.97.6

Merged pull requests:

  • Move storage space to from MutableVerticalDiscretization to ZStarCoordinate (#4686) (@simone-silvestri)
  • Fix some inference problems in the launch! function (#4699) (@simone-silvestri)
  • Create methods for equality of ImmersedBoundaryGrids (#4700) (@tomchor)
  • Regularize field boundary conditions with a location rather than a name (#4704) (@simone-silvestri)
  • Just updating this branch with recent changes to main. (#4707) (@jlk9)

Closed issues:

  • Unable to use continuous function with ValueBoundaryCondition (#4702)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.6

Oceananigans v0.97.6

Diff since v0.97.5

Merged pull requests:

  • NonhydrostaticModel on a LatitudeLongitudeGrid (#4654) (@simone-silvestri)
  • Fix distributed HydrostaticFreeSurfaceModel test that seem to break with memory error (#4666) (@navidcy)
  • Filter warnings from doctest output (#4673) (@navidcy)
  • Only enforce open boundary mass conservation for open boundaries (#4674) (@navidcy)
  • CompatHelper: bump compat for Reactant in [weakdeps] to 0.2, (keep existing compat) (#4675) (@github-actions[bot])
  • CompatHelper: bump compat for AMDGPU in [weakdeps] to 2, (keep existing compat) (#4676) (@github-actions[bot])
  • [Reactant] Add recursive specialization for BinaryOperation (#4680) (@wsmoses)
  • Make nested functions in conditional differences immersed metric-aware (#4685) (@xkykai)
  • Allow users to reuse a predefined schedule in many output writers (#4690) (@navidcy)
  • Update spacings calls to enable array operations. (#4691) (@jlk9)
  • (0.97.6) Move the computation of flux BC before the time-stepping (#4696) (@simone-silvestri)

Closed issues:

  • Add CATKE to documentation (#2330)
  • PerturbationAdvectionOpenBoundaryCondition leads to nonzero mass fluxes into the domain (#4596)
  • Can't open a grid on GPU (#4679)
  • Open boundary conditions on a Bounded topology is a misnomer (#4681)
  • Conditional difference operator like δxᶜᶜᶜ with nested function operations does not see immersed metrics in inner function evaluation (#4684)
  • OutputWriters don't actuate if a pre-defined schedule that was already used in a different OutputWriter is provided (#4689)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.5

Oceananigans v0.97.5

Diff since v0.97.4

Merged pull requests:

  • (0.97.5) Enforce mass-conservation inside domains with Radiation OpenBoundaryConditions (#4627) (@tomchor)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.4

Oceananigans v0.97.4

Diff since v0.97.3

Merged pull requests:

  • Fix a couple of typos in grids.md (#4667) (@tomchor)
  • (0.97.4) Speed up reductions and remove inference problems in Field constructor (#4668) (@simone-silvestri)
  • Correct regularization for ImmersedBoundaryCondition (#4670) (@simone-silvestri)

Closed issues:

  • set! not setting values on the edges (#4664)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.3

Oceananigans v0.97.3

Diff since v0.97.2

Merged pull requests:

  • Fix boundary conditions with general vertical coordinate (#4651) (@simone-silvestri)
  • CompatHelper: bump compat for AMDGPU in [weakdeps] to 2, (keep existing compat) (#4656) (@github-actions[bot])
  • Bump patch release (#4665) (@navidcy)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.2

Oceananigans v0.97.2

Diff since v0.97.1

Merged pull requests:

  • Docs for Generalized vertical coordinate (+ discrete implementation) + ZStar vertical coordinate for HydrostaticFreeSurfaceModel (#4588) (@simone-silvestri)
  • (0.97.2) Adds few utilities for stretched coordinates + Docs/Grids section on how to use these utils (#4623) (@navidcy)
  • Generalize Docs/Simulation tips section for any GPU architectures (#4650) (@navidcy)
  • Fix for distributed unit tests (#4662) (@simone-silvestri)

Closed issues:

  • Docs/Simulation tips section needs minor update after moving CUDA to an extension (#4647)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.1

Oceananigans v0.97.1

Diff since v0.97.0

Merged pull requests:

  • @allowscalar when indexing FieldTimeSeries times on the GPU (#4652) (@simone-silvestri)
  • add mailmap (#4657) (@vchuravy)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.97.0

Oceananigans v0.97.0

Diff since v0.96.35

Breaking changes

  • CUDA-related functionality moved into an extension. Using CUDA-enabled GPU now requires loading CUDA.jl package, e.g.,

    using Oceananigans
    using CUDA
    
    grid = RectilinearGrid(GPU(), size=(10, 10, 10), extent=(1, 1, 1))
    

Merged pull requests:

  • (0.97.0) Move CUDA stuff to an extension (#4499) (@michel2323)
  • Remove default particles from checkpointing; also only add time stepper if needed (#4598) (@simone-silvestri)
  • Pin Makie @ v0.23 (#4635) (@navidcy)
  • Clock enhancements (#4637) (@navidcy)
  • Small improvement in Average constructor (#4638) (@tomchor)
  • Minor enhancement to show(io, ::OutputWriters) (#4640) (@navidcy)
  • Add NetCDFWriter docstring in Docs/Appendix/Library (#4642) (@navidcy)
  • Remove redundant clock.last_Δt = Δt step in SplitExplicitRK3 timestepper (#4643) (@navidcy)
  • Add SplitExplicitFreeSurface checkpointer tests (#4644) (@navidcy)
  • Add using CUDA in benchmark tests + remove extra CUDA-specific methods from tests (#4646) (@simone-silvestri)
  • CompatHelper: add new compat entry for GPUArraysCore at version 0.2, (keep existing compat) (#4648) (@github-actions[bot])
  • Bump the compat entry for AMDGPU.jl (#4649) (@amontoison)

Closed issues:

  • HydrostaticFreeSurfaceModel dynamics tests on ConformalCubedSphereGrid with fully explicit treatment of the free surface (#3265)
  • Move CUDA into an extension (#3481)
  • NetCDFWriter docstring missing from Docs/Appendix/Library (#4641)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.35

Oceananigans v0.96.35

Diff since v0.96.34

Merged pull requests:

  • Don't initialize callback every time_step (#4212) (@glwagner)
  • Fix saveproperty! for a ConstantField (#4393) (@simone-silvestri)
  • Add output functionality for conformal cubed sphere fields (#4599) (@siddharthabishnu)
  • Add checkpointing support for conformal cubed sphere fields (#4602) (@siddharthabishnu)
  • CompatHelper: bump compat for Reactant in [weakdeps] to 0.2, (keep existing compat) (#4625) (@github-actions[bot])
  • Change closure_constant() to closure_coefficient() (#4631) (@tomchor)
  • Bump to 0.96.35 (#4632) (@glwagner)

Closed issues:

  • How to save properties of ImmersedBoundaryGrid with NetCDFOutputWriter? (#3536)
  • Return view of Array/CuArray for *nodes rather than view(OffsetArray()) (#4620)
  • Should we change closure_constant() to closure_coefficient()? (#4630)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.34

Oceananigans v0.96.34

Diff since v0.96.33

Merged pull requests:

  • Fix the problem that particles may be out of bounds when velocity is too large (#3349) (@Yixiao-Zhang)
  • Introduce closure_constant interface for AMD and SmagorinskyLilly (#3370) (@glwagner)
  • Use triads (Griffies et al 1998) to compute the skew flux (#3901) (@glwagner)
  • Fix GPU indexing flat fields (#4090) (@simone-silvestri)
  • Add time to Field generated from FieldTimeSeries (#4141) (@glwagner)
  • Add tests for ConjugateGradientPoissonSolver with PerturbationAdvectionOpenBoundaryConditions in ImmersedBoundaryGrids (#4539) (@tomchor)
  • Small code refactorings in Utils (#4587) (@thimotedupuch)
  • CompatHelper: bump compat for MakieCore in [weakdeps] to 0.10, (keep existing compat) (#4601) (@github-actions[bot])
  • Updating barotropic gyre validation script to run with current package interface (#4608) (@matt-graham)
  • CompatHelper: bump compat for Makie in [weakdeps] to 0.24, (keep existing compat) (#4611) (@github-actions[bot])
  • Adds DroguedDynamics for lagrangian particles (#4612) (@jagoosw)
  • Example with TEOS10EquationOfState + "single wrapped" *nodes (#4615) (@glwagner)
  • Remove grid arg/kwarg from Centered and Upwind constructors (#4616) (@glwagner)
  • Replaces duplicate κᶜᶜᶜ with κᶠᶠᶠ (#4617) (@navidcy)
  • Update papers list (#4619) (@navidcy)
  • Drop TimesDates from direct dependency (#4622) (@navidcy)

Closed issues:

  • Docstrings for modules (#728)
  • Validation tests for immersed boundary implementations (#775)
  • Example using nonlinear equation of state (#802)
  • Find a way to build Literate.jl examples in isolation before makedocs (#1053)
  • Documenting advection schemes (#1318)
  • Abstraction for vector fields (#1585)
  • Fix warning message for halo size (#1666)
  • Re-implementing the HydrostaticFreeSurfaceModel with Generalized Vertical Coordinates (GVC) (#1679)
  • Oceananigans.BuoyancyModels module should include functionality to compute isopycnal slopes (#2014)
  • Need new name for the category BuoyancyTracer, SeawaterBuoyancy (#2022)
  • CFL diagnostic is not very useful, and we don't need to depend on Tullio (#2037)
  • Floating point / type restrictions in sparse matrix solver utils (#2125)
  • Test needed for ConsecutiveIterations schedule (#2154)
  • Would we need a wall-time regression test? (#2176)
  • Throw helpful error if times[n] cannot be located when constructing FieldTimeSeries (#2234)
  • Serialize boundary condition arrays as Array rather than CuArray? (#2240)
  • Distinguish between "masking" and "enforcing impenetrability" in immersed boundary routines (#2249)
  • trying to mask with a new immersed boundary method PartialCellBottom (#2251)
  • Throw helpful message for common NamedTuple typo? (#2269)
  • Implementing k-epsilon (#2278)
  • Adding a "Why Julia?" and Mission/Goals section on the Documentation (#2308)
  • Can't use kwarg velocities with HydrostaticFreeSurfaceModel for pre-allocated fields (#2341)
  • set! with functions does not work with MultiArch (#2350)
  • Improving HeptadiagonalIterativeSolver and MatrixImplicitSolver (#2418)
  • Should we explain fill_halo_regions!() in the docs? (#2442)
  • Proposed enhancements/changes in Docs (#2448)
  • Instability of IsopycnalSkewSymmetricDiffusivity at high resolution (#2453)
  • Cannot create output writer when output contains a sliced Field (#2497)
  • Multi-layer shallow water model (#2507)
  • Interface for allocating the prognostic fields and diagnostic fields at the same time (#2509)
  • User-facing on_grid utility (#2534)
  • Docstrings for getdevice and switch_device! (#2622)
  • Do we need a custom Reference? (#2623)
  • ConstantCartesianCoriolis test dominates GPU testing wall time (#2647)
  • Performance of Preconditioned Conjugate Gradient solver (#2728)
  • General matrix constructor for Multigrid solver on GPU uses scalar operations (#2737)
  • set! between FieldTimeSeries and Field (#2783)
  • Is the velocity field for NonhydrostaticModel divergence free when using ImmersedBoundaryGrid? (#2891)
  • MultiRegion not working on multiple GPUs (#2930)
  • Docs for Biogeochemistry module (#2974)
  • Repository size (#3031)
  • Functions and types defined at top level indicate code disorganization (#3048)
  • ImmersedBoundaries module should be defined before Advection and TurbulenceClosures (#3062)
  • Proposal for sustainable validation scripts (#3076)
  • User interface for outputting boundary conditions (#3082)
  • Refactor Simulations + simulations infrastructure to be loaded first (#3088)
  • Utility for transforming Models with new auxiliary fields (#3099)
  • Establishing a standard style for structs (#3136)
  • Don't hardcode coordinate and metric halo fillings for the ConformalCubedSphereGrid (#3199)
  • Some things in DistributedComputations look like they belong in Models (#3281)
  • Encourage, document, test using Field for boundary conditions rather than Array (#3298)
  • Use English names instead of mathematical symbols in the user API? (#3301)
  • buoyancy.model -> buoyancy.formulation? (#3317)
  • Global reductions for Distributed Fields (#3337)
  • Can we calculate a Field at every N grid points? (#3460)
  • Kernel size calculation for sliced field halo filling seems to be wrong (#3473)
  • Performance testing (#3492)
  • ImmersedPoissonSolver is slow (#3552)
  • Vector rotation for grids where the "intrinsic" and "extrinsic" coordinate system are different (#3625)
  • Egregious errors in NonhydrostaticModel simulations on ImmersedBoundaryGrid when nonhydrostatic pressure is not separated (#3677)
  • Reducing parameter space usage by LatitudeLongitudeGrid (#3693)
  • Docstring for WENOVectorInvariant is too terse and does not have examples (#3703)
  • Convert code blocks documenting ImmersedBoundaryCondition to doctests (#3705)
  • Do intrinsic_vector and extrinsic_vector belong in Operators? (#3718)
  • Is HydrostaticFreeSurfaceModel supposed to support a rigid lid? (#3735)
  • Update Buildkite version on Tartarus and Sverdrup (#3751)
  • Implement KrylovPoissonSolver (#3803)
  • Advection schemes should depend on the grid for spacings and float type inference (#3857)
  • Improve active cells map kernels (#3918)
  • GPU issue indexing flat fields (#4044)
  • Installation issue for Oceananigans@v0.95.9 (#4091)
  • Comparing small values using for FieldTimeSeries (#4100)
  • Issue with TimeStepWizard on GPU() (#4105)
  • MultipleForcing{4} takes forever to compile (#4128)
  • More noise in vorticity (#4131)
  • Default Poincare coefficient for AMD is inappropriately small (#4367)
  • Scalar indexing for λnodes and φnodes with TripolarGrid (#4541)
  • No tests for ConjugateGradientSolver in a triply-bounded ImmersedBoundaryGrid with a flux boundary condition (#4603)
  • Simulation time series key "t" missing after second restart from pickup file (#4626)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.33

Oceananigans v0.96.33

Diff since v0.96.32

Merged pull requests:

  • Integrate cubed sphere functionality with halo filling and core infrastructure updates (#4538) (@siddharthabishnu)
  • fix mean pressure in FFT preconditioner for ConjugateGradientPoissonSolver for immersed boundaries (#4554) (@xkykai)
  • Remove the use of indices for storage in PerturbationAdvection (#4578) (@tomchor)
  • Remove shift in FFTBasedPoissonSolver and multiply by negative one in preconditioning for Conjugate GradientPoissonSolver (#4582) (@xkykai)
  • Fix transform planning for uniform grids used by FourierTridiagonalPoissonSolver (#4583) (@glwagner)
  • (0.96.33) Correct diffusion with a non-linear free surface (#4589) (@simone-silvestri)
  • Add both float types to AMDGPU test suite (#4592) (@navidcy)
  • Add PiecewiseLinearMask (#4607) (@tomchor)

Closed issues:

  • ConjugateGradientPoissonSolver with FFT-based preconditioner does not maintain zero mean pressure (#4553)
  • FourierTridiagonalPoissonSolver doesn't work with regular grids (#4580)
  • ConjugateGradientPoissonSolver's FFTBasedPoissonSolver doesn't need to flip sign since it's already semi-positive definite (#4581)
  • Issue with Internal Tide Test Case – Velocity Field Returns NaN (internal_tide.jl) (#4595)
  • Unable to Replicate MITGCM Simulation (#4604)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.32

Oceananigans v0.96.32

Diff since v0.96.31

Merged pull requests:

  • (0.96.32) Fix zspacing() for PartialCellBottom immersed boundaries and add tests for ImmersedGrids (#4572) (@tomchor)
  • Fix a couple of bugs for immersed cubed sphere (#4574) (@simone-silvestri)

Closed issues:

  • zspacing does not adjust for PartialCellBottom (#4435)
  • Error in the @show method of an immersed ConformalCubedSphereGrid (#4573)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.31

Oceananigans v0.96.31

Diff since v0.96.30

Merged pull requests:

  • Call compute! in constructor for ComputedField (#4531) (@glwagner)
  • Generalize assumed_field_location, plus allow FourierTridiagonalPoissonSolver on regular grid (#4535) (@glwagner)
  • Fix small typo in conjugate_gradient_poisson_solver.jl (#4552) (@tomchor)
  • Support assignment a = b in @apply_regionally (#4566) (@simone-silvestri)
  • Constructor for 1-dimensional KernelParameters (#4568) (@simone-silvestri)
  • Use Makie extension in Kelvin-Helmholtz example (#4569) (@navidcy)
  • Export SplitRungeKutta3TimeStepper a few docstring fixes (typos and rendering) (#4571) (@navidcy)
  • Delete /paper directory (#4575) (@tomchor)
  • Add adapt_structure for ForcingKernelFunction (#4579) (@glwagner)

Closed issues:

  • Confusion about calculation of pressure source term (#4544)
  • Spurious Buoyancy Plume from Immersed Boundary with FFT Pressure Solver (#4564)
  • oneAPI extension tests hanging (#4570)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.30

Oceananigans v0.96.30

Diff since v0.96.29

Merged pull requests:

  • Fix Biharmonic Viscosity on Cubed-Sphere Grid (#3850) (@siddharthabishnu)
  • Creates bottommost_active_node function (#4507) (@tomchor)
  • Shuffle import order to clarify dependencies (#4530) (@glwagner)
  • Implement ForcingOperation plus improvements to show (#4534) (@glwagner)
  • Uncomment test block in test_dynamics.jl (#4542) (@glwagner)
  • Don't search for missing bcs (#4545) (@navidcy)
  • Ensure constancy preservation with nonlinear free surface (#4546) (@simone-silvestri)
  • Correct diffusive dissipation for tuple of closures (#4548) (@simone-silvestri)
  • Fix indexing issues for FieldTimeSeries (#4550) (@simone-silvestri)
  • Add constructor for missing FieldBoundaryConditions (#4557) (@glwagner)
  • (0.96.30) Fix vector rotation operation (#4560) (@simone-silvestri)

Closed issues:

  • Biharmonic viscosity on Cubed-Sphere grid (#3849)
  • Problems with new output readers (#4549)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.29

Oceananigans v0.96.29

Diff since v0.96.28

Merged pull requests:

  • (0.96.29) Add adapt structure for BuoyancyForce (#4543) (@glwagner)

Closed issues:

  • Docs aren't being created for all registered versions (#4413)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.28

Oceananigans v0.96.28

Diff since v0.96.27

Merged pull requests:

  • Solving Poisson equation for p * dt instead of p (#4276) (@xkykai)
  • Changes default AMD poincare coefficient (#4494) (@jagoosw)
  • Add distributed reductions (#4497) (@navidcy)
  • Clean up update_boundary_conditions! (#4503) (@glwagner)
  • Fix some FieldTimeSeries indexing bugs (#4505) (@loisbaker)
  • Use default prettyurls=true in docs build (#4520) (@navidcy)
  • Fix a bug in the handshake macro (#4521) (@simone-silvestri)
  • Improve variance dissipation computation (#4522) (@simone-silvestri)
  • RK3 variance dissipation support (#4523) (@simone-silvestri)
  • Re-zero immersed fields after creating plotting data (#4524) (@glwagner)
  • FirstTimeStep: don't call update_state twice in a row (#4525) (@wsmoses)
  • Don't time-step TKE unless warranted (add clock to CATKE and TKEDissipation) (#4526) (@glwagner)
  • Fix warning message for set timestepper (#4528) (@simone-silvestri)
  • Revert "Don't time-step TKE unless warranted (add clock to CATKE and … (#4533) (@wsmoses)
  • Splitting substep_turbulent_kinetic_energy! into two kernels (#4536) (@jlk9)
  • Fix VarianceDissipation docstring links (#4537) (@navidcy)
  • Fix indentation in docs/make.jl (#4540) (@tomchor)

Closed issues:

  • ConjugateGradientPoissonSolver fails to converge/is numerically unstable for extremely small timesteps (#4067)
  • Simulation with ImmersedBoundary blows up on the first step, but only when when plotting a field first (#4519)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.27

Oceananigans v0.96.27

Diff since v0.96.26

Merged pull requests:

  • Variance dissipation computation (#3877) (@simone-silvestri)
  • Small improvements to PerturbationAdvectionOpenBoundaryCondition interface (#4394) (@tomchor)
  • Fix incorrect type parameter count in ConformalCubedSpherePanel and ConformalCubedSpherePanelGrid definitions (#4500) (@siddharthabishnu)
  • Fix out-of-bounds access in vorticity computation at halo boundaries on conformal cubed sphere panels (#4501) (@siddharthabishnu)
  • Fill halo regions before interpolating rotated velocities (#4508) (@glwagner)
  • Try to update_state during initalization for ReactantModel (#4509) (@glwagner)
  • Add Bisits et al. 2025 (#4511) (@navidcy)
  • Try running Langmuir turbulence example on GPU with higher resolution (#4512) (@glwagner)
  • Add a warning if trying to launch a kernel with workspec () instead of throwing an error (#4514) (@simone-silvestri)
  • Warn if using a Distributed architecture using a single rank (#4515) (@simone-silvestri)
  • Update Project.toml (#4518) (@navidcy)

Closed issues:

  • Error running a distributed nonhydrostatic model on CPU (#4483)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] about 1 year ago

Oceananigans.jl - v0.96.26

Oceananigans v0.96.26

Diff since v0.96.25

Merged pull requests:

  • Include background tracer and velocities in closure tendency terms (#3646) (@glwagner)
  • Resolve ambiguity when setting MultiRegionField with a number (#4489) (@siddharthabishnu)
  • Refactor getbc interface (#4491) (@glwagner)
  • Fix dot implementation (#4493) (@simone-silvestri)
  • [docs] Use non-deprecated syntax for MPI.mpiexec (#4496) (@giordano)
  • Add BoundaryConditionOperation (#4506) (@glwagner)
  • Update Project.toml (#4510) (@glwagner)

Closed issues:

  • Oceananigans on AMD GPUs (#1546)
  • Having a domain that's periodic in the "gravity" direction doesn't work for gravity_unit_vector = NegativeZDirection() (#3290)
  • Update syntax of MPI.mpiexec in docs (#4495)
  • Refactor JRA55 to use the DataWrangling Metadata, Bounding_Box, etc functionality (#4498)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.25

Oceananigans v0.96.25

Diff since v0.96.24

Merged pull requests:

  • Store computational coordinates in OrthogonalSphericalShellGrid for non-uniform conformal mappings (#4295) (@siddharthabishnu)
  • ReactantExt: Fix conditional operator ordering (#4472) (@wsmoses)
  • Interpret u, v within set! on OrthogonalSphericalShellGrid as an extrinsic vector by default (#4479) (@glwagner)
  • Clean up LatitudeLongitudeGrid from rectilinear grid (#4480) (@tomchor)
  • Update Fields.jl (#4481) (@glwagner)
  • Reactant: fix catke type conversions (#4482) (@wsmoses)
  • Add extrema(c::AbstractField) (#4484) (@Sbozzolo)
  • Bump to 0.96.25 (#4486) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.24

Oceananigans v0.96.24

Diff since v0.96.23

Merged pull requests:

  • Some more fixing for polar BC (#4463) (@simone-silvestri)
  • Add a constructor for LatitudeLongitudeGrid from RectilinearGrid (#4465) (@glwagner)
  • Better arg name: size -> side (#4469) (@navidcy)
  • Add Atkinson et al 2024 in papers list (#4471) (@navidcy)
  • implement default vertical coordinate (#4474) (@glwagner)
  • Fix show for MutableVerticalDiscretization (#4476) (@glwagner)
  • Fix default auxiliary bc for y-Flat lat-lon grids (#4477) (@glwagner)
  • Bump to 0.96.24 (#4478) (@glwagner)

Closed issues:

  • BoundsError using WENO and stretched grids (#2717)
  • Can't @show a grid with MutableVerticalDiscretization and vector interfaces on GPU (#4475)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.23

Oceananigans v0.96.23

Diff since v0.96.22

Merged pull requests:

  • Add Distributed grids section in Grids tutorial (#3698) (@navidcy)
  • support for active_cells_map in kernels (#3920) (@simone-silvestri)
  • Fix Zstar-RK3 (#4362) (@simone-silvestri)
  • Remove assumption about X/YFaceField on TripolarGrid by generalizing default_auxiliary_boundary_condition (#4368) (@glwagner)
  • Export CATKE and k-ε (#4449) (@navidcy)
  • Bugfix in RK3 previous fields (#4456) (@simone-silvestri)
  • Bugfix BC default (#4457) (@simone-silvestri)
  • Improve and test error handling for vertical level specification in grid construction (#4461) (@NoraLoose)
  • Make NetCDFWriter work with PartialCellBottom grids (#4462) (@tomchor)

Closed issues:

  • Renaming NetCDFOutputWriter to NetCDFWriter (#3936)
  • Ax, Ay and Az are negative in a Tripolar grid (#4318)
  • NetCDFWriter doesn't work for PartialCellBottom grids (#4416)
  • Reading .jld2 with FieldTimeSeries() errors under new Oceananigans version (#4454)
  • Scalar indexing when outputting a slice with NetCDFWriter and GPUs (#4464)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.22

Oceananigans v0.96.22

Diff since v0.96.21

Merged pull requests:

  • Add a performance benchmark pipeline (#4375) (@simone-silvestri)
  • Improve z-star tracer conservation tests (#4403) (@NoraLoose)
  • Fused multiply add (fma) in stencil operations (#4407) (@simone-silvestri)
  • Remove stretched advection (#4411) (@simone-silvestri)
  • Don't invoke comm buffers on non-distributed grids and move to DistributedComputations (#4414) (@glwagner)
  • Fix summary for PartialCellBottom (#4425) (@tomchor)
  • Add CATKE and GPU dycore paper references (#4426) (@navidcy)
  • Update CATKE docstring (#4427) (@navidcy)
  • Remove trailing spaces part 2 (#4429) (@navidcy)
  • Remove trailing white spaces part 3 (#4430) (@tomchor)
  • Add operators functions for reciprocals of metrics (#4431) (@simone-silvestri)
  • Add newton_div utility for fast (but approximate) mixed-precision computation of divisions (#4432) (@glwagner)
  • Ensure user diffusivity NamedTuple have correct ordering (#4437) (@glwagner)
  • Use tuple instead of vector in tilted_bottom_boundary_layer.jl (#4439) (@simone-silvestri)
  • Compute the difference between the latest main and the PR (#4440) (@simone-silvestri)
  • (0.96.22) Make NetCDFWriter work with GPU grids with stretched dimensions (#4441) (@tomchor)
  • Improve benchmarks yml (#4442) (@simone-silvestri)
  • Making condition size mismatch error a bit more helpful (#4443) (@taimoorsohail)
  • Add Souza et al. 2025 + reorder refs chronologically (#4444) (@navidcy)
  • CompatHelper: add new compat entry for MuladdMacro at version 0.2, (keep existing compat) (#4445) (@github-actions[bot])
  • Use vertical spacing reciprocal in implicit solver (#4447) (@simone-silvestri)
  • Adding the possibility of having dynamical particles (#4448) (@simone-silvestri)

Closed issues:

  • Tracer conservation is broken in ZStar with Julia 1.11.4 (#4340)
  • Improve and Verify Z-Star Tracer Conservation Tests (#4395)
  • NetCDFWriter scalar indexing error on GPU (#4397)
  • Tilted BBL example not working on GPU (#4438)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.21

Oceananigans v0.96.21

Diff since v0.96.20

Merged pull requests:

  • Implement an interface for writing output with Simulation (#4271) (@glwagner)
  • Remove trailing white spaces in code (#4304) (@tomchor)
  • Reduce turbulence closure tests cost (#4380) (@simone-silvestri)
  • Minor cosmetic improvements to internal tide example (#4400) (@glwagner)
  • Intersect indices in output_construction (#4401) (@glwagner)
  • Clean up buildkite pipeline slightly (#4404) (@glwagner)
  • Mask implicit linear coefficient if inside an immersed boundary (#4405) (@simone-silvestri)
  • Further clean up the buildkite yml (#4408) (@glwagner)
  • Fix rendering + reference default_checkpointed_properties in Checkpointer docstring (#4410) (@jbisits)
  • Clean up extra code in test_turbulence_closures.jl (#4415) (@tomchor)
  • Add link to docstring of ConditionalOperations in the docs for various reductions (#4418) (@navidcy)
  • Support Krylov.jl v0.10 (#4419) (@amontoison)
  • Fix adapt for TKEDissipationDiffusivityFields (#4421) (@wsmoses)
  • Bump to 0.96.21 (#4424) (@glwagner)

Closed issues:

  • Turbulence closure tests taking a very long time (#4379)
  • AMDGPU CI (#4398)
  • Simulation callback: Error encountered when updating u_s with time (#4422)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.20

Oceananigans v0.96.20

Diff since v0.96.19

Merged pull requests:

  • Replace IncompleteLU.jl by KrylovPreconditioners.jl (#3789) (@amontoison)
  • Interface to Krylov.jl solvers (#4041) (@amontoison)
  • Test zstar on a tripolar grid (#4360) (@simone-silvestri)
  • Fix summary() for ConjugateGradientPoissonSolver (#4373) (@tomchor)
  • Refactor implicit vertical diffusion solver to avoid passing diffusivity functions to kernel (#4377) (@glwagner)
  • Clean up notation in compute_w kernel (#4378) (@glwagner)
  • Add extensions for AMDGPU.jl and oneAPI.jl (#4381) (@amontoison)
  • add bulidkite pipeline-juliagpu for AMD and oneAPI testing (#4389) (@glwagner)
  • fix: better sharding constructs (#4390) (@avik-pal)
  • Add topology-aware and conditional ops for AbstractArray (#4391) (@glwagner)
  • Change isopycnal_skew_symmetric_diffusivity.jl to use DiffusiveFormulation (#4392) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.19

Oceananigans v0.96.19

Diff since v0.96.18

Merged pull requests:

  • Correctly account for field names in ContinuousBoundaryFunctions (#4008) (@simone-silvestri)
  • Zstar test that actually test conservation (#4342) (@simone-silvestri)
  • Add validation for condition kwarg in ConditionalOperation for immersed boundary grids (#4353) (@navidcy)
  • Respect user condition for ConditionalOperation of reduced fields (#4357) (@glwagner)
  • Add special function-set for sharding (#4363) (@glwagner)
  • Refactor hydrostatic free surface names (#4366) (@glwagner)
  • Require interval::Int in IterationInterval? (#4370) (@glwagner)
  • Remove the performance hit from using KernelOffsets (#4372) (@simone-silvestri)
  • Bump to 0.96.19 (#4374) (@glwagner)

Closed issues:

  • The NotImmersedColumn misses extra user-defined condition (#4352)
  • Performance regression issues (#4365)
  • Using 1days should throw an error in IterationInterval in OutputWriters (#4369)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.18

Oceananigans v0.96.18

Diff since v0.96.17

Merged pull requests:

  • Correcting split explicit barotropic velocities (#4355) (@simone-silvestri)
  • (0.96.18) Update Project.toml (#4356) (@simone-silvestri)

Closed issues:

  • CumulativeIntegral throws error when integrated over a reduced Field (#4078)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.17

Oceananigans v0.96.17

Diff since v0.96.16

Merged pull requests:

  • Massive clean up for conditional operations (#3794) (@glwagner)
  • Use polar criteria to build PolarBoundaryCondition (#4350) (@glwagner)
  • Bump to 0.96.17 (#4351) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.16

Oceananigans v0.96.16

Diff since v0.96.15

Merged pull requests:

  • Build sharded coordinates on the CPU (#4343) (@simone-silvestri)
  • fix: sharding dropped on LatLon Grid (#4344) (@avik-pal)
  • Fix allocation of diffusion solver scratch field (#4345) (@glwagner)
  • Bump to 0.96.16 (#4346) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago

Oceananigans.jl - v0.96.15

Oceananigans v0.96.15

Diff since v0.96.14

Merged pull requests:

  • More fixes for z sharding on vertically Flat grids (#4338) (@glwagner)
  • Throw an error when the partitioning seems wrong (#4339) (@glwagner)
  • Bump to 0.96.15 (#4341) (@glwagner)

Hydrosphere - Ocean Models - Julia
Published by github-actions[bot] over 1 year ago