🥧 Oceananigans v0.3: More model features and super hacky GPU support.
Pre-release
Pre-release
Features
- Main struct is now the
Model
instead of theProblem
. 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