Overview

Cocoa (Coastal and Ocean Circulation on Accelerators) solves the 2D depth-integrated shallow water equations on unstructured triangular meshes.

Model Capabilities

Cocoa is designed for simulating:

  • Tidal circulation in coastal and estuarine environments

  • Storm surge from tropical and extratropical cyclones

  • Coastal flooding and inundation

  • Tide-surge interaction in complex geometries

Physical Processes

The model includes the following physical processes:

Hydrodynamics

  • 2D depth-integrated momentum equations

  • Generalized Wave Continuity Equation (GWCE)

  • Advection and diffusion

Forcing Mechanisms

  • Tidal boundary forcing with multiple constituents

  • Astronomical tide potential (direct Moon/Sun computation)

  • Atmospheric pressure gradients

  • Wind stress (Garratt drag law)

Bottom Friction

  • Quadratic bottom friction

  • Variable friction coefficients

Wetting and Drying

  • Element-based wet/dry algorithm

  • Maintains mass conservation

Computational Features

GPU Acceleration

Cocoa leverages Kokkos for GPU acceleration:

  • NVIDIA GPUs via CUDA

  • AMD GPUs via HIP

  • Multi-core CPUs via OpenMP

  • Serial execution for debugging

See Performance for benchmark results comparing Cocoa with ADCIRC.

Scalable Solvers

Linear systems are solved using Trilinos:

  • Belos iterative solvers (CG)

  • Ifpack2 preconditioners (Jacobi)

  • Tpetra linear algebra structures

  • Kokkos for performance portability