Cocoa: Coastal and Ocean Circulation on Accelerators

C++ Standard

Cocoa is a high-performance coastal ocean modeling system designed for modern GPU architectures. Built on the proven numerical methods of the ADCIRC model, Cocoa leverages Kokkos and Trilinos to achieve performance portability across diverse computing platforms.

Key Features

  • GPU Acceleration: Native support for NVIDIA and AMD GPUs (see Performance)

  • Performance Portability: Single codebase for CPUs, GPUs, and accelerators

  • Scalable Solvers: Trilinos-based explicit and iterative solvers with preconditioning

  • Unstructured Meshes: Triangular finite elements for complex coastal geometries

Quick Start

# Build Cocoa
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DNETCDF_DIR=$(path) -DTrilinos_DIR=$(path)
make -j8

# Run a simulation
./cocoa -i simulation.yaml

Documentation

Indices and Tables

Authors and Acknowledgments

Lead Developer:

  • Zach Cobell

Advisory:

  • Richard A. Luettich, Jr., University of North Carolina at Chapel Hill

  • Joannes J. Westerink, University of Notre Dame

  • Shintaro Bunya, University of North Carolina at Chapel Hill