Optimization
Upgrade to CPLEX 10.1
RiverWare’s optimization now uses CPLEX 10.1 and Concert 2.3.
Change in “Convolved” Table Calculation
Nonlinear functions with two variables have the form y = f(x,z). These functions are linearized during optimization in RiverWare where the value of f is held in a table. For example, a Stage Flow Tailwater Table holds tailwater elevation, y, as a function of stage, x, and outflow, z. The table has the structure where the z values (outflow) is repeated while varying the x values (stage). The optimization first estimates a linear function for y as a function of x given an estimated z value. Some linearization methods use a second step to add a linear factor of z to this approximation. Others implicitly assume a constant z variable.
In some cases, such as the Stage Flow Tailwater Table, reversing the roles of the x and z variables in the linearization makes sense. Riverware creates a new “convolved” table to hold the resulting table in these cases. In our example, the resulting table is the Convolved Stage Flow Tailwater Table.
Previously, the convolved table was just a re-ordering of the original table. However, if the x values in the original table do not repeat, the resulting convolved table can be badly structured resulting in poor linearizations and runtime errors.
Now, the calculation of the convolved values first calculates a “full” table where every x value exists for every z. Visually, if the x and z values were viewed in a graph, the full table would appear to be a complete grid of points. The full table of y values is then created by interpolating and extrapolating values in the original table. The table can then be convolved correctly.
Revised: 08/02/2021