Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The reservoir element contains the following sections:

  • general
  • uncontrolledOutlet
  • input
  • output

general

The general section of the reservoir element contains the follwing fields:

  • poolRoutingScheme
  • dynamicInterpolation
  • elevationInterpolationMethod
  • elevationInterval
  • storageCharacteristics
  • uncontrolledOutlet
  • input
  • output

poolRoutingScheme

for the poolRoutingScheme element, one can choose the following options:

...

The Level Pool method is a well known method for reservoir routing. in FEWS the method described in Applied hydrology from V.T.Chow is used. The level pool routing method is also referred to as Storage routing, the Storage-Indication method, or the Modified Puls method.

 This basis of this method is the following function:

 ((2S_(t+1))/Δt+Q_(t+1) )=(I_t+I_(t+1))+((2S_t)/Δt-Q_t )

In order to compute the release Qt, a storage-release function relating 2S/∆t+Q and Q is needed, this is the G(h) function. The elevation-storage-release table can be computed using this function:

 (h)=(2S(h))/Δt+Q(h)

In routing the flow through time, all terms in the right hand side of the above function are known, and so the values ((2S_(t+1))/Δt+Q_(t+1) ) can be computed. The value Qt+1 can be determined from the storage release function 2S/∆t+Q versus Q by linear interpolation of the tabular values. To set up the data required for the next time interval, the value K(t), ((2S_(t+1))/Δt-Q_(t+1) ) is calculated by:

 ((2S_(t+1))/Δt-Q_(t+1) )=((2S_(t+1))/Δt+Q_(t+1) )-2Q_(t+1)

The reservoir routing procedure in the Level Pool method is as follows:

 

The reservoir routing procedure in the Level Pool method is as follows:

We define the value G is a function of Storage and Outflow, defined as G[S] = 2*S/Δt + O

where:

  • S represents the reservoir storage
  • O represents the reservoir release
  • Δt represents the time step

For each row in the the uncontrolledOutlet capacityCharacteristics outletTable, we can now precompute a G[S] value. This allows us to look up the release O for a given G.

The level pool method makes use of the following relations, that follow from the water balance equations (details in the handbooks):

K[t] = G[t-1] - 2*O[t-1]

G[t]= ( I[t-1] + I[t] )+K[t]

 

For the computation, we loop over all time intervals from t=1 to t=tend.

  1. If t=0
    1. Use the state values as provided in the input files. If either a level, or a storage are provided, look up the equivalent value.
    2. In case both level and storage are provided, use the lookup value to determine any inconsistencies. If found, the level is used as the basis and the storage at t=0 is recalculated
    3. no computation takes place at t=0
  2. If t=1 then
    1. K[1] = 2*S[0]/Δt - O[0] (inital storage and release values are known)
    2. G[1] is computed with G[1]= ( I[0] + I[1] )+K[1]
    3. Compute O[1] by linear interpolating the table using O(S) and G(S).
    4. In case an O_input[1] timeseries is provided, O[1] = O_input[1]
    5. S(1) = S(0) + Δt* ( I[1] - O[1] )
  3. If t>1 then
    1. K[t] = G[t-1] - 2*O[t-1]
    2. G[t] is computed with G[t]= ( I[t-1] + I[t] )+K[t]
    3. Compute O(t) by linear interpolating the table using O(S) and G(S).
    4. In case an O_input[t] timeseries is provided, O[t] = O_input[t]
    5. S(t) = S(t-1) + Δt* ( I[t] - O[t]
    Loop over all time intervals from t=1 to t=tend.If t=1 then:S(1) = Qout(1) = K(1) = 0, the reservoir is initially empty.G(t+1) is computed with G(t+1)=[Q_in (t)+Q_in (t+1)]+K(t)Compute Qout(t+1) by linear interpolating the table using Qout(h) and G(h).K(t+1) = G(t+1) – 2 Qout(t+1)If t>1 then
    1. G(t+1) is computed with G(t+1)=[Q_in (t)+Q_in (t+1)]+K(t)Compute Qout(t+1) by linear interpolating the table using Qout(h) and G(h).K(t+1) = G(t+1) – 2 Qout(t+1 )
backwardEulerMethod

The backward Euler reservoir routing scheme is an implicit scheme that uses the backward difference approximation for the derivative. The equation for the backward Euler reservoir routing scheme can be written as follows:

...