Kinematic wave

Surface routing

The main flow routing scheme available in wflow is the kinematic wave approach for river and overland flow, assuming that water flow is mostly controlled by topography. The kinematic wave equations are (Chow, 1988):

Qx+At=qinflow,A=αQβ.

These equations can then be combined as a function of flow only:

Qx+αβQβ1Qt=qinflow,

where Q[m3 s1] is the surface flow in the kinematic wave, x[m] is the length of the flow pathway, A[m2] is the cross-section area of the flow pathway, qinflow[m2 s1] is the lateral inflow per unit length into the kinematic wave, t[s] is the integration timestep and α and β are coefficients. These coefficients can be determined by using Manning’s equation (Chow, 1988), resulting in:

α=(nPw23cslope)β and β=0.6,

where Pw[m] is the wetted perimeter, cslope (cland slope for overland flow and criver slope for river flow) is the slope [m m1], and n (nland for overland flow and nriver for river flow) is Manning’s coefficient [s m13]. The wetted perimeter Pw for river flow is calculated by adding the river width (wriver) and 2 times half of the river bankfull depth (hbankfull). A bankfull river depth map (default value is 1m) for the river can be provided as follows in the TOML configuration file:

[input.static]
river_bank_water__depth = "riverdepth"

For overland flow, Pw is set equal to the effective flow width, determined by dividing the grid cell area by the flow length and subtracting wriver.

The kinematic wave equations are solved with a nonlinear scheme using Newton’s method. By default, the iterations are performed until a stable solution is reached (ϵ<1012). The internal time stepping is based on the Courant number or a fixed time step size [s]. To enable a fixed internal time step for the kinematic wave the following lines can be inserted in the TOML file of the model:

[model]
# Adaptive (internal) time stepping for the kinematic wave
kinematic_wave__adaptive_time_step_flag = false    # optional, default is false
# Fixed internal timestep for river flow (river cells)
river_kinematic_wave__time_step = 900        # optional, default is model timestep
# Fixed internal timestep for overland flow (land cells)
land_kinematic_wave__time_step = 3600        # optional, default is model timestep

Kinematic wave adaptive (internal) timestepping can be set as follows in the TOML file of the model:

[model]
# Adaptive (internal) time stepping for the kinematic wave
kinematic_wave__adaptive_time_step_flag = true    # optional, default is false

Reservoir and lake models can be included as part of the river kinematic wave network.

External inflows

External inflows [m3 s1] for example water supply or abstractions can be added to the kinematic wave for river flow routing, as a cyclic parameter or as part of forcing. For example, cyclic inflow can be provided in the TOML file as follows:

[input.cyclic]
"river_water_inflow~external__volume_flow_rate" = "river_inflow"

These inflows are added or subtracted from the upstream inflow before running the kinematic wave to solve the impact on resulting river flow Q[m3 s1]. In case of an abstraction (negative inflow), the abstraction is limited by a fixed scaling factor of 0.80 applied to sum of upstream inflow, lateral inflow and river storage, all terms expresssed in unit m3 s1.

Abstractions

Internal abstractions [m3 s1] from the river are possible when water demand and allocation is computed. The abstraction is set from the water demand and allocation module each time step. The abstraction is divided by the flow length of the river and subtracted from the lateral inflow of the kinematic wave routing scheme for river flow.

Subsurface flow routing

In the wflow_sbm model the kinematic wave approach is used to route subsurface flow laterally by default. Different vertical hydraulic conductivity depth profiles are possible as part of the SBM soil model concept, and these profiles (after unit conversion) are also used to compute lateral subsurface flow. The following profiles (see SBM soil model for a detailed description) are available:

  • exponential (default)
  • exponential_constant
  • layered
  • layered_exponential

For the profiles exponential and exponential_constant, the saturated store Ssat is drained laterally by saturated downslope subsurface flow for a slope with width w[m] according to:

