RiverWare is a river system modeling tool. It is an ideal platform for operational decision-making, responsive forecasting, operational policy evaluation, system optimization, water accounting, water rights administration, and long-term resource planning. The wide range of applications is made possible by a choice of computational timesteps ranging from 1 hour to 1 year.
RiverWare has the capability to model:
- Hydrology and hydrologic processes of reservoirs, river reaches, diversions, distribution canals, consumptive uses, groundwater interaction and conjunctive use;
- Water quality including TDS, DO and temperature;
- Hydropower production and energy uses; and
- Water rights, water ownership, and water accounting transactions.
RiverWare’s object-oriented, data-centered approach enables the modeler to represent site-specific conditions by creating a network of simulation objects, linking them together to form the river/reservoir network, populating each with data, and selecting physical process algorithms on each object that are appropriate to the purposes of the object and its representation in the overall model. For example, there are numerous methods for routing flow in river reaches, for evaporation calculations and for computing the hydropower generated.
RiverWare’s palette of objects includes:
- Reservoirs – storage reservoir, hydropower reservoir, pumped storage reservoir
- River Reach
- Stream gauge
- Inline power plant
- Inline pumping plant
- Distribution canal
- Bidirectional canal
- Water User and Aggregated Water User
- Control Point
- Groundwater Element
- Hydropower economic unit
- Data Object
The model simulates by solving the governing equations on each object and propagating values via links. Rulebased simulation provides a means for simulation driven by logical policy statements rather than explicitly specified input values for operations such as reservoir releases, storages, diversions, etc. In general, the operating policies, called rules, contain logic for operating the system based on hydrologic conditions, time of year, demands, and numerous other considerations.
The operational policy is expressed in the RiverWare Policy Language (RPL), an interpreted language developed for, and exclusive to, RiverWare. A rule is constructed in a syntax-directed editor that accesses a palette containing these elements. The rule set is a collection of prioritized rules that as a whole, define the operating policy of the river system. The entire rule set is applied at each timestep in the model. The solution of the rulebased simulation run includes information about how the final results were affected by various policies.
RiverWare’s optimization solution is a linear, pre-emptive goal programming algorithm that finds a globally optimal solution for all objects at all timesteps based on a prioritized set of user-specified objectives. Preemptive linear goal programming successively applies the prioritized objectives. Each objective is optimized in order and then constrained to its optimal value. Thus, a high priority objective is never sacrificed for a lower. Sets of constraints are converted to a single objective to minimize the deviation from the constraints. This approach avoids inconvenient infeasibilities. RiverWare provides linearizations for nonlinear variables. The objectives and constraints are formulated in the RPL syntax-directed editor. The software formulates the optimization problem (one for each prioritized goal) and sends it to the solver. RiverWare employs CPLEX, a robust third-party solver.
Optimization is especially useful for optimizing the value of hydropower production – it can trade off the value of producing power at one timestep with storing water and producing power at another time. The value of power is a prioritized objective, balancing other water-related objectives such as flood control and environmental flows.
Water ownership is modeled in RiverWare via a network of account objects that are associated with the simulation objects on the workspace. The accounting network of objects keeps track of the “paper water” as distinct from the “wet water” modeled by the simulation objects. The ownership, water type and other user-defined attributes of water ownership are tracked through the network of objects; at each object at each timestep, it is possible to view the water accounting data. A separate view of the RiverWare workspace is available to view the accounts on objects and their linkages.
There are three types of legal accounts, each of which tracks the necessary aspects of the legal water right: storage account in a reservoir, diversion account that removes water from a River Reach to a Water User object, and Instream Flow account that keeps track of instream flow rights. In addition, Pass-through Accounts account for the paper water as it moves through the river network from one legal account to another. Transfers between accounts are executed by user input or by rules in combination with the rules that drive the operations. Accounts keep track of accruals, carryover, and constraints on their allocations. Exchanges are tracked through and exchange manager.
Priority water rights allocations are executed by a rule function that solves the global problem of allocating water designated as “allocatable flow” according to priority dates for storage rights, diversion rights, and instream flow rights. The solver visits all water rights (storage, diversion and instream flow rights) that are linked to that supply chain in priority order as described above. The solver finds the allocation and returns the entire set of values to the rule. In doing so, the solver considers legal constraints such as annual accrual limits and daily maximum diversion rates, as well as physical constraints such as size of conservation pool and size of diversion structure.
Several major river systems in the western U.S. use RiverWare for water rights allocation and for official water accounting.