Research software · Doctoral project

OffshoreLH2

An integrated research platform for offshore green-hydrogen systems

OffshoreLH2 simulates an offshore hydrogen hub hour by hour. It follows wind and wave data through electrolysis, gas and liquid storage and liquefaction to weather-limited shipping and the delivered cost of hydrogen, and it checks the energy and mass balances at every step.

  • v0.4.0-alpha.4 · 3 Oct 2026
  • Research preview
  • Internally verified physics baseline
  • External validation in progress
OffshoreLH2 Dashboard showing the current study, the P8 integrated advanced chain as the active model, a completed simulation with audit PASS, and the chain from metocean data to techno-economics.
Dashboard after a run of the full higher-fidelity chain on the bundled 2020 North Atlantic weather year.

Overview

What it is

OffshoreLH2 treats an offshore hydrogen project as one connected system rather than a set of separate spreadsheets. In every simulated hour, electricity, water, gaseous hydrogen, liquid hydrogen and vessel cargo move through physical states with explicit limits. Every run ends with conservation checks and an independent audit.

The same engine drives single simulations, sensitivity and uncertainty studies, multi-year comparisons and design optimization. You can use it through a desktop application, a command-line tool or a Python API.

Motivation

Why I built it

Offshore hydrogen systems are tightly coupled. Wind sets production, storage absorbs the mismatch, and waves decide when cargo can move. Annual averages hide those interactions, and paper-specific scripts are hard to reuse or check.

I wanted each new study to add to one tested model instead of starting another script, and every result to be traceable to its data, settings and software version. OffshoreLH2 began as the Python models behind my offshore-hydrogen studies and has grown into a general research platform.

Physics core
C++20, deterministic hourly state evolution and conservation ledgers
Interfaces
pybind11 → Python SDK, command-line tool, PySide6 desktop app
Weather input
ERA5 reanalysis (automatic) or hourly CSV
Project files
.olh2 projects and .olh2study recipes (JSON)
Outputs
JSON summary, hourly CSV, HTML report, provenance manifest
Platforms
Windows (primary) and Linux; Python 3.12–3.13

Capabilities

What the current release can do

Status labels follow the software's own capability register. Verified means internally verified through unit, analytical, conservation and regression tests. It does not mean external experimental validation.

  • Verified internally verified, integrated physics
  • Implemented working data, analysis or workflow feature
  • Research stage implemented but not enabled for normal use
  • Planned no implementation yet
Implemented

Site and metocean data

  • Site selection on an offline world map or by coordinates
  • Automatic ERA5 wind and wave download for complete years, with caching, stop and resume, and source hashes
  • Quality control: full calendar years, range checks, short gaps filled (6 h by default), long gaps rejected, hub-height wind correction, design-year selection
  • Read-only context from GEBCO bathymetry and the NGA World Port Index
  • Ocean Networks Canada observations compared with ERA5 (bias, MAE, RMSE, correlation) without replacing the simulation weather
Verified

Wind power

  • Offshore wind farm based on the IEA 15-MW reference turbine power curve
  • Hub-height wind correction and output capped at nameplate rating
  • Wave and tidal generation exist only as research-stage compatibility modules
Verified

Water and hydrogen production

  • PEM electrolysis with part-load operation
  • Seawater reverse-osmosis desalination with water and energy ledgers
  • Optional chronological stack degradation and automatic stack replacement
Verified

Gaseous hydrogen buffer

  • Simple inventory model, or real-gas dynamic storage that tracks pressure and temperature
  • Hydrogen properties from the Leachman (NIST) equation of state
  • Staged compression with power and flow limits
Verified

Liquefaction and LH₂ storage

  • Dynamic liquefier with capacity, turndown and energy use
  • LH₂ tank with simple boil-off, or an equilibrium-thermal model: heat ingress, self-pressurization, venting and relief-pressure checks
Verified

Electrical storage and platform loads

  • Battery storage
  • Underwater compressed-air energy storage (UCAES), as an energy store or a thermodynamic model with thermal storage
  • Platform loads and a capped backup generator, with unserved energy reported explicitly
