Overview
Cocoa (Coastal and Ocean Circulation on Accelerators) solves the 2D depth-integrated shallow water equations on unstructured triangular meshes. Typical applications are tidal circulation in coastal and estuarine environments, storm surge from tropical and extratropical cyclones, coastal flooding and inundation, and tide-surge interaction in complex geometries.
Physical Processes
The hydrodynamics are the 2D depth-integrated momentum equations solved together with the Generalized Wave Continuity Equation (GWCE), including advection and diffusion.
Forcing comes from tidal boundary conditions with multiple constituents, the astronomical tide potential computed directly from Moon and Sun positions, atmospheric pressure gradients, and wind stress through the Garratt drag law.
Bottom friction is quadratic, with spatially variable friction coefficients. Wetting and drying uses an element-based algorithm that maintains mass conservation.
Computational Features
Hardware Support
Kokkos supplies the execution backends, so one source builds for all supported hardware: NVIDIA GPUs via CUDA, AMD GPUs via HIP, multi-core CPUs via OpenMP, and a serial backend for debugging.
See Performance for benchmark results comparing Cocoa with ADCIRC.
Solvers
Linear systems are solved with Trilinos: Belos iterative solvers (CG), Ifpack2 preconditioners (Jacobi), and Tpetra distributed linear algebra structures.