Release Notes
What’s New in Version 8.0
This document describes new features, enhancements, and changes in RiverWare Version 8.0.
Special Attention Notes
The section describes special attention notes, which indicate changes in functionality that require you to update models, cause model results to differ, or display a warning message when you first load a model in Version 8.0.
If you have any questions, contact RiverWare Support:
RiverWare-Support@colorado.edu
• The solver used in optimization, CPLEX, has been updated. Results my differ. See
“CPLEX version” for more information.
• The RPL predefined functions SortPairsAscending and SortPairsDescending were modified to return stable and predictable results in the case where the second item in each pair of lists is the same. This could lead to different model results. See
“SortPairsAscending & SortPairsDescending enhancement” for more information.
General Notes
The following general upgrades were implemented in this version of RiverWare:
• Updated versions of compliers and other third party packages: This release is built using updated compilers and third party libraries like Qt. All libraries and compiler versions can be seen in the Help and then About RiverWare menu.
• 64-bit only: Because of the new compilers, RiverWare is now 64-bit only. 32-bit operating systems are no longer supported.
• Performance: Internal algorithms in RPL, string processing, list processing, and account access were improved. Together these enhancements reduced a sample test model run time by about 15%.
Accounting: E flag
Within a Storage account, the Empty Storage, E, flag can be used to release all of the storage through a supply. Previously, this was limited to an outflow supply. Now the E flag can be applied to a transfer supply.
Figure 1.1 shows a screenshot of the Edit Account dialog with E flags in use.
Figure 1.1 Empty Storage Flag displayed on the Edit Account dialog box
Data Management Interface with Excel
When using the Read/Write the workbook directly setting for the Excel Dataset, empty cells no longer generate a warning in the DMI. An empty cell is acceptable for numeric and text values. In a numeric slot this is a NaN, in a text slot this is an empty string
Documentation
The RiverWare HTML-based documentation was enhanced:
• The RiverWare HTML-based documentation now operates correctly in the Google Chrome browser. Previously the menus and links were not working.
• The Firefox browser (version 68.0.1) was not showing icons and arrows when displaying the RiverWare HTML-based documentation. This has been fixed in the latest Firefox patch (68.0.2). Please upgrade Firefox to get this fix.
Object Viewer
Functionality was added to the Object Viewer to allow you to control how the object tabs are ordered. You can choose from the following object tab ordering modes from the Object Tabs menu:
• Flexible Order: Tabs can be rearranged in any order. Drag the tabs left and right to rearrange them. New object tabs are appended to the right of existing tabs.
• Workspace Custom Ordering: Object tabs are ordered left to right using the custom object order from the workspace's Simulation Object list.
• Order By Name: Object tabs are ordered left to right in case-insensitive lexical order.
Further, you can apply the selected mode to the Object Viewer to rearrange opened tabs. For more information, see
“Arranging Tabs” in User InterfaceObjects: Aquifer
On the Aquifer object, the Pumped Flow slot was added to the list of linkable dispatch slots and converted to a Multi Slot. This better mirrors the Pumped Flow slot on the Groundwater Storage object. In addition, proposed links were added to the Smart Linker.
Output
This section describes changes to Output Devices and other output tools.
Plotting
Plot Markers reference Slot Values
Plotting has been enhanced to provide a new option for associating a plot marker with a slot, for both X and Y-axis marker configurations to provide dynamic marker placement.
Figure 1.2 shows the configuration. For more information, see
“Marker Configuration” in Output Utilities and Data VisualizationFigure 1.2 Screenshot of the Marker configuration showing a reference to a slot value
Y Axis can reference RPL functions
Plotting has been enhanced to provide new options for configuring the bounds of numeric axes on plots. Now the plot configuration allows the minimum and/or maximum bound, particularly on the Y-axis to refer to a global RPL function or to be auto-scaled.
RDF Viewer
See
“RDF Viewer” for more information on the new RDF Viewer to look at the RDF results of MRM runs.
Tabular Series Slot Reports
Within the Tabular Series Slot Report output device, the following enhancements were made:
• When showing series notes as footnotes, you can now select which note groups to include in the report. This allows you to create Note groups that are included in the report, maybe for public release, and other groups that are not included, perhaps for internal usage only.
• You can now select to display NaN values as 0.0 in the report.
Both options can be set up on the Settings tab of the report configuration dialog. See
“Settings Tab” in Output Utilities and Data Visualization for more information.
Optimization
The following changes were made to RiverWare optimization.
CPLEX version
The RiverWare optimization uses third party software, CPLEX, to perform the individual optimizations within the goal program. The CPLEX version was updated to version 12.9.0.0 for this RiverWare release. In this version, the solver has changed sufficiently to occasionally generate alternative solutions that are within the solver's optimality tolerance. These changes are not a cause for concern: while the solutions may be different, the differences do not have a significant affect on the goal values that are the driver for the solutions. For most test cases, there were no changes. The one test case with differences was thoroughly examined, and the differences were found to be negligible.
Initialization Rules during Optimization run
Initialization rules are a set of RPL rules associated with the model that can be executed at the beginning of a run. Now, the initialization rules can be executed as part of an Optimization run. A new checkbox on the Run Control dialog allows you to control if the initialization rules are executed. By default the setting is off, the rules will not be executed, to match existing behavior.
See also
“Scripts: Action to Set Initialization Rules Execution Flag” for information on a script action to control this setting and
“IsControllerSim” and
“IsControllerOpt” for new RPL functions that will help with initialization rule development when using with an optimization run.
RDF Viewer
The first version of a new RDF Viewer was created to graphically display results from an MRM run that uses RDF output options. The RDF Viewer is accessible from the MRM run control dialog and displays charts of the trace data contained in a single RDF file, one chart per slot, with the data for each run (trace) plotted. A sample is shown in
Figure 1.3. For more information see
“RDF Viewer” in Solution Approaches.
Figure 1.3 RDF Viewer Sample
RiverWISE
The RiverWare Interactive Scenario Explorer (RiverWISE) allows stakeholders to view an exported version of a RiverWare model and to explore alternative scenarios within constraints specified by the model developer. See
“RiverWISE Model Developer’s Guide” in RiverWISE Model Developer’s Guide for more information on RiverWISE.
RiverWISE was modified with a new
Change Series Units button. The button has three choices to enable the user to change how flows and volumes are displayed. The options are Standard, Flow, or Volume. For more information see
“Series Units” in RiverWISE Stakeholder’s Guide.
RPL
This section describes changes to the RiverWare Policy Language (RPL).
RPL Editor: Highlight Equivalent Expressions
A new setting was added to the RPL Display Settings dialog to “Highlight Elements Equivalent to the Selection”. This features highlights elements in the same dialog which are equivalent to the selected expression. For example, in the screenshot in
Figure 1.4, Muddy.Outflow is selected on the first line, element 1, but the other instances are also highlighted in a paler color on subsequent rows, element rows 5 and 12.
Figure 1.4 Sample RPL Logic showing equivalent expressions highlighted
RPL Palette
The RPL Palette was improved with the following changes.
Clipboard Tab
A new Clipboard tab was added to the RPL Palette which maintains a list of the last 100 expressions copied. When you copy a RPL expression from anywhere but the clipboard itself, a copy of that expression is added to the clipboard. The clipboard updates to display that expression and you can use the Previous and Next operations to view the entire copy history. Further, you can select and copy an expression or subexpression in this history and paste it into other RPL expressions.
Thus, the clipboard tab can be used as a temporary location to hold copied expressions which you can then paste over other expressions. This is particularly useful in editing RPL expressions for readability or performance.
New Obj ^ Account . Slot Button
A new operator/button was added to the palette. The Obj^Account.Slot button,
evaluates to an account slot given an object, an account name, and a slot name. This is more efficient than the previous approach using the newly named Obj^Account&Slot button (previously named Obj^Slot). We recommend refactoring logic to use this new button whenever possible.
Figure 1.5 Screenshot of new and modified buttons in the Object/Slots area of the palette
New Account Selector Button
A new
Account Selector button was added to the palette as shown in
Figure 1.5. This button allows you to select an account from an object to replace a STRING expression. Use this
Account Selector with the new Obj^Account.Slot button described above.
Parenthesis and Comments
Behavior has been improved when adding comments to an expression with parentheses or adding a parenthesis to an expression with comments.
RPL Precision
The default RPL Precision was changed from 8 digits to 2 digits. This better aligns with the default precision in unit schemes. As before, the precision can be adjusted on the RPL Set’s Adv. Properties settings. Existing sets will not be modified.
Predefined Functions
This section describes new and modified predefined RPL functions.
AggregateSeriesSlot
A new RPL predefined function AggregateSeriesSlot was been added. It takes a slot to aggregate, the begin and end timestep, the timestep to aggregate to, and how to treat NaN values. It returns a list of datetimes (the larger timestep) and the values at those timesteps. An initialization rule can then loop over the list and set the values on the slot.
IsControllerSim
A new RPL predefined function, IsControllerSim, returns TRUE if the returns true if the current controller is Simulation or Inline Simulation and Accounting.
IsControllerOpt
A new RPL predefined function, IsControllerSim, returns TRUE if the returns true if the current controller is Optimization.See
“IsControllerOpt” in RiverWare Policy Language (RPL) for more information.
SortPairsAscending & SortPairsDescending enhancement
The RPL predefined functions SortPairsAscending and SortPairsDescending were modified to return stable and predictable results in the case where the second item in each pair of lists is the same. Prior to the current work, the return order of values from pairs with the same second value was unspecified and unpredictable; now that order is specified and deterministic. Specifically, for pairs whose second item is the same, SortPairsAscending now returns the first items in their original order and SortPairsDescending returns the first items in the reverse of their original order. Previously, the result tended to be in this order when the comparisons were equal. Now, the order is guaranteed. This could change model results depending on the RPL logic.
:
Example 1.1 SortPairs behavior
Given a list = {{1, "c"}, {2, "a"}, {3, "c"}, {4, "a"}}
• SortPairsAscending(list) returns {2, 4, 1, 3}
• SortPairsDescending(list) returns {3, 1, 4, 2}
Scripts: Action to Set Initialization Rules Execution Flag
The script action “Set Initialization Rules Execution Flag” was enhanced to include a setting for optimization. This allows you to control, from a script whether the initialization rules will execute before an optimization run as described in
“Initialization Rules during Optimization run”.
Slots: New Time Disaggregation Series Slot
A new slot type called Time Disaggregation Series Slot was added. It is a custom slot which can be created on any object. In the slot’s configuration dialog, you specify:
• The slot to disaggregate.
• The timestep size of the disaggregated value. Initially, the timestep is constrained to constant size timesteps (1 Hour and 6 Hour).
• The function to use for disaggregation:
– Step: use the same value for all smaller timesteps or
– Interpolate End of Timestep: use a linear interpolation for the smaller timesteps.
Snapshots
When a snapshot is created, it now gets better coordinates in all three workspace views, Simulation, Accounting and Geospatial. For each view, the snapshot objects are stacked in columns, 10 high, to the right of the lower right corner of the bounding box around existing objects.
Water Quality
This section describes changes to Water Quality functionality.
Salinity
The following three salinity items were addressed:
1. Mass Comparison Tolerance: To fix an issue where a slot was not being computed, a new mass based tolerance was introduced into the Reach and Agg Diversion Site salinity methods. This tolerance loosens the criteria for salt mass and concentration comparisons of two values, particularly near zero.
2. Negative Salt Mass Removal Requests: The Agg Diversion Site, Salt Mass Removal and Salt Mass Removal With Debt methods were modified to allow negative “Salt Mass Removal Request”. Previously a negative value was an error. Now, it is a warning.
3. Reach Min Salt Concentrations on Reach: The reach salt dispatch method, Solve Out Salt Given In Salt, was modified such that the Outflow Salt Concentration is computed to be between the Min and Max Concentration slots, if specified. Previously, it was only limited to be less than the Max Concentration. See
“Solve Out Salt Given In Salt” in Water Quality for more information.
Total Dissolved Gas (TDG)
A new method was added to the Reach Water Quality Routing category: Time Lag TDG with Dispersion and Dissipation. The method routes TDG with three components: Lag Time, Dispersion and Dissipation. See
“Time Lag TDG with Dispersion and Dissipation” in Water Quality for more information.