Qsubsurface=Kh0cland slopew{1f(efssf,Kvzssf,watertableefssf,Kvzssf,exp)+efssf,Kvzssf, exp(zssf,soilzssf,exp)if zssf,watertable<zssf,expefssf,Kvzssf,exp(zssf,soilzssf,watertable)if zssf,watertablezssf,exp,

where cland slope[m m1] is the land slope, Qsubsurface[m3 d1] is subsurface flow, Kh0[m d1] is the saturated hydraulic conductivity at the soil surface, zssf, watertable[m] is the water table depth, zssf,soil[m] is the soil depth, fssf,Kv[m1] is a scaling parameter that controls the decrease of Kh0 with depth and zssf,exp[m] is the depth from soil surface for which the exponential decline of Kh0 is valid. For the exponential profile, zssf,exp is equal to zssf,soil.

Combining with the following continuity equation: (θsθr)wht=Qsubsurfacex+wR

where h[m] is the water table height, x[m] is the distance downslope, R[m d1] is the net input rate to the saturated store, θs[] and θr[] are the saturated and residual soil water contents, respectively. Substituting for h(Qh), gives:

Qsubsurfacet=cQsubsurfacex+cwR

where celerity c is calculated as follows: c=Kh0cland slopeθsθr{efssf,Kvzssf,watertable+efssf,Kvzssf,expif zssf,watertable<zssf,expefssf,Kvzssf,expif zssf,watertablezssf,exp.

For the layered and layered_exponential profiles the equivalent horizontal hydraulic conductivity Kh[m d1] is calculated for water table height h=zssf,soilzssf,watertable[m] and lateral subsurface flow is calculated as follows:

Qsubsurface=Khhcland slopew,

and celerity c is given by:

c=Khcland slopeθsθr.

The kinematic wave equation for lateral subsurface flow is solved iteratively using Newton’s method.

Note

For the lateral subsurface flow kinematic wave the model timestep is not adjusted. For certain model timestep and model grid size combinations this may result in loss of accuracy.

Multi-Threading

The kinematic wave calculations for surface - and subsurface flow routing can be executed in parallel using multiple threads. In the model section of the TOML file, a minimum stream order can be provided to define subbasins for the river (default is 6) and land domain (default is 5). Subbasins are created at all confluences where each branch has a minimal stream order. Based on the subbasins a directed acyclic graph is created that controls the order of execution and which subbasins can run in parallel.

[model]
river_streamorder__min_count = 5 # minimum stream order to delineate subbasins for river domain, default is 6
land_streamorder__min_count = 4  # minimum stream order to delineate subbasins for land domain, default is 5

Subbasin flow

Normally the the kinematic wave is continuous throughout the model. By using the pit__flag entry and basin_pit_location__mask in the model and input sections of the TOML file all flow is at the subbasin only (upstream of the pit locations, defined by the netCDF variable wflow_pits in the example below) and no flow is transferred from one subbasin to another. This can be convenient when connecting the result of the model to a water allocation model such as Ribasim.

[input]
# these are not directly part of the model
basin_pit_location__mask = "wflow_pits"

[model]
pit__flag = true

Limitations

The kinematic wave approach for river, overland and lateral subsurface flow, assumes that the topography controls water flow mostly. This assumption holds for steep terrain, but in less steep terrain the hydraulic gradient is likely not equal to the surface slope (subsurface flow), or pressure differences and inertial momentum cannot be neglected (channel and overland flow). In addition, while the kinematic wave equations are solved with a nonlinear scheme using Newton’s method (Chow, 1988), other model equations are solved through a simple explicit scheme. In summary the following limitations apply:

  • River flow, and to a lesser degree overland flow, may be unrealistic in terrain that is not steep, and where pressure forces and inertial momentum are important.
  • The lateral movement of subsurface flow may be very wrong in terrain that is not steep.

References

  • Chow, V., Maidment, D. and Mays, L., 1988, Applied Hydrology. McGraw-Hill Book Company, New York.
Back to top