Verified

Marine logistics

  • Terminal loading only inside wind–wave weather windows
  • Vessel loading, departure, voyage, customer unloading and return, tracked call by call
  • Cargo boil-off and tank pressure on board; optional reliquefaction, which must be energy-accounted
Verified

Pipeline export pathway

  • Alternative to shipping: compressed hydrogen sent through a single export pipeline
  • Real-gas compression work, Darcy friction losses, leakage and customer back-pressure
  • Quasi-steady model: no line-pack or transient flow
Implemented

Economics

  • CAPEX, OPEX and discounted replacements
  • Delivered cost of hydrogen (DCOH) at the transfer point, including shipping, and at the customer
  • Default costs are declared study assumptions, kept separate from the physics
Verified

Research Lab

  • One-at-a-time sensitivity and Latin-hypercube Monte Carlo
  • Interannual comparison of complete, quality-checked weather years
  • NSGA-II multi-objective sizing; every proposed design is re-checked with a full-year physical replay
  • Storage-portfolio comparison (none, battery, UCAES, combined)
Implemented

Studies

  • Versioned study recipes that reference the platform physics and never copy it
  • Published-study reproduction, templates, cloning and per-experiment readiness
  • Capability register that keeps research and planned features from running by accident
Implemented

Reproducibility and usability

  • Each run saved with its configuration and weather-file hashes and the software version
  • Run history, run comparison and a generated methods statement
  • Run-readiness checks, settings search, activity log, and cancellation at safe checkpoints

Model fidelity

Simple where possible, detailed where it matters

Most subsystems have a fast reduced-order model for screening and a higher-fidelity model that resolves more physical state. Together the higher-fidelity options form the "P8 integrated advanced chain", the frozen and internally verified physics baseline. A more detailed model is not the same as a validated one, and the software labels the two separately.

Fidelity options in v0.4.0-alpha.4
SubsystemReduced-order modelHigher-fidelity option
GH₂ storageMass inventory with prescribed compression energyReal-gas dynamic: pressure, temperature, compressibility and staged compression
Stationary LH₂ tankPrescribed boil-offEquilibrium thermal: heat ingress, liquid–vapour equilibrium, self-pressurization, venting and pressure limits
UCAESEnergy store with charge and discharge efficienciesThermodynamic isobaric: depth pressure, stored air mass, compression and expansion, thermal storage
Vessel cargoPrescribed voyage boil-offEquilibrium thermal cargo state through loading, voyage, unloading and return
ElectrolyzerConstant performanceChronological degradation with operating-hour history and stack replacement

Architecture

Physics in one place

Each layer has one job. The C++ core owns state evolution, dispatch, inventories, marine-transfer state and the hourly conservation ledgers. Python owns data, economics, analysis, studies and reporting. The desktop application never duplicates model equations.

  1. User interfacesPySide6 · CLI · Python

    Desktop application with eleven workflow pages; offshorelh2 command-line tool for reproducible runs and ERA5 download; OffshoreH2Model Python API for scripted studies.

  2. Studies and analysisPython

    Study recipes, capability register and runner; sensitivity, Monte Carlo, interannual and NSGA-II workflows; economics and delivered-cost boundaries; reports and provenance manifests.

  3. Platform servicesPython SDK

    Project schema and validation; metocean ingestion and quality control; site-data providers (ERA5 via Copernicus CDS, GEBCO, NGA World Port Index, Ocean Networks Canada); cyclic steady state, spin-up and checkpoints.

  4. Typed bridgepybind11

    Bindings only, with no hidden formulas or fallbacks. Long simulations release the Python interpreter lock so the interface stays responsive.

  5. Physical coreC++20

    Wind, electrolysis and water, real-gas hydrogen thermophysics, liquefier, LH₂ storage, battery and UCAES, terminal and vessel logistics, pipeline export, hub dispatch and hourly mass and energy ledgers.

