Author(s): Ilhan Ozgen, Jiaheng Zhao, Finn Amann, Reinhard Hinkelmann
Linked Author(s): Ilhan Özgen-Xian
Keywords: Shallow water model, coupled modeling, object-oriented programming, Java for scientific computing, design patterns.
Abstract: In a broad range of applications of hydro- and environmental system modeling, the flow field is computed by the shallow water equations. The flow field is then used to compute the physical processes that depend on it, e. g. , transport of a passive tracer, sediment transport and morphodynamics or infiltration. Thus, a scientific code for the computation of these type of hydro- and environmental problems is required to be flexible and extendable such that different processes can be added or removed to the existing code with reasonable effort. Object-Oriented Programming (OOP) concepts that enable abstraction by class encapsulation, polymorphism and class inheritance, are very suitable to design a code that fulfills the aforementioned requirements. In this contribution, we present the in-house scientific modeling framework Hydroinformatics Modeling System (hms), developed at the Chair of Water Resources Management and Modeling of Hydrosystems, Technische Universit�t Berlin, as an example of OOP in application. We discuss the design patterns used in the framework and show the advantages of the OOP approach in test cases that involve coupled processes. Firstly, contaminant transport in an idealized section of Panke river, Berlin, is simulated. Here, the contaminant does not influence the flow and the coupling is only in one way. In a second test case, we couple sediment transport and morphodynamics with the shallow water flow. This is a more complex case, because the transported sediment concentration acts as a momentum sink term in the shallow water flow. Thus, the processes interact with each other in both directions. We conclude that while OOP slightly increases the computational cost and the complexity of the code, applying the OOP concepts results in the code that allows easy implementation and coupling of different physical processes in an existing framework