Rule-Simulation Interaction for Each Timestep
To summarize, the following are the steps that are taken for each timestep in the model.
1. At the beginning of the timestep, cumulative local inflows are disaggregated spatially and an inflow forecast is computed for each reservoir and control point object.
2. The surcharge release rules execute in upstream to downstream order and set the surcharge release flag on the Outflow slot of each reservoir. After each rule executes, the affected reservoir dispatches and computes its surcharge release forecast. These releases are routed downstream to the Inflow slot of the next reservoir before the next rule executes.
3. The flood control minimum release rules optionally set the reservoir outflow and flood control minimum release based on the rule logic. After each rule executes, the affected reservoir dispatches. These releases are routed downstream before the next rule executes.
4. The regulation discharge rule executes and sets the regulation discharge flag on the Reg Discharge Calculation slot on each control point. The control points dispatch and compute regulation discharge and empty space hydrographs for the forecast period.
5. The flood control rule executes and invokes the FloodControl predefined function. This function computes the flood control releases for the subbasin and returns the flood control release and outflow values, for the current timestep, for each reservoir. The flood control rule sets the flood control release and outflow values on each reservoir. The reservoir objects redispatch and solve for pool elevation, storage and any other reservoir methods that have been selected. The outflow values are routed downstream.
6. For each Low-flow Release control point:
– The low-flow release rule execute and invoke the MeetLowFlowRequirements predefined function. This function computes the release from each reservoir in the subbasin to meet the low-flow demand at the control point. The rule sets the Low-flow Release and Outflow slots causing the objects to dispatch and propagate the effect.
– The low-flow diversion rules execute to route any low-flow releases around lagging reaches by setting Diversion Requests equal to the low-flow release. This causes the reaches and water users to redispatch. Thus, low-flow releases arrive at their control point destinations immediately.
7. The reservoir diversion rules execute and invoke the ComputeReservoirDiversions predefined function. This function computes the diversion that must be made from each reservoir in the subbasin to meet the demands in the subbasin.
Note: A single reservoir can serve multiple demands and a demand can be met from multiple reservoirs. After setting the diversions, the reservoir, diversion objects and water users redispatch.
8. The hydropower rule executes the HydropowerRelease predefined function. This function executes the hydropower release function on the flood control subbasin to determine the additional hydropower release that is necessary to meet the load without causing additional downstream flooding. The rule sets the Additional Hydropower Release slot and resets the reservoir Outflow slot. This causes the system to redispatch and solve the entire system.
9. The Fish Release rules (where defined) execute and determine the additional outflow to meet the Fish Release demand. The rule sets the reservoir Outflow and reservoir Off Peak Spill slots. This again causes the system to redispatch and solve. The rule also performs accounting actions to calculate and set the inflows and outflows to the fish account on the reservoir.
10. If no other rules exist, the timestep is complete. RiverWare moves to the next controller timestep and the process is repeated.