The integrated chain, hour by hour

  1. MetoceanHourly wind and waves
  2. Wind powerTurbine curve, hub height
  3. PEM + ROElectrolysis and desalination
  4. Real-gas GH₂Buffer and compression
  5. LiquefactionTurndown, energy
  6. LH₂ storagePressure, boil-off
  7. TerminalWeather windows
  8. VesselVoyage, cargo state
  9. CustomerDelivered hydrogen
  10. EconomicsCAPEX, OPEX, DCOH

Workflow

From a map point to a citable result

The desktop application follows the order of a study. Each page owns one part of the project, and a run-readiness check lists anything that would block a run or affect how its results should be read.

  1. DashboardCurrent study status, run readiness and shortcuts to each step.
  2. StudiesPublished studies, templates and your own study recipes.
  3. Project SetupName the study and choose the export pathway.
  4. Site & MetoceanPick a site, prepare or import weather data, run quality control.
  5. System DesignChoose technologies and fix, optimize or disable each component.
  6. Operations & ShippingShipping procedure, vessel and terminal sizing, route and weather limits.
  7. EconomicsFinancial and cost assumptions, separate from the physics.
  8. SimulationRun a finite chronological or cyclic steady-state year with hard checks.
  9. ResultsKey results, hourly charts, run history, comparison and export.
  10. Research LabSensitivity, uncertainty, interannual, optimization and storage studies.
  11. Validation & EvidenceWhat has been verified, screened against literature or still needs validation.

Read the step-by-step guide

Interface tour

The desktop application

Screenshots from the current build (v0.4.0-alpha.4) running the bundled 2020 North Atlantic demonstration case. Select an image to open it at full resolution.

Site and Metocean page with an offline world map, a selected point at 45 degrees north and 60 degrees west, coordinate fields, a complete-years selector and a Prepare Site Data button.
Site & Metocean. Choose a point on the offline map or type coordinates, choose complete years, and prepare ERA5 wind and wave data with recorded provenance. Weather quality control runs before any simulation.

Research applications

Questions the platform is built to answer

Because the whole chain is simulated together, a constraint in one stage shows up in all the others. That makes it possible to ask questions which isolated component models cannot answer.

Resource and siting

How do wind and wave climate, and year-to-year variability, change production and marine operability at a candidate site?

System sizing

Which combination of wind, electrolysis, liquefaction and storage capacity performs best within declared bounds and service constraints?

Storage

When do batteries, compressed-air storage or larger hydrogen inventories reduce delivered cost or improve service, and when do they not?

Hydrogen chain

How do gas pressure limits, LH₂ tank thermodynamics, electrolyzer degradation and water demand constrain operation?

Marine logistics

How do weather windows, vessel availability, boil-off and delivery schedules affect the hydrogen that actually reaches the customer?

Economics and uncertainty

How sensitive is delivered cost to technical and economic assumptions, and how wide is the spread under declared uncertainty?

Model fidelity as a research question. OffshoreLH2 can run the same hardware with simplified and with detailed physics, so a change caused by the design can be told apart from a change caused by the model. An earlier LH₂-hub study has been rebuilt as a study recipe. It reproduces the original result under the original assumptions, and the higher-fidelity chain then shows how far the conclusions move once tank thermodynamics, vessel cargo state and degradation are resolved.

My 2026 IJHE article on operability thresholds studied the same class of system with a dedicated hourly production, storage and vessel model. Turning studies of that kind into OffshoreLH2 recipes is ongoing work.

Reproducible studies

Papers become recipes, not new code

The platform separates three things. The physical models are the ingredients and the analysis methods are the equipment. A study is a recipe that says which of each to use, in what order and with which data. A recipe never brings its own physics.

A study recipe (.olh2study, versioned JSON) declares:

  • sites and datasets, with SHA-256 hashes and the weather years that passed quality control;
  • the export pathway, technologies and fidelity levels;
  • which components are fixed and which are optimized, with their bounds;
  • cost boundaries, optimization settings and seeds;
  • experiments, requested outputs and provenance, including what the recipe was cloned from.

Each experiment is shown as Ready, Declared (valid, but not yet connected to a runner) or Blocked (with the reason). Only Ready experiments run, and each run writes to a new folder with a manifest of its inputs and hashes. Generic runners currently execute baseline, sensitivity, uncertainty, interannual and NSGA-II experiments for single-site studies.

