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