Model structure
Below the Julia composite type that represents all different aspects of a Wflow.Model
, such as the domain and shared parameters, routing concepts, land model, clock, model type, configuration and input and output.
struct Model{R <: Routing, L <: AbstractLandModel, T <: AbstractModelType} <:
AbstractModel{T}::Config # all configuration options
config::Domain # domain connectivity (network) and shared parameters
domain::R # routing model (horizontal fluxes), moves along network
routing::L # land model simulating vertical fluxes, independent of each other
land::Clock # to keep track of simulation time
clock::NCReader # provides the model with dynamic input
reader::Writer # writes model output
writertype::T # model type
end
The domain
field represents network (including connectivity) information of different modelling domains as the river
, land
, or subsurface
domain and it contains shared model parameters that can be used across different model components. The routing
field of the struct Model
can contain different routing concepts for river, land and subsurface flow domains. For example, the wflow_sbm model with default configuration contains the kinematic wave routing concept for river, overland and lateral subsurface flow. The land
field of the struct Model
represents a land model, simulating vertical fluxes, for example soil erosion as part of the sediment
model type and snow melt as part of the sbm
model type.