Storage routing is based on mass conservation and the assumption of monotonic relationships between storage and discharge in a link.
Info | ||
---|---|---|
| ||
Note: The stability criteria must also be satisfied for a model to run correctly. If this is not the case, the following error appears during runtime: Routing parameters have caused instability in storage routing. Refer to the Stability Criteria for more information. |
This is a simplification of the full momentum equation and assumes that diffusion and dynamic effects are negligible. The method uses index flow in flux, storage, and mass balance equations. A weighting factor is used to adjust the bias between the inflow and outflow rate, hence allowing for attenuation of flow. The storage routing equation is shown below, and some of its terms are represented diagrammatically in the Figure below.
Equation 1 |
---|
where:
S is the storage in the reach,
k is the storage routing constant
m is the storage routing exponent, and
q~ is the index flow, which is given by
Equation 2 |
---|
where:
I is the inflow to the reach during the time-step,
O is outflow from the reach during the time-step and
x is the inflow bias or attenuation.
Dead storage
Dead storage refers to the capacity of a storage that is below the minimum operating level. At this water level, there is no outflow. The level of the reach with respect to dead storage at the beginning of the time-step affects its level in subsequent time-steps as follows:
- The reach is at or below dead storage and the fluxes during the time-step are insufficient to raise the level above the dead storage;
- The reach is above dead storage but fluxes during the time-step would lower the level in the reach below dead storage; or
- The reach is above dead storage and remains above dead storage during the time-step.
To determine if the reach is at or below the dead storage level, MUSICX:
- Computes an initial storage estimate by using inflows to fill the reach up to but not exceeding the dead storage level;
- Computes a revised storage estimate based on any remaining inflows and fluxes, but ignoring outflows; or
- If the revised storage estimate is above dead storage, then outflows are computed. Otherwise, the initial storage estimate is used and outflows are set to zero.
Initial Estimation of Storage Constant (k)
An initial value of k can be determined by
- For linear routing (ie m=1) k is equal to the wave travel time divided by the number of divisions. The wave travel time is how long the wave takes to move through the reach
- For non-linear routing, (m≠1) k can be calculated using the known wave travel time for the reach and the chosen value of m for a representative flow rate
Equation 3 |
---|
where:
Tw is the known travel time for the reach in seconds
n is the number of divisions
Qw is the flow rate at which you want the travel time to be Tw in m3/s.
Configuring storage routing
Figure below shows the feature editor for storage link routing and Table below outlines the parameters required.
Routing Parameter | Description | Units | Range | Default |
---|---|---|---|---|
# Divisions | Number of reach divisions. Conceptually, this parameter describes the number of times that a reach is replicated. The effective length of a reach is determined from its behaviour, which is controlled by the combination of the storage exponent m, the inflow bias x and the storage constant K. Specifying multiple reach divisions implies applying the same set of behavioural parameters multiple times. In other words, if the effective length of a single-division reach is 500 metres (as derived from its behavioural parameters), changing the # Divisions parameter to 2 implies a combined effective length of 1000 metres. If you want to sub-divide a 500 metre reach into two 250 metre sections, you must also change the behavioural parameters to achieve this. | whole units | integer ≥ 1 | 1 |
Inflow bias (attenuation factor, x) | The weighting factor x is used to adjust the bias between inflow and outflow rate and allows for flow attenuation. The weighting factor is usually in the range 0 ≤ x ≤ 0.5 (Davis and Sorensen, 1969). A recommended starting value is 0.2. | dimensionless | real 0 ≤ x ≤ 1 | 0 |
Storage constant (k) | When using linear routing (m = 1), the units of the storage constant k are in seconds and the wave travel time is equal to k times the number of divisions. When using non-linear routing (m ≠ 1), a starting value could be calculated using Equation 20 in the Appendix -B. | k units | real ≥ 0 | 0 |
Storage exponent (m) | If m=1, linear (Muskingum) routing is implied, otherwise non-linear routing is implied. m=0.74 is a good starting value for a natural channel. | time-steps | real 0 < m ≤ 1 | 0 time-steps |
References
Davis, C.V., and K.E. Sorensen (1969) Handbook of Applied Hydraulics, 3rd Edition, C.V. Davis and K.E. Sorensen (eds). McGraw-Hill.