Recent Releases of Oceananigans.jl

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] 23 days 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] 26 days 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] about 1 month 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] about 1 month 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] about 2 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] about 2 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] about 2 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] about 2 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] about 2 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] about 2 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] 2 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] 2 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] 3 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] 3 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] 3 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] 3 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] 3 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] 3 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] 3 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] 3 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] 3 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] 4 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] 4 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] 4 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] 4 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] 5 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] 5 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] 5 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] 6 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] 6 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] 6 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] 6 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] 6 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] 6 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] 6 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] 7 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] 7 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] 7 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] 7 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] 7 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] 8 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] 8 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] 8 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] 8 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] 8 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] 8 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] 8 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] 8 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] 9 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] 9 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] 9 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] 9 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] 9 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] 10 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] 10 months 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] 10 months 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] 11 months 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] 11 months 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] 11 months 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] 11 months 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] 11 months 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] 11 months 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] 11 months 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] 12 months 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] 12 months 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] about 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] about 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] about 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] about 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] about 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] about 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] about 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] about 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] about 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] about 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] about 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] about 1 year ago

Oceananigans.jl - v0.96.14

Oceananigans v0.96.14

Diff since v0.96.13

Merged pull requests:

  • Fix a memory allocation issues (#4336) (@simone-silvestri)
  • (0.96.14) Support Flat vertical dir: sharded_z for z::Nothing (#4337) (@glwagner)

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

Oceananigans.jl - v0.96.13

Oceananigans v0.96.13

Diff since v0.96.12

Merged pull requests:

  • fix: create the grid directly on device (#4334) (@avik-pal)
  • Bump 0.96.13 (#4335) (@glwagner)

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

Oceananigans.jl - v0.96.12

Oceananigans v0.96.12

Diff since v0.96.11

Merged pull requests:

  • Pad Center fields on BoundedTopology so that all Fields have identical horizontal size (#4144) (@glwagner)
  • Increment run_wall_time during time_step! again (#4327) (@glwagner)
  • Pad for all Reactant models not just sharded ones (#4329) (@glwagner)
  • Bump to 0.96.12 (#4331) (@glwagner)

Closed issues:

  • Wall time callback (#4326)

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

Oceananigans.jl - v0.96.11

Oceananigans v0.96.11

Diff since v0.96.10

Merged pull requests:

  • Fix broken doctests (#4315) (@glwagner)
  • Removes warning from implicit-explicit RK3 (#4317) (@jagoosw)
  • Sharding on a rectilinear grid (#4323) (@simone-silvestri)

Closed issues:

  • Problems installing Oceananigans on a new server (#4176)
  • BoundsError accessing JRA55_field_time_series (#4321)

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

Oceananigans.jl - v0.96.10

Oceananigans v0.96.10

Diff since v0.96.9

Merged pull requests:

  • (0.96.10) Fix bug when masking CATKE during time-stepping (#4314) (@glwagner)

Closed issues:

  • EKE is zero with [some] CATKE configs (#4307)

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

Oceananigans.jl - v0.96.9

Oceananigans v0.96.9

Diff since v0.96.8

Merged pull requests:

  • Use default FloatType to build Reactant clock (#4308) (@glwagner)
  • Bump to 0.96.9 (#4311) (@glwagner)

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

Oceananigans.jl - v0.96.8

Oceananigans v0.96.8

Diff since v0.96.7

Merged pull requests:

  • Rm hardcoded Float32 in VerticalScalarDiffusivity (#4309) (@glwagner)
  • Bump to 0.96.8 (#4310) (@glwagner)

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

Oceananigans.jl - v0.96.7

Oceananigans v0.96.7

Diff since v0.96.6

Merged pull requests:

  • Replaces greek capital N with latin N in variable names... (#4297) (@navidcy)
  • Fix some broken tests (#4299) (@simone-silvestri)
  • Swap around latitude longitude metrics (#4300) (@simone-silvestri)
  • Undo pipelining for a ShardedDistributed architecture (#4301) (@simone-silvestri)
  • Switch default behavior of Distributed architecture (#4302) (@simone-silvestri)
  • Bump to 0.96.7 (#4303) (@glwagner)

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

Oceananigans.jl - v0.96.6

Oceananigans v0.96.6

Diff since v0.96.5

Merged pull requests:

  • Export spacings operators near where they are defined (#4280) (@glwagner)
  • Reinstate sharding tests (#4281) (@simone-silvestri)
  • Fixes for running on TPUs... (#4289) (@glwagner)
  • Convert EOS and fix tests (#4290) (@simone-silvestri)
  • Fix bug in z-sharding for latitude-longitude grid (#4294) (@simone-silvestri)
  • Bump to 0.96.6 (#4296) (@glwagner)

Closed issues:

  • Reduction of Reduction (#4279)
  • How can I use Field as input in UniformStokesDrift? (#4291)

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

Oceananigans.jl - v0.96.5

Oceananigans v0.96.5

Diff since v0.96.4

Merged pull requests:

  • Add validation for condition kwarg in ConditionalOperation (#4266) (@navidcy)
  • Reactant in weak deps (#4283) (@simone-silvestri)
  • Reactant: enforce tick_time to be in place (#4284) (@wsmoses)
  • Update Project.toml (#4286) (@simone-silvestri)

Closed issues:

  • Conditional operations with condition=cond::Array should warn if cond does not match the size of the field (#4265)

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

Oceananigans.jl - v0.96.4

Oceananigans v0.96.4

Diff since v0.96.3

Merged pull requests:

  • [Reactant] Materialize traced array (#4270) (@wsmoses)
  • Sharding for LatitudeLongitudeGrid and extend Distributed methods for Distributed{<:ReactantState} (#4272) (@simone-silvestri)
  • adding a missing on_architecture(::Distributed, ::OrthogonalSphericalShellGrids) (#4274) (@simone-silvestri)
  • Bump to 0.96.4 (#4282) (@glwagner)

Closed issues:

  • main seems broken after #4270? (#4278)

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

Oceananigans.jl - v0.96.3

Oceananigans v0.96.3

Diff since v0.96.2

Merged pull requests:

  • Implement Distributed{<:ReactantState} (#4200) (@glwagner)
  • Support BoussinesqEquationOfState in NetCDFWriter (#4252) (@jbisits)
  • Generalize Simulation struct (#4261) (@glwagner)
  • Fix array indexing (#4264) (@wsmoses)
  • Bump to 0.96.3 (#4273) (@glwagner)

Closed issues:

  • Missing method for default_tracer_attributes in NetCDFWriter when using a BoussinesqEquationOfState from SeawaterPolynomails.jl (#4251)
  • Blowup when trying to reproduce MITgcm Barotropic Ocean Gyre (#4267)

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

Oceananigans.jl - v0.96.2

Oceananigans v0.96.2

Diff since v0.96.1

Merged pull requests:

  • feat: Distributed Reactant (#4246) (@avik-pal)
  • Try to make LatitudeLongitudeGrid traceable (#4259) (@glwagner)
  • Bump to 0.96.2 (#4263) (@glwagner)

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

Oceananigans.jl - v0.96.1

Oceananigans v0.96.1

Diff since v0.96.0

Merged pull requests:

  • Add section in the docs for reduced operations (#4235) (@navidcy)
  • Reactant: add make_tracer for grid (#4242) (@wsmoses)
  • find_time_index for TracedStepRangeLen (#4249) (@jumerckx)
  • Use VectorInvariant instead of WENOVectorInvariant in test_reactant for lat-lon (#4256) (@glwagner)
  • Bump to 0.96.1 (#4257) (@glwagner)

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

Oceananigans.jl - v0.96.0

Oceananigans v0.96.0

Diff since v0.95.29

Breaking changes

This breaking release overhauls NetCDFOutputWriter (which is now called NetCDFWriter) and moves it to an extension. From now on scripts that use NetCDFWriter must explicitly import NCDatasets. JLD2OutputWriter also got renamed to JLD2Writer.

Relevant PRs are https://github.com/CliMA/Oceananigans.jl/pull/4046, https://github.com/CliMA/Oceananigans.jl/pull/4210 and https://github.com/CliMA/Oceananigans.jl/pull/4239.

Merged pull requests:

  • (0.96.0) Improve the NetCDFOutputWriter experience (#4046) (@ali-ramadhan)
  • (0.96.0) Rename output writers to JLD2Writer and NetCDFWriter (#4210) (@tomchor)
  • Add a second Reactant test group (#4231) (@glwagner)
  • Test setting ReactantState Field to array (#4236) (@glwagner)
  • Add a copyto for Field with Array (#4238) (@glwagner)
  • (0.96.0) Move NetCDFWriter to an extension (#4239) (@tomchor)
  • Add Johnston et al. 2025 (#4240) (@navidcy)
  • Reactant: fix inner traced type of different grids (#4241) (@wsmoses)
  • Better name than RankConnectivity (#4244) (@glwagner)
  • Export operators for surface / horizontally-reduced derivatives (#4248) (@glwagner)

Closed issues:

  • Integrating Oceananigans with Python-xgcm (#1334)
  • Support curvilinear grids with NetCDFOutputWriter? (#2248)
  • Output constructor does not work with sliced fields (#2770)
  • Helper for outputting a NetCDF "grid file" (#3997)
  • Trouble Installing Oceananigans (#4133)
  • Should we compile with -O0 for the docs build? (#4229)

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

Oceananigans.jl - v0.95.29

Oceananigans v0.95.29

Diff since v0.95.28

Merged pull requests:

  • Capture Clock.stage with a type parameter (#4226) (@jumerckx)
  • Add adapt for TimeInterpolator (#4227) (@wsmoses)
  • Convert TimeInterpolator indices to Int (#4230) (@glwagner)
  • Bump to 0.95.29 (#4232) (@glwagner)

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

Oceananigans.jl - v0.95.28

Oceananigans v0.95.28

Diff since v0.95.27

Merged pull requests:

  • CompatHelper: add new compat entry for ConstructionBase in [weakdeps] at version 1, (keep existing compat) (#4184) (@github-actions[bot])
  • initialize! for ReactantSimulation plus better find_time_index (#4215) (@glwagner)

Closed issues:

  • GPU compiler error in tendency computation using DiscreteForcing with GPU + Float32 + immersed RectilinearGrid (#4192)

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