HydroCouple Logo

HydroCouple#

HydroCouple — Python bindings for the component-based modeling framework interface standard.

HydroCouple is a header-only C++20 interface standard for coupling hydrologic, hydraulic, and environmental model components, designed for HPC, GPU, and cloud execution. The hydrocouple package mirrors the v2.0.0 standard as Python abstract base classes, and the _hydrocouple Cython bridge connects Python to compiled C++ components — in both directions.

Field data moves through the typed hyperslab data plane (get_values_into() / set_values_from()) as NumPy arrays: an ndarray carries exactly what the C++ BufferDescriptor encodes — data pointer, dtype, shape, byte strides — so the bridge marshals zero-copy in both directions and releases the GIL around C++ compute.

Implement a component in Python

Subclass the hydrocouple.core ABCs exactly as C++ developers implement the pure-virtual interfaces, then hand the component to C++ workflows through PyComponentBridge.

Quickstart
Drive a compiled C++ component

hydrocouple.loader.load() brings a compiled component into Python; exchange fields as NumPy arrays through the zero-copy hyperslab API.

Quickstart

Where to start#

Quickstart

Install, load or implement a component, exchange NumPy arrays.

Quickstart
API Reference

Full class and method reference for every module: core, temporal, spatial, spatiotemporal, distributed, helpers, loader.

API Reference

The C++ side of this site — the interface standard itself, with the full Doxygen reference — lives at the site root: HydroCouple C++ interface docs (or ../index.html when browsing this co-deployed site).