Model configurations
There are several model configurations supported by wflow. These model configurations require slightly different input requirements, yet the general structure is similar for each model. A wflow model configuration consists of a vertical
SBM concept in combination with lateral
concepts that control how water is routed for example over the land or river domain. For the wflow_sbm model different model configurations are possible. The following model configurations are supported in wflow:
- wflow_sbm:
- SBM + kinematic wave for subsurface and surface flow
- SBM + kinematic wave for subsurface and overland flow + local inertial river (+ optional floodplain)
- SBM + kinematic wave for subsurface flow + local inertial river (1D) and land (2D)
- SBM + groundwater flow + kinematic wave for surface flow
- wflow_sediment as post processing of wflow_sbm output
Below, some explanation will be given on how to prepare a basic wflow_sbm model. Example data for other model configurations is provided in the section with sample data.
wflow_sbm
Wflow_sbm represents hydrological models derived from the CQflow model (Köhler et al., 2006) that have the SBM vertical concept in common, but can have different lateral concepts that control how water is routed for example over the land or river domain. The soil part of SBM is largely based on the Topog_SBM model but has had considerable changes over time. Topog_SBM is specifically designed to simulate fast runoff processes in small catchments while the wflow_sbm model can be applied more widely. The main differences are for the vertical concept SBM of wflow_sbm:
- The unsaturated zone can be split-up in different layers
- The addition of evapotranspiration losses
- The addition of a capillary rise
- The addition of water demand and allocation
The water demand and allocation computations are supported by the wflow_sbm model configurations:
- SBM + Kinematic wave
- SBM + Groundwater flow
- SBM + Local inertial river
- SBM + Local inertial river (1D) and land (2D)
The vertical SBM concept is explained in more detail in the following section SBM vertical concept.
Topog_SBM uses an element network based on contour lines and trajectories for water routing. Wflow_sbm models differ in how the lateral components river, land, and subsurface are solved. Below the different wflow_sbm model configurations are described.
SBM + Kinematic wave
For the lateral components of this wflow_sbm model water is routed over a D8 network, and the kinematic wave approach is used for river, overland and lateral subsurface flow. This is described in more detail in the section Kinematic wave.
An overview of the different processes and fluxes in the wflow_sbm model with the kinematic wave approach for river, overland and lateral subsurface flow:
Below the mapping for this wflow_sbm model (type sbm
) to the vertical SBM concept (instance of struct SBM
) and the different lateral concepts is presented. For an explanation about the type parameters between curly braces after the struct
name see the section on the model parameters.
=> struct SBM{T,N,M}
vertical => struct LateralSSF{T}
lateral.subsurface => struct SurfaceFlow{T,R,L}
lateral.land => struct SurfaceFlow{T,R,L}
lateral.river => struct NaturalLake{T} # optional
lateral.river.lake => struct SimpleReservoir{T} # optional lateral.river.reservoir
SBM + Groundwater flow
For river and overland flow the kinematic wave approach over a D8 network is used for this wflow_sbm model. For the subsurface domain, an unconfined aquifer with groundwater flow in four directions (adjacent cells) is used. This is described in more detail in the section Groundwater flow.
[model]
type = "sbm_gwf"
[input.lateral.subsurface]
ksathorfrac = "KsatHorFrac"
conductivity = "conductivity"
specific_yield = "specific_yield"
exfiltration_conductance = "exfilt_cond"
infiltration_conductance = "infilt_cond"
river_bottom = "river_bottom"
conductivity_profile = "exponential"
gwf_f.value = 3.0
Below the mapping for this wflow_sbm model (type sbm_gwf
) to the vertical SBM concept (instance of struct SBM
) and the different lateral concepts. For an explanation about the type parameters between curly braces after the struct
name see the section on model parameters.
=> struct SBM{T,N,M}
vertical => struct GroundwaterFlow{A, B}
lateral.subsurface.flow => struct Recharge{T} <: AquiferBoundaryCondition
lateral.subsurface.recharge => struct River{T} <: AquiferBoundaryCondition
lateral.subsurface.river => struct Drainage{T} <: AquiferBoundaryCondition # optional
lateral.subsurface.drain => struct SurfaceFlow{T,R,L}
lateral.land => struct SurfaceFlow{T,R,L}
lateral.river => struct NaturalLake{T} # optional
lateral.river.lake => struct SimpleReservoir{T} # optional lateral.river.reservoir
SBM + Local inertial river
By default the model types sbm
and sbm_gwf
use the kinematic wave approach for river flow. There is also the option to use the local inertial model for river flow with an optional 1D floodplain schematization (routing is done separately for the river channel and floodplain), by providing the following in the TOML file:
[model]
river_routing = "local-inertial" # optional, default is "kinematic-wave"
floodplain_1d = true # optional, default is false
Only the mapping for the river component changes, as shown below. For an explanation about the type parameters between curly braces after the struct
name see the section on the model parameters.
=> struct ShallowWaterRiver{T,R,L} lateral.river
SBM + Local inertial river (1D) and land (2D)
By default the model types sbm
and sbm_gwf
use the kinematic wave approach for river and overland flow. There is also the option to use the local inertial model for 1D river and 2D overland flow, by providing the following in the TOML file:
[model]
river_routing = "local-inertial"
land_routing = "local-inertial"
The mapping for the river and land component changes, as shown below. For an explanation about the type parameters between curly braces after the struct
name see the section on the model parameters.
=> struct ShallowWaterRiver{T,R,L}
lateral.river => struct ShallowWaterLand{T} lateral.land
The local inertial approach is described in more detail in the section Local inertial model.
wflow_sediment
The processes and fate of many particles and pollutants impacting water quality at the catchment level are intricately linked to the processes governing sediment dynamics. Both nutrients such as phosphorus, carbon or other pollutants such as metals are influenced by sediment properties in processes such as mobilization, flocculation or deposition. To better assert and model water quality in inland systems, a better comprehension and modelling of sediment sources and fate in the river is needed at a spatial and time scale relevant to such issues.
The wflow_sediment model was developed to answer such issues. It is a distributed physics-based model, based on the distributed hydrologic wflow_sbm model. It is able to simulate both land and in-stream processes, and relies on available global datasets, parameter estimation and small calibration effort.
In order to model the exports of terrestrial sediment to the coast through the Land Ocean Aquatic Continuum or LOAC (inland waters network such as streams, lakes…), two different modelling parts were considered. The first part, called the inland sediment model, is the modelling and estimation of soil loss and sediment yield to the river system by land erosion, separated into vertical Soil Erosion processes and lateral Sediment Flux in overland flow. The second part, called the River Sediment Model is the transport and processes of the sediment in the river system. The two parts together constitute the wflow_sediment model.
Overview of the concepts of the wflow_sediment model:
Configuration
As sediment generation and transport processes are linked to the hydrology and water flows, the inputs to the wflow_sediment model come directly from a hydrological model. The required dynamic inputs to run wflow_sediment are:
- Precipitation (can also come from the hydrological forcing data),
- Land runoff (overland flow) from the kinematic wave,
- River runoff from the kinematic wave,
- Land water level in the kinematic wave,
- River water level in the kinematic wave,
- Rainfall interception by the vegetation.
These inputs can be obtained from wflow_sbm or from other sources.
Model outputs can be saved for both the inland and the instream part of the model. Some examples are listed below.
[output.vertical]
# Soil splash erosion [ton]
sedspl = "sedspl"
# Soil erosion by overland flow [ton]
sedov = "sedov"
# Total soil loss [ton]
soilloss = "soilloss"
# Total transport capacity of overland flow [ton]
TCsed = "TCsed"
# Transport capacity per particle class (clay) [ton]
TCclay = "TCclay"
[output.lateral.land]
# Total (or per particle class) sediment flux in overland flow [ton]
olsed = "olsed"
olclay = "olclay"
# Total (or per particle class) sediment yield to the river [ton]
inlandsed = "inlandsed"
inlandclay = "inlandclay"
[output.lateral.river]
# Total sediment concentration in the river (suspended + bed load) [kg/m3]
Sedconc = "Sedconc"
# Suspended load [kg/m3]
SSconc = "SSconc"
# Bed load [kg/m3]
Bedconc = "Bedconc"
References
- Köhler, L., Mulligan, M., Schellekens, J., Schmid, S., Tobón, C., 2006, Hydrological impacts of converting tropical montane cloud forest to pasture, with initial reference to northern Costa Rica. Final Technical Report DFID‐FRP Project No. R799.