Oceananigans.jl

🌊 Julia software for fast, friendly, flexible, ocean-flavored fluid dynamics on CPUs and GPUs

MIT License

Stars
912
Committers
59

Bot releases are hidden (Show)

Oceananigans.jl - v0.90.0-docs

Published by navidcy 12 months ago

Oceananigans.jl - v0.90.0-docs

Published by navidcy 12 months ago

Oceananigans.jl - 🏄 Oceananigans v0.15.0

Published by ali-ramadhan almost 5 years ago

Main features:

  • Multiple turbulence closures per tracer (#517)
  • Anisotropic biharmonic diffusivity closure (#518)
  • Craik-Leibovich terms and surface waves effects (#519)
  • BoundaryFunction wrapper for simple boundary condition functions (#513)
  • Start splitting code into submodules (#512)
Oceananigans.jl - ⚽ Oceananigans v0.5.4

Published by ali-ramadhan over 5 years ago

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.
Oceananigans.jl - 🐧 Oceananigans v0.5.3

Published by ali-ramadhan over 5 years ago

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.
Oceananigans.jl - 🦅 Oceananigans v0.5.2

Published by ali-ramadhan over 5 years ago

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
Oceananigans.jl - 🐪 Oceananigans v0.5.1

Published by ali-ramadhan over 5 years ago

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

Oceananigans.jl - 🐫 Oceananigans v0.5.0

Published by ali-ramadhan over 5 years ago

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!
Oceananigans.jl - 🏍️ Oceananigans v0.4.0: Fast CPU and GPU support with shared kernels using GPUifyLoops.jl

Published by ali-ramadhan over 5 years ago

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!
Oceananigans.jl - 🥧 Oceananigans v0.3: More model features and super hacky GPU support.

Published by ali-ramadhan over 5 years ago

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

Oceananigans.jl - 🐇 Oceananigans v0.2: Abstractions and much faster time stepping

Published by ali-ramadhan over 5 years ago

  • 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.
Oceananigans.jl - 🌊 Oceananigans v0.1: Working model

Published by ali-ramadhan almost 6 years ago

  • 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.
Package Rankings
Top 5.96% on Juliahub.com
Badges
Extracted from project README
Watch deep convection in action Watch free convection in action Watch winds blowing over the ocean Watch free convection with wind stress in action