Skip to content

v0.80.0

Compare
Choose a tag to compare
@github-actions github-actions released this 28 Mar 16:01
· 268 commits to main since this release
f4bbce1

Oceananigans v0.80.0

Diff since v0.79.6

Closed issues:

  • Running with Posits as well as AbstractFloat. (#39)
  • Implement Vreman SGS closure (#440)
  • Verification tests comparing performance of different LES closures (#441)
  • Field should subtype an array type for named axis behaviors? (#457)
  • Each turbulence closure should probably have its own submodule (#521)
  • Make sure Oceananigans is type stable (#552)
  • Equatorial Rossby waves on a beta plane verification experiment (#640)
  • Double gyre example (#678)
  • 'Orlanski' open boundary condition (#833)
  • Be careful of using end in forcing functions and boundary conditions (#838)
  • 'ContinuedFlow' boundary condition (#848)
  • Should we add multithreading benchmarks to README? (#900)
  • Improving tracer budget tests (#942)
  • Docs have "Model setup" but not "Simulation" (#946)
  • README example is excessively large + README needs updating for current julia REPL look (#961)
  • Evaluating volume-averages of functions of x, y, z, t with higher than first-order accuracy (#1011)
  • Do we still need so much @hascuda? (#1043)
  • "Computing tips" docs section for running on clusters with slurm, google cloud, etc... (#1045)
  • Create a wiki with information / notes on how to setup buildkite for local testing? (#1046)
  • Run Windows tests on GitHub Actions. (#1050)
  • Upload coverage artifacts to Codecov from Buildkite. (#1052)
  • Combine Diagnostics and OutputWriters docs page and add more AbstractOperations examples? (#1062)
  • Benchmarking fully loaded simulations (#1089)
  • 100% code coverage (#1100)
  • Interactive/reactive examples with Pluto.jl (#1109)
  • Interactive 3D visualization example with WGLMakie.jl (#1112)
  • Check out where can we make use of Unitful.jl (#1116)
  • Mixing data types and instantiated types in the user interface (#1119)
  • State checker diagnostic (#1135)
  • Example/tutorial on automating parameter exploration with Slurm? (#1137)
  • More tutorials involving AbstractOperations + Output (#1143)
  • Pedagogical improvements to the Langmuir turbulence example (#1146)
  • Supporting non-zero or time-dependent wall-normal velocities (#1156)
  • notebooks? (#1172)
  • Positive preserving WENO scheme (#1173)
  • Do TimeSteppers belong to Models, or to Simulations? (#1175)
  • Stop assuming a default topology? (#1178)
  • Print system info before running tests (#1180)
  • Minor optimization: use convert rather than constructor to convert array type before output (#1182)
  • linear stability calculator? (#1191)
  • Grid in JLD2 files produced by JLD2OutputWriter is not sliced (#1194)
  • Running Oceananigans with 2 threads allocates the most memory (#1218)
  • Roadmap to version 1.0 (#1234)
  • generalizing calculate_tendencies! ? (#1239)
  • Change default advection scheme and halo size for grids, and add utilities for inferring needed halo sizes? (#1245)
  • 4th order or higher for center differencing (#1265)
  • Output writer schedules should be checkpointed (#1280)
  • Error on invalid time interval + time window combinations for AveragedTimeInterval (#1288)
  • Available Potential Energy (#1297)
  • Extensive saving of model and simulation parameters in output metadata? (#1313)
  • Create two new advection schemes: UpwindBiasedFirstOrder and CenterSixthOrder (#1320)
  • Allow for computed fields diffusivities (#1327)
  • implicit free-surface for ShallowWaterModel (#1378)
  • Is convert_output for NamedTuple sufficiently general? (#1398)
  • Examples should plot without using any Oceananigans functions (#1405)
  • Convergence tests pipeline takes several hours to finish (#1420)
  • What time attribute should Oceananigans use for NetCDF? (#1421)
  • Document the parameters that users can change and their default values (#1427)
  • Get rid of vertical integrals for IncompressibleModel (#1443)
  • Modify test_dynamics.jl to includes tests for ShallowWaterModel (#1448)
  • Test non-equal MPI domain decompositions soon (#1450)
  • Profiling MPI and benchmarking strong + weak scaling (#1451)
  • Check "model consistency" for users during model construction? (#1453)
  • Separate Poisson solvers from main code (#1553)
  • Generating conformal cubed sphere grids (#1586)
  • Best way to interpolate cubed sphere grid to a regular lat-lon grid? (#1587)
  • Boundary conditions cannot be enforced with closure = nothing (#1630)
  • Keeping validation script up-to-date (#1634)
  • "Dimension-aware" behavior of set! and interior with Flat directions? (#1655)
  • benchmarks scripts cannot write CPU to GPU speedup table to html file due to ">" being in filename (#1672)
  • Literate internal tide validation experiment? (#1694)
  • Cannot construct GPU models on PowerPC architectures: ERROR: cfunction: closures are not supported on this platform (#1706)
  • ShallowWaterModel.bathymetry? (#1712)
  • Add a bathymetry test for ShallowWaterModel (#1716)
  • What API should we implement for specifying fluxes across GridFittedImmersedBoundary? (#1720)
  • New Benchmarks (#1722)
  • ShallowWaterModel on Float32 (#1724)
  • Direct 2D solves with FFT-based solver for rigid lid and implicit free surface (#1727)
  • Aborting a simulation with NaNs without stacktraces (#1734)
  • Test correctness / geometric consistency of VerticallyStretchedRectilinearGrid (#1756)
  • Energy/enstrophy conserving schemes for Coriolis (#1818)
  • Oceananigans is much slower when using relaxation forcing functions (#1827)
  • An example with a non-trivial thermal-wind balance (#1846)
  • Should examples be written so that the "part 2" (load output and plot/process) is independent of "part 1" (setup and run)? (#1850)
  • Documentation v2.0 (#1852)
  • Threaded benchmarks (#1861)
  • Making all examples GPU-compatible (#1863)
  • Many of the shallow water advection operators appear to be wrong (#1866)
  • Poisson solver tests use CenterField to represent fields at Faces (#1867)
  • Multi GPU scaling is very poor (#1882)
  • Catching common performance / type inference issues with user functions (#1885)
  • PTX compilation errors with GPU AbstractOperations (#1886)
  • Enhance simulation Callback and model StateModifier utilities (#1895)
  • Need to remove CUDA.allowscalar(true) because it's been deprecated (#1901)
  • Refactoring Coriolis implementation and semantics (#1904)
  • Utilities for benchmarking user-defined forcing, boundary conditions, and output calculation (#1918)
  • Test for incompressibility in hydrostatic and non-hydrostatic models (#1934)
  • More comprehensive testing for immersed boundaries (#1937)
  • Need test for non-trivial fluxes along two boundaries (#1938)
  • No need for free surface tendency with ImplicitFreeSurface (#1941)
  • Arrays are not correctly extruded when broadcasting with fields (#1942)
  • scalings for the distributed models (#1948)
  • NaNChecker should only check a field in prognostic_fields(model), not all fields(model) (#1960)
  • Cleaning up tests for efficiency (#1990)
  • Add method to AveragedField to prescribed averaged dimensions with names, e.g., dims = (:x, :y) (#2006)
  • Do we need separate MultiCPU and MultiGPU architectures? (#2020)
  • Trigonometric functions may be causing slowdown on a simulation when running on GPUs (#2034)
  • Should we test also models run with tuple of closures and/or using different models? (#2047)
  • Simplify way users have access to grid metrics (#2058)
  • Better name for the "underlying grid" for ImmersedBoundaryGrid (#2095)
  • Encourage compiler to inline recursive closure tuple operators with "outer-inner" form (#2101)
  • Pressure solver algorithm involves two superfluous fields (#2126)
  • with_size for building new grids with similar domains and topologies but different resolutions (#2146)
  • Emit warning when buoyancy.gravitational_acceleration != free_surface.gravitational_acceleration? (#2148)
  • K-Profile Parametrization (#2149)
  • Function interface for extracting properties from models (#2156)
  • Helpful error when using an invalid schedule in OutputWriters, Diagnostics, and Callbacks (#2180)
  • Variable grid spacing in horizontal dimension (x or y) causes NonhydrostaticModel instantiation to fail (#2191)
  • HydrostaticFreeSurface model on a grid with Flat z (#2198)
  • 32-bit indices for decreased GPU register pressure (#2202)
  • Move FieldTimeSeriesCollector to Oceananigans? (#2216)
  • Testing problem (#2222)
  • Try harder to transfer boundary conditions to derived fields? (#2233)
  • Simplifying notation for difference and interpolation operators (#2236)
  • Automagically wrap AbstractOperation and Reduction in Field inside OutputWriters? (#2242)
  • Move barotropic mode calculation to update_state!? (#2244)
  • Serialize ImmersedBoundaryGrid by converting immersed boundary functions to arrays? (#2245)
  • Export Horizontal and Vertical diffusivity isotropies from top-level? (#2254)
  • Need test for (Cu)Array of IsopycnalSkewSymmetricDiffusivity closures (#2258)
  • Possibly changing calculation of solid_interface function (#2263)
  • Support Field(loc, op) for specifying AbstractOperation location (#2270)
  • Improvements to stretched WENO5 API and new method validate_advection (#2271)
  • Implementing Li et al's "theory wave" surface wave model (#2290)
  • Convenience constructors for 1 and 2D grids? (#2292)
  • Why is solid_interface used for reducing immersed fields? (#2293)
  • interpolate Field fails on stretched grids (#2300)
  • ImmesedBoundaryGrids with Flat dimensions don't work (#2301)
  • Can we build examples separately from makedocs? (#2309)
  • Teach AbstractOperations.validate_grid about ZeroField and ConstantField (#2311)
  • Reorganizing examples in the docs (#2326)
  • Passing parameters for nested boundary functions (nested task error: UndefKeywordError: keyword argument not assigned) (#2336)
  • NetCDFOutputWriter should have mode = "c" as default? (#2339)
  • Friendlier syntax for KernelFunctionOperation? (#2340)
  • Can't use single ScalarDiffusivity(; 魏) when 魏 isa AbstractArray (#2342)
  • Usability concerns and possible improvements for MultiArch (#2349)
  • Do we need a place to document experimental features? (#2355)
  • Interface for closures (and other model terms) that introduce auxiliary prognostic variables (#2422)
  • Benchmarking scripts for immersed boundaries and immersed boundary conditions (#2452)
  • Modular and unified user interface for advection schemes (#2454)
  • Add examples for setting initial conditions with Arrays on the docs (CPU and GPU) (#2457)
  • Oceananigans "wiki" for hosting practical usage information (#2470)
  • Is the finite volume discretization of the barotropic pressure gradient correct? (#2475)
  • Change FieldTimeSeries to behave like 1D vector? (#2492)
  • Tests for OffsetArrays-Field broadcasts (#2501)
  • Biogeoceananigans.jl (#2512)
  • Error in visualize_barotropic_gyre.jl in validation exps (#2542)
  • Advection in ShallowWaterModel (#2615)
  • Bug in DiagonallyDominantPreconditioner (#2668)
  • Incremental compilation warning for next_stream() (#2676)
  • Near global quarter degree validation experiment is broken (#2690)
  • Failed to compile PTX code ... uses too much parameter space (#2700)
  • Callback with SpecifiedTimes also gets called in iteration 0 (#2719)
  • Issues with heuristic_workgroup (#2828)
  • (Abstract) reductions don't play well with other operations (#2856)
  • Validation script for flow over immersed hills fails in bottom_drag case (#2860)
  • Initially quasi-quiescent stably stratified simulations develop instabilies and eventually blow up (#2935)
  • README images broken (#2947)
  • Heat flux sign incorrect in mixing and convection example (#2959)
  • Ambiguous halo size error in HydrostaticFreeSurfaceModel (#2983)
  • need to update docstring in netcdf_output_writer.jl (#2986)
  • 10-100x slowdown on CPU after upgrade to KernelAbstractions 0.8 (due to type inference failure?) (#2996)
  • Fill velocity halos correctly on the MultiRegion cubed sphere (#3021)
  • Kernel compilation error in model with forcing + auxiliary_fields on GPU (#3025)

Merged pull requests: