In a Nutshell
Interactive slide decks walking through OpenWQ — a modular water-quality and biogeochemistry framework that couples to hydrological host models (SUMMA, mizuRoute, CRHM, FLUXOS) to simulate reactive transport of multiple chemical species across the landscape.
What OpenWQ is and how it couples to a host hydrological model. Design philosophy, compartment & species abstractions, the coupling interface, and the range of biogeochemistry it can express.
Build paths for OpenWQ standalone and as a library coupled into a
host model. CMake flags, dependency matrix (armadillo,
nlohmann/json, optional PHREEQC), and
Docker / Apptainer workflows.
Python template and utility scripts that wrap OpenWQ. Generates the master JSON, builds biogeochemistry configs, and runs post-processing on simulation outputs (NetCDF readers, time-series plotting, mass-balance checks).
End-to-end walkthrough: defining compartments and chemical species, pointing OpenWQ at the host model's hydrology, choosing a biogeochemistry engine, and running the first coupled simulation.
The engines OpenWQ ships with: the native generic-kinetics engine, PHREEQC for geochemistry & mineral equilibria, and how to select or extend them per project.
Ready-to-use biogeochemistry templates: nitrogen and phosphorus cycles, DOC / DOM, salts and tracers, heavy metals. Copy, adapt, and drop into your OpenWQ master file.
External water fluxes (meteo, inflows, irrigation, fertilizer applications). How to define temporal and spatial load patterns, per-species concentrations, and time-varying boundary conditions.
The rest of the OpenWQ surface area: special-purpose modules, coupling utilities, debugging toggles, and NetCDF output controls. Useful once you have a working baseline and want to extend it.
Calibration strategy for coupled water-quality simulations: choice of objective function, parameter identifiability, sensitivity analysis, and practical workflows for running batch calibrations.