skip to main content
Modeling Unregulated Conditions
USACE‑SWD Modeling Techniques
Modeling Unregulated Conditions
Unregulated flows are defined as those flows that would have occurred without the dams/reservoirs regulating the river. Other terms for these flows are unregulated, uncontrolled, pre-project, and unconstrained flows. The unregulated flows are often used to compute the system benefits; that is, how much benefit has been gained by constructing the projects.
Unregulated flows are computed using the following steps.
1. Select methods to remove the effect of one or more reservoirs. When specified, the reservoir will pass inflows.
2. Run the model with the reservoirs removed and take snapshots of the desired slots.
Scripts can be used to automate this process; see “Script Management” in Automation Tools for details.
In the following section, we first describe how to disable the reservoir. See “Model Run Mechanism”, for details on how to make the runs for the regulated, fully unregulated, and partially unregulated systems.
Functionality to Remove the Effect of a Reservoir
To remove the effect of reservoir storage and other processes, select the Pass Inflows method in the Disable Reservoir Processes category; see “Pass Inflows” in Objects and Methods for details. This performs the following functions.
• Changes the Workspace icon. When this method is selected, the icon on the workspace is modified to indicate the Reservoir is not calculating storage as shown in Figure 4.1.
Figure 4.1   
• Enables an alternative dispatch method. When this method is selected, only the Outflow Equals Sum of Inflows dispatch method is available. This dispatch method performs Equation 4.1.
Model Run Mechanism
To compute both regulated and unregulated flows, two simulations are required. This section describes an approach for USACE‑SWD.
• Computation of flows for a fully unregulated system. Any model can be configure to compute unregulated flows by simulating the system without the effects of the reservoirs in a separate run using scripts. Snapshots will be used to compare results.
• Computation of flows for a partially unregulated system. A subset of the reservoirs can be disabled to represent a partially unregulated system. This will allow the user to make a run with the partially regulated system using Rulebased Simulation. Snapshots will be used to compare results.
Although these two applications are similar and use the same approach, they will use different scripts. The fully unregulated system is essentially a pure simulation with no rules needed. For the partially unregulated system, rules are necessary and those rules and the flood control algorithm must know how to deal with a disabled reservoir. The partially unregulated run requires the user to select or describe what they want to model, so is more complex and warrants a different script.
The following sections describe the design for these two approaches
Computation of Flows for a Fully Unregulated System
When you want to compute the flows at any point in the system without the effect of any reservoir, two simulations will be run. The first run computes the unregulated flows, the second computes the standard regulated flows using rulebased simulation. Results can be analyzed using snapshots. Simple scripts will be used to modify the system and make the runs.
Following is the conceptual approach.
1. Compute unregulated flows by executing a script; see “Script Management” in Automation Tools for details on scripts. Figure 4.2 shows a sample Script Dashboard. The script performs the following process:
a. Set a method on each reservoir indicating it should Pass Inflows, as described above.
b. Set the run controller to Simulation.
c. Run the model. With the new method, the reservoirs will still forecast hydrologic inflows, but no other physical processes will be made. When the reservoirs dispatch, they will set , thus propagating the flows downstream.
d. Create snapshots of desired slots.
Figure 4.2   
2. You could then look at the results if desired.
3. Compute regulated flows by executing a script that does the following.
a. Set the method on each reservoir to its normal regulated mode (None method in the Disable Reservoir Processes category).
b. Set the run control to Rulebased Simulation.
c. Load the RBS ruleset set if necessary.
d. Run the model.
4. At this point, the regulated results are in the objects and slots. They can be compared with the snapshots from the unregulated run.
The process above assumes two scripts: Step 1. and Step 3.; these could be combined into one script that fully automates the runs if desired. With this approach it is easy for the user to run just the regulated system, the unregulated system or both.
Computation of Flows for a Partially Unregulated System
Computation of flows for a partially unregulated system will be performed in a separate run and results can be analyzed using snapshots. Again, scripts will be used to modify the model and make the run. Following is the conceptual approach for a POR model.
1. Execute a script that does the following to “Unregulate” specific reservoirs.
a. Set a method on one or more reservoirs indicating it is Passing Inflows; see “Functionality to Remove the Effect of a Reservoir” for details.
b. Disable any rules that reference the reservoir (In particular, the Surcharge rule for the disabled reservoir must be disabled).
c. Run the model in rulebased simulation. The unregulated reservoir will still do its hydrologic inflow forecasting, but no other physical processes. When it dispatches, it will set , thus propagating the flows downstream.
d. Take Snapshots of key results to preserve their values.
2. Execute a script that does the following to undo the script above and impose the “Regulation” again.
a. Set a method on the reservoir indicating it is back to its normal “Regulated”.
b. Enable any rules that reference the reservoir (Surcharge).
c. Make a run model.
3. Compare the resulting flows with the snapshots from the unregulated run.
Information on Other Objects When Reservoirs Are Disabled
Because the USACE‑SWD methods are a system approach, disabling reservoirs can affect other objects, processes, or operating policies. The following sections identify some issues to keep in mind when using this functionality.
Diversions Based on Disabled Reservoirs
No diversions are ever made from a disabled reservoir. Reach diversions will continue to be made based on their diversion requests.
On the Water User, and Diversion Object, there are methods called Reservoir Level Lookup which compute the Diversion Requested based on the level of a single reference reservoir. If that reference reservoir is disabled, the request slots are set to zero and a brown warning message is issued (one per run). If you wish to use an alternative diversion request, add an action to the script to change the method. When you want to undo the unregulated conditions, that script could reset the method back to the original method and it would be regulated again. No manual changes would be necessary.
To turn off reach diversions or to use an alternative value, select a different request method on the water user or diversion object within the script that unregulates the system. The most likely choice would be the Periodic Diversion Request method which allows you to specify a periodic slot of diversion requests. A single value in the table would represent a scalar request. To undo this action, use the Set Method action to reselect the original method. The original table data will then be used. Alternatively, set the Diversion to a specified value. Use the Set Series Slot Values action to set the Diversion equal to a set of values for all timesteps in the run. To undo this action, add a Set Series Slot Flags action that changes all those slots zero diversion slots to have the O flag. On the next run, the values will be cleared and the values will be recomputed. This approach would be useful if you have diversions that are not periodic or scalar.
In addition, in the Reservoir Diversions policy, you can divert water from one reservoir to another reservoir; see “Reservoir Diversions” for details. That Demand reservoir can limit the diversion from the supply reservoir. If the Demand reservoir is disabled and set to Pass Inflows, it will issue an error that it does not have an operating level. You should change the method on water user to not limit by reservoir level.
Seepage Methods
In some models, Seepage is set to an input and linked to the downstream object. If this was used this way in an unregulated model, it would add water to the system. Instead, a seepage method like Single Seepage Value should be selected on the disabled reservoir. Then no Seepage will be set.
Hydropower Releases Downstream Search
The hydropower release algorithm proposes a hydropower release and then searches downstream to see if it causes additional downstream flooding. This algorithm is designed to stop at a downstream reservoir. But, if the downstream reservoir is disabled and is set to Pass Inflows, the search continues downstream as though the reservoir was not there. See “Hydropower” for details on the algorithm.
Low-flow Requirements Based on Disabled Reservoirs
On the Control Point, there is a method called Reservoir Level Lookup which computes the low-flow requirement based on the level of a single reference reservoir. If that reference reservoir is disabled, the following behavior now occurs:
• Simulation (fully unregulated). No Low-flow Requirement is computed, but the run can continue. This assumes no operations are made to meet these demands.
• Rulebased Simulation (partially unregulated). An error is issued as the low-flow computation is not valid. A different Low-flow Requirement method should be selected.
Benefits Computations
The flood reduction and benefits computation can be made using a combination of rules, expression slots, and/or statistical slots using regulated flows and unregulated flows.
Revised: 06/03/2019