2.0.0b10
catchment modelling framework
|
In this chapter, we will create a simple 1D river model using the kinematic wave equation with Manning's formula as the friction term. The approach is very similar to surface runoff, hence surface runoff should be read before.
[Mannig's formula](WikiPedia:Manning_formula) is an empirical formula to describe the flow velocity in a channel as a function of the channel geometry, depth, roughness and slope.
\[ q_{Manning}=A R^{2/3}\frac{\sqrt{s}} {n} \]
where:
Since the perimeter depends on the geometry of the channel crossection, this needs to be described. The way cmf handles channel geometry is given here
When you are using CMF, you have the choice between the kinematic wave approach, where the slope of the reach is given by the topographic slope, or the diffusive wave approach, where the slope is given by the slope of the water surface. Although the diffusive approach is more realistic, you are getting serious numerical trouble when using the diffusive wave. As you can see in the formula above, the flux depends on the square root of the slope. If the water surface levels out, the derivative of the square function goes to infinity and becomes hence infinite sensitive against value. As a result, any error controlled solver in cmf will fail for diffusive wave approaches when the water surface slope may go to zero. Unless we find a fix for this behaviour, please do not use diffusive wave approaches.
Create a 1km river with 100 reaches along the x axis and a constant slope of 1%
Now we have 100 unconnected reaches in our river. To connect them with kinematic wave equation
Creating a solver and setting initial conditions:
As always, the next part is the runtime code, saving the river depth.
Finally we are plotting the dynamic of the river depth over the run time