The flow routing algorithm used in RiverSim was originally developed by
Resources Planning Associates. It has been recoded from the original
Fortran and is now an integral part of the RiverSim environment.
Essentially, a river reach is represented by some number of "virtual
reservoirs" (VR) in a chain. The input to the reach enters the top
reservoir in the chain and is moved successively through the others, the
release of the last reservoir being the output of the reach.
Each VR in
the chain determines its release by the formula:
| Rt
= (a * It
+ b * S
t-1)
c |
Eq 1 |
where R is release, I is inflow and S is storage.
a,
b and
c are calibration coefficients and t represents the time step. Each
VR is constrained to conserve mass through the equation:
| St
= St-1
+ I
t - Rt
- L
t |
Eq 2 |
where L is a loss term. Loss is calculated as a coefficient
d times
the storage at the end of the previous time step.
There are, then five coefficients which may be adjusted to cause the reach
properly to model some section of river. They are:
- 0 <= a <= 1 the fraction of inflow to be released,
- 0 <= b <= 1 the fraction of storage to be released,
- 0 <= c <= 1 the power to which the right side of Equation 1 is
raised,
- 0 <= d <= 1 the fraction of prior period storage which is
lost, and
- 1 <= n <= 16 the number of VR's that compose the reach.
Constructing a Model with Routing:
First, construct the nodes (reservoir,
confluence, diversion) at
the top and bottom of the reach in the normal way.
The palette now has two link buttons:

The first, marked with the red R will construct a reach. It is used in the
same way as the normal link button. click the mouse over the source node and hold
the left button down. Drag the mouse to the destination node and release it. If all
is well, you will have a thick blue arrow between the two nodes.

To open the reach and set its parameters, click the right mouse button over the
blue arrow and select "Open" in the pop up menu. This will get you this
dialog. The fields are editable and you may set the parameters as desired.

To test your parameters:
- Load the input and output series of the Calibrator slot with observed flows
at the top and bottom of the reach,
- Open the "Calibrate" menu at the top of the main window and choose
"Manual Calibrate",
- Open the "Calibrate" menu again and choose "Report Calibration",
- Paste into a spreadsheet.
This sequence will give you three series in columns in the spreadsheet. The
leftmost series will be the observed flow at the top of the reach. The middle
series will be the observed outflow at the bottom of the reach. The rightmost
column will be the outflow produced by routing the observed inflow through the
reach using the calibration parameters you have provided. You may adjust your
parameters and repeat as often as desired. Saving the model will also save the
parameters, so you should only need to perform this calibration when the
hydraulics change or you desire to run the model at a different
time step.
Automatic Calibration:
Even if you have considerable experience with manual calibration of routing
reaches, you may want to use the automatic calibration feature to get a start.
The automatic calibrator uses a genetic algorithm (GA) to match the routing
parameters to the two observed series in the Calibrator slot. To use the
automatic calibrator, choose "Genetic Calibrate" from the "Calibrate"
menu. The following dialog will appear:

The top five boxes are editable, the parameters having these meanings:
- Population Size This is the number of chromosomes in the breeding
population for the GA.
- Crossover Probability This is the probability that two chromosomes
will exchange genetic material in the next generation.
- Survival Rate The fraction of each generation that will survive to
produce offspring for the next generation.
- Mutation Probability The probability that any member of the chromosome
list will have a random one bit mutation.
- Converge Within The allowable difference between the total fitness
measure of the surviving chromosomes in the current generation and those in
the prior generation.
Once the parameters are set to your satisfaction, mouse the "Play" button.
The generation box will mark the progress of the GA. When the algorithm has converged,
the average percent error box will be filled in with a measure of the final solution.
Note that time to run the automatic calibration depends on the length of the time
series you are trying to match, the size of the population you choose and the
tightness of the convergence criterion. For the default parameters and a time series
400 steps long, calibration will require about 35 generations and will take a couple
of minutes.
As above, choosing "Report Calibration" in the "Calibrate" menu
will provide a spreadsheet report of the final calibration parameters.