GPU
GPU functionality is enabled via FourierFlows.jl. For more information on how FourierFlows.jl handles GPUs, see the corresponding FourierFlows.jl documentation section.
All GeophysicalFlows.jl modules can be run on GPU by providing GPU() as the device (dev) argument in the problem constructors. For example,
julia> GeophysicalFlows.TwoDNavierStokes.Problem(GPU())
Problem
├─────────── grid: grid (on GPU)
├───── parameters: params
├────── variables: vars
├─── state vector: sol
├─────── equation: eqn
├────────── clock: clock
└──── timestepper: RK4TimeStepperSelecting GPU device
FourierFlows.jl can only utilize a single GPU. If your machine has more than one GPU available, you can use functionality from the CUDA.jl package to choose the GPU device that FourierFlows.jl should use. See the CUDA.jl Documentation; in particular, CUDA.devices and CUDA.CuDevice.