gtopt/reservoir.hpp file

Defines the Reservoir structure representing a water reservoir.

This file defines the gtopt::Reservoir structure, which models a water reservoir within a hydro-thermal power system. A reservoir stores water that drives turbines, subject to volume limits, spill constraints, and evaporation losses.

Unit conventions

  • Volume fields (emin, emax, eini, efin, capacity): hm³ (cubic hectometre = 10⁶ m³). Legacy comments may say "dam³" but the actual unit is hm³, as demonstrated by flow_conversion_rate = 0.0036: 3600 m³ / 10⁶ = 0.0036.
  • Flow fields (spillway_capacity, fmin, fmax): m³/s
  • The default flow_conversion_rate = 0.0036 converts m³/s × h → hm³: volume = 0.0036 × flow_m3s × duration_h

JSON Example

{
  "uid": 1,
  "name": "res1",
  "junction": "j1",
  "emin": 100,
  "emax": 5000,
  "eini": 2500
}

Fields that accept a number/array/string value can hold:

  • A scalar constant
  • A 1-D inline array indexed by [stage]
  • A filename string referencing a Parquet/CSV schedule in input_directory/Reservoir/

Namespaces

namespace gtopt

Classes

struct gtopt::Reservoir
Water reservoir in a hydro cascade system.