Skip to content

Latest commit

 

History

History
48 lines (32 loc) · 2.53 KB

File metadata and controls

48 lines (32 loc) · 2.53 KB

EnergyModelsGasNetworks

DOI Build Status Stable In Development

EnergyModelsGasNetworks extends the EnergyModelsX ecosystem with pressure-feasible gas transport and pooling of blended gases (e.g. hydrogen–methane). It adds pressure potentials, Weymouth-based link constraints, and quality tracking to EnergyModelsBase.

Features

  • Pressure variables and bounds for nodes and links via ResourcePressure and AbstractPressureData.
  • Weymouth flow–pressure constraints: Taylor cuts for single-component gases, piecewise-affine planes for blended gases.
  • Pooling formulation with component tracking and quality bounds (Alfaki & Haugland, 2013).
  • Helper controls for PWA generation (set_optimizer_pwa!, set_step_pressure!) and data structures for blend/pressure metadata.

Installation

] add EnergyModelsGasNetworks

Choose a solver stack appropriate to your use case:

  • Single-component pressure: any MIP solver (e.g. HiGHS).
  • Pooling or blended-gas pressure: nonconvex MINLP stack (e.g. Alpine + Ipopt + a MIP solver).

See the Quick Start for step-by-step instructions.

Examples

Run the bundled examples from a REPL:

julia> using EnergyModelsGasNetworks
julia> exdir = joinpath(pkgdir(EnergyModelsGasNetworks), "examples")
julia> include(joinpath(exdir, "pressure.jl"))   # pressure drop with Taylor cuts
julia> include(joinpath(exdir, "pooling.jl"))    # hydrogen–methane blending

Each script builds a case, sets an optimiser, solves, and prints key flows/pressures or proportions using PrettyTables.

Documentation

The full documentation covers installation, examples, background, and the public API.

Funding

Developed with support from the European Union’s Clean Hydrogen Partnership project SHIMMER (grant 101111888).