Changelog
All notable changes to Cocoa will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
N/A
Changed
Asynchronous I/O is now always on. Output is delivered on a background writer thread and meteorological input is pre-read ahead of need, overlapping file access with computation in every run. MPI is initialized with
MPI_THREAD_FUNNELEDto support this; a run aborts at startup if the MPI build cannot provide it.
Deprecated
N/A
Removed
The
--asynciocommand-line flag and its modes. Asynchronous output is now unconditional, so there is no mode to select. The dedicated-MPI-I/O-rank mode (--asyncio=mpi) has been removed; all ranks now participate in computation.
Fixed
N/A
Security
N/A
Migration Guide
Migrating from ADCIRC
Converting Mesh Files
Cocoa uses NetCDF format for mesh files instead of ADCIRC’s fort.14/fort.13 format.
A conversion script is provided in the utils directory:
python utils/cocoa_mesh_tools.py from_adcirc \
--mesh fort.14 \
--attributes fort.13 \
--output mesh.nc
Arguments:
--mesh: ADCIRC mesh file (fort.14) - required--attributes: ADCIRC nodal attributes file (fort.13) - optional--output: Output NetCDF file path - required
Configuration Files
Cocoa uses YAML configuration files instead of ADCIRC’s fort.15 format. Key differences:
ADCIRC Parameter |
Cocoa Equivalent |
|---|---|
DT |
|
TAU0 |
|
STATIM |
|
RNDAY |
|
Note
In ADCIRC, a negative TAU0 value triggers spatially-varying computation.
In Cocoa, tau0 must always be a positive constant value.
Example conversion:
ADCIRC fort.15:
DT = 2.0
TAU0 = 0.005
RNDAY = 1.0
Cocoa YAML:
simulation:
time_step: 2s
start_time: 2025-01-01
end_time: 2025-01-02
physics:
tau0: 0.005