Recent Releases of Oceananigans.jl

Oceananigans.jl - 🏺 Oceananigans v0.9.5

v0.9.5 (2019-08-28)

Diff since v0.9.4

Main feature:

  • Horizontal average diagnostic and we kind of decided on what diagnostics should look like.

Closed issues:

  • Fast vertical profile diagnostic (#186)
  • Allow forcing to be an array. (#110)
  • Use @propagate_inbounds (#58)

Merged pull requests:

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] over 5 years ago

Oceananigans.jl - πŸ›‚ Oceananigans v0.9.4

v0.9.4 (2019-08-28)

Diff since v0.9.3

Main features:

  • Model checkpointing via the Checkpointer output writer.
  • Verbose and maximum filesize options for the JLD2 output writer.
  • Much cleanup.

Closed issues:

  • Upgrade TimeStepWizard to support model spinup? (#356)
  • Register Oceananigans v0.9.3 (#345)
  • Split JLD2 output files by size (#344)
  • Possibly incorrect halo region filling and missing boundary condition (#328)
  • Barebones checkpointing (#324)
  • Halo regions filling functions are not general (#307)
  • What is the purpose of the 'dim' property of RegularCartesianGrid? (#287)
  • HDF5 and plotting utilities are heavy dependencies (#284)
  • More tuples! (#262)
  • Constant Smagorinsky halo size (#260)
  • Types of kernel arguments do not seem to be inferred (#251)
  • Eliminate dichotomy between GPU and CPU tests (#242)
  • Deep convection example and golden master test should switch to BCs. (#220)
  • Dynamically install packages like Plots.jl and ArgParse.jl for examples. (#195)
  • Better user API for interacting with fields (#174)
  • isbits Fields and FieldSets (#163)
  • Change AB-2 parameter to 0.5 + Ο‡ to offer first order forward time stepping (#160)
  • Elegant unpacking (#155)
  • set!(u::Field{G}, f::Function) should use xC, yC, zC (or xF, yF, zF) depending on Field. (#23)
  • Using Reqiures.jl for optional GPU usage (#14)

Merged pull requests:

  • Benchmarking forcing functions (#370) (ali-ramadhan)
  • Nuke broken tests (#368) (ali-ramadhan)
  • Nuke sandbox (#367) (ali-ramadhan)
  • Cleanup README and Documentation building (#359) (ali-ramadhan)
  • Dirchlet and Neumann aliases for Value and Gradient boundary conditions (#355) (ali-ramadhan)
  • Verbose and maximum filesize options for JLD2 output writer (#350) (ali-ramadhan)
  • Clean trailing whitespace and convert tabs to spaces. (#349) (ali-ramadhan)
  • Checkpointer revival (#326) (ali-ramadhan)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] over 5 years ago

Oceananigans.jl - πŸ“œ Oceananigans v0.9.3

v0.9.3 (2019-08-09)

Diff since v0.9.2

Main feature:

  • A sophisticated and efficient set! function for setting field to specific values calculated from a function or taken from an array. Especially useful for elegantly setting initial conditions.

Closed issues:

  • Register Oceananigans v0.9.2 (#339)

Merged pull requests:

  • Robust setting of fields (#343) (ali-ramadhan)
  • Revert "Kernel for setting initial conditions so set_ic! runs fast on GPUs" (#342) (ali-ramadhan)
  • Remove JLD and HDF5 dependency (#340) (ali-ramadhan)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] over 5 years ago

Oceananigans.jl - πŸ’« Oceananigans v0.9.2

v0.9.2 (2019-08-07)

Diff since v0.9.1

Closed issues:

  • Register Oceananigans v0.9.1 (#331)

Merged pull requests:

  • Kernel for setting initial conditions so set_ic! runs fast on GPUs (#337) (ali-ramadhan)
  • Pearson vortex test (#336) (ali-ramadhan)
  • Halo regions + boundary conditions overhaul and bug fixes (#329) (glwagner)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] over 5 years ago

Oceananigans.jl - πŸŒ€ Oceananigans v0.9.1

v0.9.1 (2019-08-05)

Diff since v0.9.0

Main bug fix:

  • Value/Dirchlet boundary conditions are properly imposed.

Closed issues:

  • Register Oceananigans v0.9.0 (#318)
  • Docker file for easy installation and CI testing (#151)
  • Implementing closures for large eddy simulation (#120)

Merged pull requests:

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] over 5 years ago

Oceananigans.jl - ⚑ Oceananigans v0.9.0

v0.9.0 (2019-07-31)

Diff since v0.8.0

Main feature:

  • Turbulence closures for large-eddy simulation (constant Smagorinsky and anisotropic minimum dissipation) by @glwagner.

Closed issues:

  • Register Oceananigans v0.8.0 (#305)
  • Linear equation of state should be upgraded to account for salinity and pressure. (#20)

Merged pull requests:

  • Sandbox scripts for Large eddy simulation (#315) (glwagner)
  • Pre-computed turbulent diffusivities (#312) (glwagner)
  • [WIP] Integrate LES functionality (#309) (glwagner)
  • Be more concrete (#282) (ali-ramadhan)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - 🍺 Oceananigans v0.8.0

v0.8.0 (2019-06-30)

Diff since v0.7.0

Main features:

  • Dynamic launch configuration for GPU kernels (by @maleadt at GPU hackathon). This speeds up the model by ~25%.
  • Revised simulation scripts.

Closed issues:

  • Register Oceananigans v0.7.0 (#299)
  • Portable random number generator for testing. (#176)

Merged pull requests:

  • Hydrothermal plumes simulation v2 (#304) (ali-ramadhan)
  • Idealized seasonal cycle simulation v2 (#303) (ali-ramadhan)
  • Faster model with dynamic launch configuration by @maleadt (#302) (ali-ramadhan)
  • Eddying channel script (#301) (ali-ramadhan)
  • More benchmarks (#300) (ali-ramadhan)
  • Link to Simon Danisch's notebook for plotting GPU output with Makie (#296) (ali-ramadhan)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - πŸ“Ί Oceananigans v0.7.0

v0.7.0 (2019-06-28)

Diff since v0.6.2

Main features:

  • Support for channel geometries.
  • Wizard utility for adaptive time stepping.

Closed issues:

  • What is the purpose of the (#286)
  • Register Oceananigans v0.6.2 (#274)
  • Development milestones and order? (#207)
  • Adaptive time stepping (#189)
  • Further system testing and checking for float precision issues. (#168)
  • Codecov and Coveralls coverage statistics do not account for GPU tests. (#138)
  • Channel (#100)
  • Appveyor CI is SO slow. (#89)
  • Possible to have CPU-specific Project/Manifest and a GPU-specific one? (#79)
  • More general CUDA thread block layout. (#64)
  • Refactor diagnostics framework? (#43)

Merged pull requests:

  • Adaptive time stepping through wizardry (#297) (ali-ramadhan)
  • Reentrant channel model, for real this time (+ lots of cleanup) (#290) (ali-ramadhan)
  • Benchmarking turbulence closures (#289) (ali-ramadhan)
  • Explicit default boundary conditions (#288) (ali-ramadhan)
  • Delete model_configuration.jl (#281) (ali-ramadhan)
  • Only run Appveyor builds on x64. (#279) (ali-ramadhan)
  • Update GitLab CI to run GPU code coverage (#278) (ali-ramadhan)
  • Add James and Tim to dev team (#277) (ali-ramadhan)
  • Polishing docs (#256) (navidcy)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - 🎬 Oceananigans v0.6.2

v0.6.2 (2019-06-05)

Diff since v0.6.1

Closed issues:

  • Register Oceananigans v0.6.1 (#269)

Merged pull requests:

  • No more scalar ops in NaN checker and NetCDF output writer (#273) (ali-ramadhan)
  • Revert "Be more concrete" (#272) (ali-ramadhan)
  • Be more concrete (#263) (glwagner)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - 🚏 Oceananigans v0.6.1

v0.6.1 (2019-06-04)

Diff since v0.6.0

Closed issues:

  • CPU example in README.md fails (#267)
  • Register Oceananigans v0.6.0 (#265)

Merged pull requests:

  • Fill halo regions on CuArrays instead of OffsetArrays (#268) (ali-ramadhan)
  • Update rising thermal bubble examples in README and docs (#266) (ali-ramadhan)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - πŸ‘ΌπŸ½ Oceananigans v0.6.0

v0.6.0 (2019-06-04)

Diff since v0.5.4

Main features:

  • Halo regions to enforce the doubly periodic boundary conditions.
  • Flow is incompressible to machine precision at every time step.
  • Introduction of turbulence closures by @glwagner but they still need to be integrated.

Closed issues:

  • Can't run examples (#254)
  • Unsupported dynamic function invocation (#248)
  • Register Oceananigans v0.5.4 (#235)
  • Choose 2-4 examples that are always updated and improved. (#221)
  • Boundary condition names should be top and bottom for z (#213)
  • GPU Poisson solver tests (#200)
  • Running with Float32 is slower than Float64 on CPUs (#188)
  • Checkpointer cannot restore when using fields with OffsetArrays. (#177)
  • Dirchlet/Value boundary conditions at the top and bottom. (#166)
  • Profiling Oceananigans (#162)
  • Checkpointer cannot serialize functions to disk with JLD. (#141)
  • We can reduce memory usage in the Poisson solver by a factor of 2. (#122)
  • Implement halo regions. (#104)
  • Expressing equations as the sum of a linear and a nonlinear operator. (#95)
  • Ideas for abstractions. (#70)
  • Includes at the module level cannot have circular dependencies. (#69)
  • Use multiple dispatch to control Poisson solver (#45)
  • Use correct data types in CPU/GPU shared kernels. (#34)

Merged pull requests:

  • No more scalar operations on CuArrays. (#264) (ali-ramadhan)
  • Fix examples to account for halos (#257) (ali-ramadhan)
  • Move back example utils (#255) (ali-ramadhan)
  • Halo regions v2: filling halos and faster operations (#253) (ali-ramadhan)
  • Fix implicit type conversions in Adams-Bashforth update kernel (#252) (glwagner)
  • Halo regions v2: switching to offset arrays (#250) (ali-ramadhan)
  • Small cosmetic fixes. (#247) (ali-ramadhan)
  • Test that the GPU Poisson solver solution is numerically divergence-free (#246) (ali-ramadhan)
  • Use stress divergence and diffusive flux divergence from Turbulence Closures (#245) (glwagner)
  • Update packages (#244) (ali-ramadhan)
  • Properly calculate RHS for pressure equation on GPU. (#243) (ali-ramadhan)
  • Bugfix in Model constructor (#241) (glwagner)
  • Rayleigh-Benard regression test with forcing and passive tracer (#239) (glwagner)
  • Adds Value Boundary Condition (BC), improves BC function signatures, GPU BC tests (#237) (glwagner)
  • Turbulence closures --- wow! (#234) (glwagner)

Hydrosphere - Ocean Models - Julia
Published by julia-tagbot[bot] almost 6 years ago

Oceananigans.jl - ⚽ Oceananigans v0.5.4

What's new

  • Velocity field is now divergence-free to machine precision during time stepping. #161 #228 #229
  • Fixed bug in how the Coriolis term was calculated. #215 @jm-c
  • Internal wave test and example. #229 @glwagner
  • Incompressibility test #226
  • Analytic solution reconstruction test for Poisson solver. #227
  • Adapted BoundaryConditions with AbstractArray to play nice with CUDA.
  • Coriolis parameter can be set via latitude.
  • Planetary constants for Europa and Enceladus.

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan almost 6 years ago

Oceananigans.jl - 🐧 Oceananigans v0.5.3

What's new

  • Updated versions of CUDA dependencies.
  • Free convection, wind stress, and mixed layer seasonal cycle examples.
  • Added actual CPU and GPU examples to README and documentation.
  • Updated 3D contourf plotting script to also plot vertical profile diagnostics.
  • New wind stress and free convection with wind stress movies.
  • Added performance benchmark plots in README.
  • Added development team section to README.

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - πŸ¦… Oceananigans v0.5.2

What's new

  • Model is ~5x faster! Buoyancy update kernel was taking quadratic time when it should have been linear. #169 #172
  • NaN checker diagnostic. #38 #170
  • Oceananigans.jl is a real package now! #142

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - πŸͺ Oceananigans v0.5.1

Updating packages for CI and updating package version/UUID for attobot.

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - 🐫 Oceananigans v0.5.0

Tons of improvements! We need more frequent releases.

What's new

  • Parameterized abstractions that work on CPU and GPU architectures.
  • Flashy boundary conditions API. @glwagner
  • Fourth-order tracer advection scheme. @mukund-gupta
  • Much faster GPU compile times thanks to fixes in CUDAnative.jl and GPUifyLoops.jl
  • Arbitrary forcing functions.
  • Diagnostics framework.
  • Output writer framework: checkpointer, binary output, and NetCDF output.
  • Model checkpointing with JLD.
  • Asynchronous NetCDF output.
  • Many new tests including new unit tests, new integration tests, and two golden master tests.
  • Many tests now run on the CPU and GPU.
  • Performance benchmarking with CPU/GPU and Float32/64 comparisons.
  • Renamed "spectral solver" to "Poisson solver".
  • Revised and updated examples.
  • LOTS of cleanup and refactoring to make things look neater.
  • Documentation that is automatically built and deployed!

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - 🏍️ Oceananigans v0.4.0: Fast CPU and GPU support with shared kernels using GPUifyLoops.jl

Features

  • Operators were rewritten to act on individual volume elements (i.e. element-wise) which allowed the time stepping loop to be rewritten to loop over all volume elements and generically run on CPU and GPU architectures using GPUifyLoops.jl.

Sad "features"

  • Lots of other things happened as well but we need to write a lot more tests (especially for the GPU), update the documentation, clean up the code, nuke crusty old code, etc. but that's for v0.5!

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - πŸ₯§ Oceananigans v0.3: More model features and super hacky GPU support.

Features

  • Main struct is now the Model instead of the Problem. It should be neater too.
  • Support for no-slip boundary conditions at the top and bottom.
  • Boundary condition information stored in a BoundaryConditions struct.
  • Abstract output writer (checkpoints and writing fields to disk) and diagnostics framework.
  • ModelMetadata struct to store architecture (e.g. :cpu or :gpu) and floating point number precision.
  • ModelConfiguration struct to store physical parameters such as viscosity and diffusivity.
  • Clock struct keeps track of time, time step number, and Ξ”t.
  • Refactored Ξ΄! and avg! operators to use @views @. so they work on CPUs and GPUs.
  • GPU-compatible DFT! and IDFT! operators based on FFT! and IFFT! operations.
  • Super hacky and very slow GPU support (but it works out of the box!). This will be overhauled ASAP.
  • Support for 1D vertical models.
  • More examples: stratified deep convection, Rayleigh–BΓ©nard convection, 1D vertical.

Main bug fixes

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan about 6 years ago

Oceananigans.jl - πŸ‡ Oceananigans v0.2: Abstractions and much faster time stepping

  • High-level abstractions for the grid, fields, field sets, constant collections, equation of state, and spectral solver parameters.
  • Model code has been refactored so that all operators now modify the fields in place and no memory allocation occurs during time stepping.
  • FFTs and DCTs are planned at the start so the quasi-spectral solver can do its work faster.
  • Code works in 2D (vertical slices with Nx=1 or Ny=1, and horizontal slices with Nz=1).
  • Many more unit tests.
  • Examples: isotropic diffusion, horizontal advection, deep convection and Rayleigh-Taylor instability.

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan over 6 years ago

Oceananigans.jl - 🌊 Oceananigans v0.1: Working model

  • Ocean model works!
  • Nonhydrostatic algorithm including quasi-spectral solver work and do not blow the model up!
  • Numerous examples run as expected in 2D and 3D.
  • More tests need to be run, and the code needs to be cleaned up.

Hydrosphere - Ocean Models - Julia
Published by ali-ramadhan over 6 years ago