Cocoa: Coastal and Ocean Circulation on Accelerators

C++ Standard

Cocoa is a coastal ocean circulation model built on the numerical formulation of the ADCIRC model. It solves the 2D depth-integrated shallow water equations on unstructured triangular finite element meshes, using Trilinos for the explicit and preconditioned iterative solvers and Kokkos for host and device execution: one source builds for multi-core CPUs and for NVIDIA and AMD GPUs (see Hardware Support and Performance).

Quick Start

# Build Cocoa
export TRILINOS_DIR=/path/to/trilinos/lib/cmake/Trilinos
export NETCDF_DIR=/path/to/netcdf
cmake --preset release
cmake --build --preset release

# Run a simulation (the binary is build/src/cocoa/cocoa)
./cocoa -i simulation.yaml

Documentation

User Guide

Indices and Tables

Authors and Acknowledgments

Lead Developer:

  • Zach Cobell, ICEYE

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