Dispatch Methods
Unless otherwise specified, all the following dispatch methods are available when the Pump and Release Only method is selected in the Pump and Release Accommodation category.
solveMB_givenPumpsUsedInflow
Solves the mass balance equation when the number of pumping units is given.
Required Known Slots
• Tailwater Base Value
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal has not yet solved, the dispatch method waits for it to solve before continuing. Then, the pump power calculation method is executed. Inflow, Outflow, Pump Power and Energy are solved within the pump power calculations.
Storage is solved by the mass balance equation, as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value.
Gate setting, energy in storage, spilled energy, and future value calculations are then performed if the user has selected them. The dispatch method is then complete.
Note: In specific cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes. The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate. If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.
solveMB_givenPumpedFlowInflow
Solves the mass balance equation when Inflow is known.
Required Known Slots
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal has not yet solved, the dispatch method waits for it to solve before continuing. Then, the pump power calculation method is executed. Pumps Used, Outflow, Pump Power and Energy are solved within the pump power calculations.
Storage is solved by the mass balance equation, as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value.
Gate setting, energy in storage, spilled energy, and future value calculations are then performed if the user has selected them. The dispatch method is then complete.
Note: In specific cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes. The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate. If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.
solveMB_givenPumpPowerInflow
Solves the mass balance equation when Pump Power is known.
Required Known Slots
• Tailwater Base Value
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal has not yet solved, the dispatch method waits for it to solve before continuing. Then, the pump power calculation method is executed. Pumps Used, Outflow, Inflow and Energy are solved within the pump power calculations.
Storage is solved by the mass balance equation, as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value.
Gate setting, energy in storage, spilled energy, and future value calculations are then performed if the user has selected them. The dispatch method is then complete.
Note: In cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes.
• The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate.
• If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.
solveMB_givenInflowHW
This dispatch routine determines if the reservoir is draining or filling, and then refers to the appropriate dispatch method for the reservoir condition.
Required Known Slots
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal is linked and has not yet solved, the dispatch method waits for it to solve before continuing. If Pool Elevation is flagged TARGET, an error is posted. Target operations are not valid for the Pumped Storage Reservoir. Storage is then calculated using the Elevation Volume Table and the known Pool Elevation.
Once the checks have passed, Outflow is set equal to zero and Inflow is calculated by the mass balance equation, as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods.
If the calculated value for Inflow is greater than zero, the reservoir is filling and the solveMB_givenInflow method is executed. If Inflow is less than zero, the reservoir is releasing and Outflow is set as the absolute value of Inflow. The solveMB_givenOutflow method is then executed.
solveMB_givenInflowStorage
This dispatch routine determines if the reservoir is draining or filling, and then refers to the appropriate dispatch method for the reservoir condition.
Required Known Slots
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal is linked and has not yet solved, the dispatch method waits for it to solve before continuing. If Storage is flagged TARGET, an error is posted. Target operations are not valid for the Pumped Storage Reservoir. Pool Elevation is then calculated using the Elevation Volume Table and the known Storage value.
Once the checks have passed, Outflow is set equal to zero and Inflow is calculated by the mass balance equation, as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods.
If the calculated value for Inflow is greater than zero, the reservoir is filling and the solveMB_givenInflow method is executed. If Inflow is less than zero, the reservoir is releasing and Outflow is set as the absolute value of Inflow. The solveMB_givenOutflow method is then executed.
solveMB_givenOutflowInflow
Solves the mass balance equation when Outflow is known. It is executed when the following list of knowns and unknowns are met or when it is called from either solveMB_givenHW or solveMB_givenStorage. Pump power calculations are not utilized in this method because it assumes the reservoir is only releasing water.
Required Known Slots
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal is linked and has not yet solved, the dispatch method waits for it to solve before continuing. If Outflow is flagged MAX CAPACITY, it is set as the sum of the maximum spill and maximum turbine release. If this dispatch method is not being called from solveMB_givenHW or solveMB_givenStorage, Storage and Pool Elevation must be calculated from mass balance (inflow is set to zero), as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value.
If the dispatch method is being called from solveMB_givenHW or solveMB_givenStorage, Storage and Pool elevation are already known.
The spill method is then executed followed by the power calculation method. After Turbine Release has been calculated, the spill method may be executed again if there are excess outflows.
Gate setting, energy in storage, spilled energy and future value calculations are performed if the user has selected them. The dispatch method is then complete.
Note: In cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes.
• The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate.
• If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.
solveMB_givenEnergyInflow
Solves the mass balance equation when Energy is known. It assumes that there is outflow through the turbine but no inflow through the pumps.
Required Known Slots
• Tailwater Base Value
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal object is linked but has not yet solved, the dispatch method waits for it to solve before continuing.
Inflow is set to zero because there is no flow entering through the pumps. Outflow and Storage must then be solved by iteration. First, the spill, tailwater, and power release calculation methods are executed. Then Outflow is calculated as the sum of Turbine Release and Spill. With the new value of Outflow, Storage is solved as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value. The process is repeated with the new Storage value until the solution converges.
Power, gate setting, energy in storage, spilled energy, and future value calculations are performed if the user has selected them. The dispatch method is then complete.
Note: In cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes.
• The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate.
• If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.
solveMB_givenPumpedFlowOutflowInflow
This method is only available when Pump and Release is selected in the Pump and Release Accommodation category. It solves the object when Pumped Flow, Outflow, and Inflow are known.
Required Known Slots
Required Unknown Slots
Method Details
This dispatch method checks to see if either Outflow or Pumped Flow is zero.
• If neither are zero, an error is flagged and the run terminates because a non-zero number cannot be given to both Pumped Flow and Outflow.
• If Outflow is zero, then the reservoir is pumping and the solveMB_givenPumpedFlowInflow method is executed.
• If Pumped Flow is zero, then the reservoir is releasing and the solveMB_givenOutflowInflow method is executed.
solveMB_givenInflowPumpAndGenEnergy
This method is available for both the Pump or Release Only, and the Pump and Release methods in the Pump and Release Accommodation category. It is used when pumping and turbine release both occur in the same timestep.
Required Known Slots
• Tailwater Base Value
Required Unknown Slots
Method Details
The method first checks if the Canal object is linked. If the Canal object is linked but has not yet solved, the dispatch method waits for it to solve before continuing.
An iterative procedure is used to solve for the unknowns. First, the Spill and Tailwater methods are executed. Then calculations are performed, similar to the Unit Pump Power method, which determine the Inflow and Pumps Used necessary to meet the given Pump Energy. The power release method is executed and Outflow is calculated as the sum of Turbine Release and Spill. With the new value of Outflow, Storage is solved as follows:
The mass balance equation may include the effects of evaporation, bank storage, seepage, or precipitation depending on the selected user methods. The inflow term includes the effects of hydrologic inflow, diversion and return flow. Since the evaporation, bank storage, seepage and precipitation terms depend upon the Storage value, the mass balance solution is an iterative process. (See the note below.) Pool Elevation is calculated using the Elevation Volume Table and the calculated Storage value. The process is repeated with the new Storage value until the solution converges.
Power, gate setting, energy in storage, spilled energy, and future value calculations are performed if the user has selected them. The dispatch method is then complete.
Note: In cases when Storage is very close to zero, the iterative mass balance solution will follow one of two possible processes.
• The first process allows the loop to iterate in the negative storage range before final convergence. Convergence in this situation is typically quite rapid, and in instances when the final storage is, in fact, negative, an error is posted stating that the outflow is too large to be physically possible. This process is invoked if an additional row is appended to the Elevation Volume table specifying a negative storage value within which the loop can iterate.
• If specifying and allowing negative storage values in the iteration is not desired, no negative storage value should be appended to the Elevation Volume table. In this second process, the algorithm uses storage equals zero whenever it is in the negative storage range. If the outflow is really too great to be physically possible, the algorithm will keep iterating until it reaches maximum iterations. If this happens, RiverWare does a final mass balance check at the storage equals zero point and posts an error stating that the outflow is too large.