Skip to content

🥧 Oceananigans v0.3: More model features and super hacky GPU support.

Pre-release
Pre-release
Compare
Choose a tag to compare
@ali-ramadhan ali-ramadhan released this 11 Feb 14:06

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

  • Added in Coriolis term for u and v-momentum equations (important for 3D simulations). ali-ramadhan@1b07df1
  • Fixed typo in u∇w! operator causing blowup in some 2D simulations (Ay and Az were mixed up). ali-ramadhan@d7326c8