skip to main content
Release Notes Version 1.1
Release Notes Version 1.1
This document describes new features, enhancements and changes that are included in RiverWare Version 1.1, released on July 7, 1997. These changes are new to the executable since the release of RiverWare Version 1.0 on May 7, 1997.
Please direct questions to CADSWES Technical Support at (303) 492-7956 or dumonta@colorado.edu
Required Model File Updates
• There are no changes since Version 1.0 requiring model file updates.
Special Attention Notes
• Resource Database. The name of the RiverWare Resource Database has been changed from “RiverWareDB” to “RiverWareDB.” All files in the executable directory which contain the name “RiverWare” are now consistent with the lowercase spelling of the executable name.
Known Bugs and Work-Arounds
• Rulebased Simulation. Slots which are directly set by rules do not have their R priority flags reset when a new value is calculated during redispatching. This bug has already been fixed in RiverWare version 1.1; patchlevel 1, available via the CADSWES ftp site.
Model Loading and Saving
File Chooser Default Directory
By default, RiverWare file choosers now display the directory of the last file to have been read or written. This applies independently to Loading and Saving model files, Importing and Exporting Data, and Loading, Editing, and Saving SCT files. This feature minimizes the amount of directory traversing required for repeated file actions. For example, importing several sets of data from a common directory will only require changing to that directory once; any subsequent invocation of the file chooser will come up in the same directory.
The default paths for each type of filechooser are saved in the.vgalaxy.1.vr file of the user’s home directory at the conclusion of each RiverWare session. If no .vgalaxy.1.vr file exists when a RiverWare session is launched, the default file chooser paths are the user’s home directory path. In order to “freeze” a desired set of default paths indefinitely, the .vgalaxy.1.vr file may be write protected with the desired settings.
Simulation
Tolerance in Dispatch Methods
The hard-wired tolerance for error checks within dispatch methods has been changed from an absolute value of 1x10-8 to a value based on the Convergence slot of the Object. The checks are used to verify the validity of computed Spills against (Turbine) Release and Outflow. The new tolerance is expressed in the form:
Convergence * Outflow / 100
The new tolerance computation is consistent with the epsilon calculation used for the convergence of iterative loops, and ensures that all values computed within a dispatch method are subject to the same convergence. This change does not affect model results, but may relax error criteria in some cases.
Engineering Objects
Power Reservoirs
Listed below are all modifications made to Power Reservoirs.
Best Hydro Capacity
The utility method which calculates the Hydro Capacity of PowerReservoirs for the plantPowerCalc and unitGeneratorPowerCalc Methods has been expanded to calculate Best Hydro Capacity. Best Hydro Capacity is the hypothetical power generation of a Reservoir based on operating the turbines at the most efficient flow rate at each timestep. It is calculated as the product of the most efficient flow rate through the turbines and the power coefficient taken from the Best Power Coefficient table for the current Operating Head. This value is now reported in addition to Hydro Capacity, which is based on a maximum flow rate and Max Power Coefficient for the current Operating Head.
Output Slots
• Best Hydro Capacity (bestHydroCap)
– SeriesSlot
– POWER
– hypothetical most efficient power production
Min and Max Operating Head for peakPowerCalc and peakBasePowerCalc
The Minimum and Maximum fields in the Operating Head Configuration menu are now required inputs for both the peakPowerCalc and peakBasePowerCalc User Methods. These Methods previously calculated Energy between the maximum and minimum Operating Head values in the Best Generator Flow and Best Generator Power tables. Due to the occasional need for operating beyond the maximum or minimum Operating Head, these values must now be input separately from the table values. These Methods will produce an error and abort the run if Max and Min Operating Heads are not specified.
Water Users
Listed below are all modifications made to Water Users.
Depletion Requested Default Value
When it is not input, the Depletion Requested slot now defaults to the value in the Diversion Requested slot. Water Users which do not have a specified Depletion Request will deplete the entire amount of their Diversion. Return Flow, in this case, is zero.
The default Depletion Requested applies for all Linking Structures except the Lumped Structure with Diversion Requested equal to zero. In this special case, the Depletion Requested is left as NaN.
Optimization
Final CPLEX Problem
The Optimization-generated “OPT_cplex_prob.final” file is now saved in the same directory as the other Optimization output files. As before, this directory is determined according to the following logic:
/($ RiverWare_OPT_DIR or /tmp) / opt-(user name) / (optional File Directory in the Optimization Controller Parameters dialog)/
Rulebased Simulation
Max Outflow
Rulebased Simulation may now access the Max Outflow functions of Reservoir Objects used in Simulation. Three new functions have been added to Reservoirs which can be called from within Rulebased Simulation. These functions initialize a local data structure with current Reservoir data required for the Max Outflow calculations. The new functions are:
• C_getMaxOutflowGivenInflow reservoir inflow inflowScale
• inflowUnits poolSeed
• poolSeedScale poolSeedUnits
• outflowReturnScale
• outflowReturnUnits
The getMaxOutflowGivenInflow function takes the values for the Inflow, and an optional Pool Elevation seed value, and stores this information in a LocalInfo data structure. LocalInfo is then passed into the given Reservoir’s Simulation function, getMaxOutGivenIn, where the calculations for Max Outflow are actually performed. C_getMaxOutflowGivenInflow returns this Maximum Outflow value in the specified units and scale.
• C_getMaxOutflowGivenStorage reservoir stor storScale storUnits outflowReturnScale outflowReturnUnits
The getMaxOutflowGivenStorage function takes the value for the Storage, computes a corresponding Pool Elevation, and stores this information in a LocalInfo data structure. LocalInfo is then passed into the given Reservoir’s Simulation function, getMaxOutGivenStorage for SlopePowerReservoirs or getMaxOutGivenStorHW for all other Reservoirs, where the calculations for Max Outflow are actually performed. C_getMaxOutflowGivenStorage returns this Maximum Outflow value in the specified units and scale.
• C_getMaxOutflowGivenHW reservoir pool poolScale
• poolUnits outflowReturnScale
• outflowReturnUnits
The getMaxOutflowGivenHW function takes the value for the Pool Elevation, computes a corresponding Storage, and stores this information in a LocalInfo data structure. LocalInfo is then passed into the given Reservoir’s Simulation function, getMaxOutGivenHW for SlopePowerReservoirs or getMaxOutGivenStorHW for all other Reservoirs, where the calculations for Max Outflow are actually performed. C_getMaxOutflowGivenHW returns this Maximum Outflow value in the specified units and scale.
Precedence of Slots Directly Set by a Rule
Slots which are directly set by a rule are now marked by an R flag in the Edit Slot dialog. These slots are now given preference within a priority level when determining the dispatch method with which an Object will redispatch. The Rulebased Simulation Controller adds slots to the known set in the groups shown below. Slots are added to the known set one group at a time until the known set exactly matches one of the Object’s dispatch conditions. Slots are considered for dispatching in the following order:
1. All slots flagged as user Inputs (Priority 0).
2. All slots which were set by default in TIMESTEPBEGINRUN and TIMESTEPBEGINTIMESTEP (Priority -1).
3. For each rule priority, in descending order:
– If any known slots of the given priority contain the R flag, only those slots are added.
– If no slots contain the R flag, however, all known slots of the given priority are added.
4. For each rule priority, in descending order:
– Any known slots of the given priority which were not added in step 3 are added.
For example, the following list of known slots and priority levels would be added to the known set and checked against the Object’s dispatching criteria, in the sequence on the following page.
 