What every run leaves behind

FileContents
summary.jsonKey results, economics and check outcomes
timeseries.csvHourly simulation output
report.htmlPortable, human-readable report
project_snapshot.jsonThe exact configuration used
manifest.jsonSoftware and core versions, build commit, configuration and weather hashes
analysis_context.jsonSeed, sample counts and inputs for each Research Lab analysis

A cancelled run never writes a result bundle. It is marked CANCELLED / INCOMPLETE so that partial work cannot be mistaken for a finished result.

Verification and evidence

What has been checked, and what has not

The physics baseline (called P8) was frozen and qualified on Windows at a single source commit in September 2026. This establishes internal software verification and reproducibility of that baseline. It is not independent experimental validation of every subsystem.

18 / 18native C++ tests passed at the frozen baseline commit
8,784 hfull leap-year integrated acceptance run with an independent audit
7 yearsconsecutive state-continuity stress test passed
~10⁻¹⁶maximum hourly relative error of the electrical ledger in the canonical case

Also passed at the frozen baseline

  • Checkpoint and restart give results identical to an uninterrupted run
  • Water balance and ship-energy closure
  • Optimizer proposals replayed with full physics; infeasible designs stay infeasible
  • Hydrogen-property check against the NIST/Leachman equation of state
  • A deliberately unsafe LH₂ tank design is rejected

Before the v0.4.0-alpha.3 release, the integrated suite reported 432 Python tests passed and 1 skipped.

Still open

  • LH₂ self-pressurization against NASA K-site tank data (comparison harness prepared)
  • Matched experimental comparisons for UCAES, PEM part-load operation and vessel boil-off
  • Liquefier plant comparison and project-specific marine operability evidence
  • Project-specific cost sources before economics are treated as forecasts

Scope. OffshoreLH2 is research software. It is not a certified engineering-design, class-approval, structural, CFD, process-safety or marine-assurance tool, and its default costs are study assumptions rather than vendor quotes.

Status and roadmap

Where development stands

OffshoreLH2 is in active development as a research preview. New capabilities are added one at a time, and each must pass its own evidence gates before it can be used in normal studies.

v0.4.0-alpha.4

Available now

  • Liquid-hydrogen pathway, end to end
  • Gaseous-hydrogen pipeline pathway (quasi-steady)
  • Higher-fidelity thermophysics and electrolyzer degradation
  • ERA5 site preparation and Ocean Networks Canada comparison
  • Research Lab, Studies, run history and provenance
Not enabled

Research stage

  • Compressed-hydrogen shipping pathway
  • Ammonia carrier pathway
  • Wave and tidal generation (compatibility modules)
  • Fidelity comparison and physics attribution, currently available only through the published-study workflow
No implementation yet

Planned

  • MILP and MPC dispatch back-ends
  • Multi-site study execution and cross-fidelity design replay
  • Offshore solar; alkaline and solid-oxide electrolysis
  • Hybrid offshore energy hubs and offshore CO₂ capture, transport and storage
  • Lifecycle-emissions objective

Recent releases

  1. Ocean Networks Canada observational validation

    Live Oceans 3.0 observations, targeted station discovery and a Campbell River wind comparison workflow; matched-sample bias, MAE, RMSE and correlation against ERA5; QA/QC flags and provenance kept; API credentials redacted from errors.

  2. Integrated research-platform preview

    Gaseous pipeline pathway integrated alongside LH₂; study recipes and published-study reproduction; run readiness, run history, run comparison and methods statements; cooperative cancellation; pathway-aware Results Explorer.

  3. Research workbench

    Dashboard, offline world map, ERA5 acquisition with provenance, GEBCO and port context, Research Lab and the Validation & Evidence workspace, built on the frozen P8 physics baseline.

Access and citation

The source repository is private while the first public release is prepared. The source carries an Apache-2.0 licence and citation metadata, and an archived release with a DOI is planned. Researchers interested in evaluation or collaboration are welcome to ask for access.