ComputeReservoirDiversions

Description

Used to meet multiple water user demands using multiple reservoir diversions

Type

LIST{LIST {SLOT, NUMERIC, OBJECT}}

Arguments

Type

Meaning

1

STRING

The computational subbasin used for the calculations

Evaluation

Returns a LIST of slot, value triplets. Each triplet is a LIST that contains a slot (at index zero) and the value to set on that slot (at index one). The slot, value triplets computed by this function are for the subslots on the Supply From Reservoirs slot on each Water User object and the Incoming Available Water slot on each Water User object.

For each Water User in the specified subbasin:

  • A list of supply reservoirs is generated by following the links to the Supply From Reservoirs slot
  • The list of reservoirs is ranked by Operating Level in descending order.
  • Each reservoir makes a diversion to meet the Water User’s Diversion Requested value. This value is limited by: the Maximum Delivery Rate specified on the Water User object that applies to the current reservoir, the Max Diversion specified on the Diversion object that applies to the current reservoir, and the amount of water remaining in the conservation pool.
  • If the Limit By Reservoir Level method is selected (on the Water User object) a diversion cannot be made if the Demand Reservoir is in the flood pool or has a higher operating level than the supply reservoir.
  • Each reservoir is visited until the Diversion Requested is met or there are no reservoirs left to consider.
  • The function returns each subslot on each Supply From Reservoirs slot and the associated value. Also the Incoming Available Water slot on each Water User is returned with the value to be set on that slot. The Incoming Available Water is the sum of all the Supply From Reservoirs subslot values
Comments

The computational subbasin specified as the argument to this function must contain all the objects relevant to these calculations (Water Users, Diversion Objects, Reservoirs, etc.)

The computational subbasin must have a method selected in the Diversion From Reservoirs category. Please consult the help file for the Computational Subbasin object (under Simulation Objects) for more details on this method category.

The use of this function requires a specific configuration of objects and method selections. The schematic diagram below displays the required object and link configurations.

Use of this function for USACE-SWD is described .

 
ComputeReservoirDiversions("Diversion Basin") if Diversion Basin contains two reservoirs and the WU1 and WU2 water users connected to those reservoirs.
 
{ {"WU1.Supply From Reservoirs.WU1_Divert__dot__Multi Outflow",
2.26534773 "cms", "WU1"},
{"WU1.Incoming Available Water", 2.26534773 "cms", "WU1"},
{"WU2.Supply From Reservoirs.WU2_Divert__dot__Multi Outflow",
0.67960432 "cms", "WU2"},
{"WU2.Incoming Available Water", 0.67960432 "cms", "WU2"} }
 
FOR EACH ( LIST result IN ComputeReservoirDiversions("Diversion Basin")) DO
result<0> [] = result<1>
END FOR EACH

In the diagram below, the Diversion slot on each reservoir is linked to the Diversion slot on the Diversion Object. The demands are represented by the Water User objects. The Supply From Reservoirs slot on each Water User is linked to the Multi Outflow slot on each Diversion Object that can act as a supply for that demand. The rule sets the values on the Supply From Reservoirs slots. These propagate to the Multi Outflow slots on the connected Diversion Objects. The Diversion objects solve for their Diversion slot. The Diversion values are passed to the Diversion slot on the Reservoir object and the water is removed from the Reservoir. On each reservoir, the Conservation and Flood Pools method in the Operating Levels category should be selected to instantiate the Bottom of Conservation Pool slot.

Schematic Diagram for ComputeReservoirDiversions Function: