Reservoir balance relaxation
The relaxation module does one thing as of now. It enables relaxing the reservoir balance constraints by combining the flow in and out of a reservoir into a single constraint. This speeds up LP computation resulting in shorter simulation times.
In order to use this feature, enable the relaxation module in the run configuration, and set the appropriate configuration parameters. The most important is the setting for enabling the functionality, and the selection of reservoirs. Setting the volume limit means that every reservoir above this limit is a candidate for relaxation, alternatively a specific list of reservoir ids can be set.
The feature works best for reservoirs large enough that it is unliely that any reservoir limits are reached during any period of time. The relaxation works by combining the reservoir balance for the whole period into a single constraint and reservoir variable, and inserting all flow variables into the one constraint. This means that it is not possible to avoid tactical min/max limits intra-period. To mitigate this problem the simulation checks the results for the whole period after solve for each reservoir. Should any limits be broken, the reservoir is flagged and a resolve occurs. Flagged reservoirs get the full set of constraints reinstated.
The speedup of this process is noticeable without severe effect on result quality, although the speedup is not deterministic. It is possible that broken limits might be pushed to another reservoir resulting in more resolves.