Slot
Priority
Hydrologic Inflow
-1
Inflow
1
Outflow
1R
Pool Elevation
2R
Diversion
2R
Return Flow
3
1. No slots are user Input, so none are added to the known set.
2. Hydrologic Inflow was set in TIMESTEPBEGINRUN; add it to the known set.
– Priority Level 1: Both Inflow and Outflow are known, but Outflow contains an R flag; add it to the known set.
– Priority Level 2: Both Pool Elevation and Diversion are known with R flags; add them both to the known set.
– Priority Level 3: Return Flow is known without any R flags; add it to the known set.
Note:  At this point, the known set contains slots which exactly match the required conditions of a dispatch method. The Object would be placed on the queue for this dispatch method, and no further slots would be added to the known set. If, for the sake of example, this dispatch method did not exist, the next known slot would be added to the set as follows:
– Priority Level 1: Inflow was not set in Step 3) due to an R flag on another slot; add it to the known set now.
– Priority Level 2: All known slots were already added in Step 3).
– Priority Level 3: All known slots were already added in Step 3).
The resulting known set would then be:
 
Known Set
Hydrologic Inflow
Outflow
Pool Elevation
Diversion
Return Flow
Inflow
In this scenario, the Object would redispatch with the solveMB_givenOutflowHW dispatch method, whose known slots are: Outflow, Pool Elevation, Hydrologic Inflow, Diversion, and Return Flow.
Overwriting Higher Priority Slots
Slot values computed during a lower priority redispatch will now overwrite any higher priority values already in the slots. This places the burden of enforcing rule priorities on the proper selection of which dispatch method to use. When an Object redispatches, any computed slot value will be set, regardless of the relative priority of the slot and the current dispatch. This change allows solution-independent parameters such as Tailwater Base Value to force a redispatch of Objects regardless of the priority of the last value.
SCT
Date Header
The format of the date header which appears at the top of a printed SCT has been changed. The header previously displayed the current date as Day/Month/Year. It now displays this information as Month/Day/Year.
Units
RiverWare Resource Database Message
The message that is displayed when a Resource Database file is not found during the initialization of RiverWare has been changed. The new message reads:
Unable to locate the Resource Database “RiverWareDB”;
Objects added to the Workspace from the Palette will have standard units.
The old message did not explain the consequence of not having a Resource Database file, which caused concern over the validity of models run without it. The RiverWareDB file is only used to initialize the default display units for new Objects when they are placed on the workspace from the Palette. The lack of a RiverWareDB file means that new Objects are created with RiverWare standard units as the default display units. Previously created models are completely unaffected by the lack, or presence, of a RiverWare Resource Database.
RiverWare always stores internal values and performs calculations in RiverWare standard units, regardless of the presence, or lack, of a Resource Database. Display units, as always, are simply a user-configurable GUI representation of the internal values. Model run results are not affected by the Resource Database or the user’s choice of display units.
Change Requests Completed
The following is a list of the bugs which were fixed for this release. If you wish to view the details for a specific bug, please browse to http://cadswes.colorado.edu/users/gnats-query.html and search our bug database. You will need a RiverWare user login and password.
 
1020
1300
1315
1319
1320
1322
1347
1349
1351
1352
 
 
 
 
 
Revised: 06/03/2019