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::Config                  # all configuration options
    domain::Domain                  # domain connectivity (network) and shared parameters 
    routing::R                      # routing model (horizontal fluxes), moves along network
    land::L                         # land model simulating vertical fluxes, independent of each other
    clock::Clock                    # to keep track of simulation time
    reader::NCReader                # provides the model with dynamic input
    writer::Writer                  # writes model output
    type::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.

Back to top