v0.104.0
Oceananigans v0.104.0
Breaking changes
-
The
gridis now an argument in model constructors instead of keyword argument (#5087).For example, new syntax requires:
julia> model = HydrostaticFreeSurfaceModel(grid; kw...)
instead of
julia> model = HydrostaticFreeSurfaceModel(; grid, kw...)
-
The free surface displacement in the
HydrostaticFreeSurfaceModelis now calleddisplacement(#5082)For example, new syntax requires:
julia> η = model.free_surface.displacement
instead of
julia> η = model.free_surface.η
-
Checkpointing has changed significantly; look at #4892. Also note, that simulations checkpointed with up to v0.103 will not be able to be picked up by v0.104+.
Merged pull requests:
- Creation of
FieldTimeSeriesfromBinaryOperationof other FTS + some FTS bug fixes (#3644) (@jagoosw) - Flip location along accumulating dimension for
Accumulatingscans (#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
FieldTimeSerieswork 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 Basestatements (#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
Oceananigansto thedocsenvironment 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)
NetCDFOutputWritersometimes 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.Δtis 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
ηtodisplacementforHydrostaticFreeSurfaceModel(#3702) - Bottom drag on immersed boundaries may differ if implemented with
ForcingvsImmersedBoundaryCondition(#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_mappingthe last property ofOrthogonalSphericalShellGrid? (#3826) - Restarting from a checkpoint should restore the time step? (#3845)
FieldTimeSeriessupport forNetCDF(#3935)- Non-hydrostatic curvilinear shell? (#3943)
- Incorrect style in
HydrostaticFreeSurfaceModelconstructor (#3966) - Wouldn't make sense for the
*spacingsto beGridMetricOperations? (#3970) distributed_hydrostatic_turbulence.jlyieldsNaNs (#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
FieldTimeSeriesnot working (#4813) - Checkpointing that works (#4857)
- Lock-Exchange Implementation (#4898)
- Do we need docs for
OpenBoundaryConditionwith thePerturbationAdvectionscheme? (#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_indexmethod (#5151) - Bogus
Oceananigans.Grids.default_horizontal_extentmethod (#5152) - Bogus
Oceananigans.Advection.centered_reconstruction_weightsmethod (#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)