reservoir_discharge_limit_lp.hpp file
LP representation of a ReservoirDischargeLimit constraint.
The ReservoirDischargeLimitLP class provides the LP formulation for volume-dependent discharge limits. For each (scenario, stage) pair it creates:
- A free
qehvariable (stage-average hourly discharge [m³/s]) - Per-block averaging constraints linking block flows to
qeh:qeh - (dur_b / dur_stage) × flow_b = 0 A stage-level inequality (volume-dependent discharge cap):
qeh - slope * energy_scale * 0.5 * eini - slope * energy_scale * 0.5 * efin <= intercept
When the ReservoirDischargeLimit has multiple piecewise segments, update_lp() selects the active segment based on the reservoir volume from the previous solve and updates the LP constraint coefficients/RHS.
Namespaces
- namespace gtopt
Classes
- struct gtopt::ReservoirDischargeLimitLP::RDLState
- Tracks current LP state for coefficient updates.
- class gtopt::ReservoirDischargeLimitLP
- LP wrapper for ReservoirDischargeLimit constraints.