1 Introduction
2 Model Coupling and Conjunctive Modelling
2.1 What Is a Model?
A model should be made as simple as possible, but not simpler.(after Albert Einstein, 1879–1955)
2.2 What Is Conjunctive Modelling?
-
simultaneous coupling
-
alternating iterative coupling
-
externally coupling.
2.3 Task
No. | Process | Model |
---|---|---|
1 | Rainfall-runoff | Hydrological model |
2 | River flow | 1D open channel flow model |
3 | Dike breach | Dike breach model |
4 | Hinterland flooding | Two-dimensional flood model |
5 | Groundwater head rise (subsurface flood) | Groundwater model |
-
Rainfall runoff feeds the open channel flow, but the open channel flow processes have no impact on the rainfall-runoff. So the data transfer is unidirectional and the interactions can be modeled uncoupled.
-
River flow, dike breach and inundation are processes that interact with each other. Uncoupled modelling would violate the mass balance of water, so a coupled approach is chosen.
-
The infiltration of water from inundated areas into groundwater is an interaction process which cannot be modelled uncoupled, because infiltrating water affects the inundation area and the groundwater balance.
-
The model chain provides information that can be used to identify endangered critical infrastructure. The infrastructure itself has no impact on the hydrological processes, so the simulation results can be transferred to critical infrastructure models manually.
-
A connection between the river model and the groundwater model adds the process of bank storage to the system model.
-
Interactions between river model, dike breach model and two-dimensional flow model could be made uni-directional to trade-off accuracy against performance.
-
A geotechnical model for failure mechanisms due to uplift forces can be added to the modelling chain.
3 The OpenMI Standard
3.1 Introduction
-
unidirectional connection
-
bidirectional connection
-
iterated connection.
3.2 OpenMI Composition Components
omi
-file contains information about one single
OpenMI
compliant component:-
Where is the DLL with the computational core and OpenMI -Interface?
-
Where is the working directory with input files?
-
Anything else like command line arguments or specific settings?
omi
-files are structured in xml. The
omi
-file must be created by the modeller. An example of an
omi
-file is given in Table 2.omi
-file for a
SOBEK
model3.3 Connections
opr
-file defines how
OpenMI
components are connected within an
OpenMI
composition and contains runtime information:-
Which components are part of the composition (reference to
omi
-files and trigger component)? -
Which connections are defined between components?
-
Details of the connections (what and where)?
-
Simulation period.
opr
-file is created by the
OpenMI
configuration editor, but can be modified by the modeller. Like the
omi
-file, the
opr
-file is structured in xml. Table 3 gives an example for an
opr
-file.opr
-file for an
OpenMI
composition with a
SOBEK
model and an
RTC-Tools
model-
the value itself,
-
what the value represents (quantity and unit),
-
where the value applies (element set),
-
and when the value applies.
3.4 Making (Legacy) Code OpenMI Compliant
Initialize()
PerformTimeStep()
Finish()
Dispose()
Initialize
usually comprises the opening and reading of input files describing the mesh, initial conditions and boundary conditions.
PerformTimeStep
initializes the computation of one time step. The
Finish
method has been prepared to close all files used by the component; within the
Dispose
method, allocated memory is freed. The most important
OpenMI
methods for the data exchange itself are given in the following list:-
GetCurrentTime()
-
GetValues(QuantityID, ElementSetID)
-
SetValues(QuantityID, ElementSetID, values)
GetCurrentTime
returns the point in time a component has reached.
GetValues
returns values related to output exchange items (simulation results) for the current time. The function arguments indicate what the return value represents and where it is located. The
SetValues
method sets a value for the model component as an answer on a request. The value to set is a function argument and is usually used as a boundary condition value by the model.3.5 Example Cases of Conjunctive Modelling with OpenMI
-
Generation of boundary conditions for a transient dam seepage scenario [7].
-
Modelling of surface-subsurface interactions, i.e. bank storage and vertical infiltration from a flooded area [15].
-
Coupling of an open channel flow model with a pump model to design a large pump station [16].
-
Integration of different hydrological processes [19].
4 Example: Coupled Flow Simulation and Control
4.1 Study Area and Modelling Objective
-
main station and
-
two railway junctions
4.2 Approach
-
open channel flow in the section of the river Elbe and
-
human operations in the river system (control of hydraulic structures).
-
a SOBEK open channel flow model for the flow of water in the Elbe river and
-
a real-time control model RTC-Tools to represent the human operations in the water system.
4.3 The SOBEK Open Channel Flow Model
-
one branch in the south
-
one branch in the north
-
two branches in the centre, one representing the main river and one represents the Old Elbe branch
-
cross sections
-
observation points
-
one weir to close the Old Elbe branch on its upstream end.
-
Open the SOBEK model.
-
Inspect the network: find the observation points and the structure.
-
Look at the inflow boundary.
-
Run the model.
-
Inspect the side-view for the two routes “Elbe” and “Old Elbe”.
-
Look at the hydrographs for the two observation points.
4.4 The RTC-Tools Real-Time Control Model
-
Open the file
rtcToolsConfig.xml
. -
Find the trigger and rule elements from the flow chart in Fig. 6.
4.5 Coupling with OpenMI
-
the crest level of the weir is controlled in dependence of the current water level at the observation point and
-
the control of the weir has an impact on the water system:
-
if the weir is open, water can flow through the main branch and the Old Elbe branch
-
if the weir is closed, the water flows through the main Elbe branch only.
-
-
SOBEK provides the water level at Schönebeck gauge to RTC-Tools
-
RTC-Tools provides the crest level for the weir to SOBEK .
-
Open the OpenMI configuration editor.
-
Load the RTC-Tools model into the OpenMI configuration editor.
-
Load the SOBEK model into the OpenMI configuration editor.
-
Add a trigger component to the composition. Note that the OpenMI trigger should not be confused with the RTC-Tools trigger element.
-
Add a connection from the RTC-Tools model to the SOBEK model and configure the connection as shown in Fig. 8.×
-
Add a connection from the SOBEK model to the RTC-Tools model and configure the connection as shown in Fig. 9.×
-
Add a connection from the SOBEK model to the OpenMI trigger and configure the connection as shown in Fig. 10. Choose an arbitrary exchange item from the SOBEK model.×
-
Save the composition. The OpenMI composition should look like the one in Fig. 7.
-
The model component that asks first computes last.
-
The model that asks gives the guess (i.e. data from the previous time step).
4.6 Coupled Simulation and Simulation Results
-
Open the SOBEK model that has been running within the OpenMI coupled simulation.
-
Inspect the side views for the routes “Elbe” and “Old Elbe”. For the latter one, add the coverage “Crest level(s)”.
-
Inspect the hydrographs of the two observation points and the crest level.