DONATE

IAHR Document Library


« Back to Library Homepage « Proceedings of the 39th IAHR World Congress (Granada, 2022)

The Shallow Water Model Intercomparison Session: Hydroinformatics Modeling System (hms/hms++)

Author(s): Lennart Steffen; Franziska Tügel; Reinhard Hinkelmann

Linked Author(s): Lennart Steffen, Franziska Tugel, Reinhard Hinkelmann

Keywords: performance improvement, shallow water equations, hydroinformatics modeling system

Abstract: Two related models are described. The first, the "Hydroinformatics Modeling System" (hms), is a Java framework that has been developed since 2005. It chiefly features an FVM-based, explicit SWE solver with various flux- and reconstruction schemes. Its flux schemes include both exact as well as approximate (HLL and HLLC) Riemann solvers. Its reconstruction schemes include a first-order, a central, and a high-order TVD scheme. The latter is split into a (per edge) 4-cell-stencil scheme for structured orthogonal grids and a 6-cell-stencil scheme with a face-based limiting method for unstructured triangular meshes. Hydrostatic reconstruction is performed for all reconstruction schemes. The slope source term is calculated as fluxes across the edges, using the well-balanced scheme introduced in Hou et al. (2013) (Eq. 24). The friction source term is calculated using the point-implicit method described in Bussing and Murman (1988) (Eqs. 35-36). The model uses MIMD-type parallelisation for shared-memory systems, by distributing cells to the available hardware threads. Many additional features have been added over the years, such as scalar transport, infiltration with the Green-Ampt equation, and sediment transport. However, the model is no longer in active development. The code is available on request under a GPLv3. The second model is hms++, a reimplementation of the HLLC Riemann solver and reconstruction schemes from hms in a C++ framework. Slope and friction source terms are based on the same equations as in hms. The aim of hms++ is to investigate strategies for the improvement of computational performance, including parallelisation as well as cache and pipeline utilisation. hms++ features both SIMD- (vectorisation) and MIMD-type parallelisation. Several different MIMD-type parallelisation approaches based on OpenMP are implemented in hms++, of which a block-wise integrated approach shows the best performance and will be the focus of further development. Hybrid execution with OpenMP and MPI for distributed memory systems is also currently being developed. Other and future areas of investigation include runtime vs. compile-time branching for reconstruction method switching and coordinate transformation, padded meshes for block alignment, and hybrid GPU/CPU execution. The code will be made available under a GPLv3 in the near future. The test cases proposed by the session conveners will be simulated with both models, to compare the results as well as runtimes between the two models. References: Bussing, Thomas & Murman, Earll. (1985). Finite-volume method for the calculation of compressible chemically reacting flows. AIAA journal. 26. 10.2514/3.10013. Hou, Jingming & Liang, Qiuhua & Simons, Franz & Hinkelmann, Reinhard. (2013). A 2D well-balanced shallow flow model for unstructured grids with novel slope source term treatment. Advances in Water Resources. 52. 107-131. 10.1016/j.advwatres.2012.08.003.

DOI: https://doi.org/10.3850/IAHR-39WC252171192022SS835

Year: 2022

Copyright © 2024 International Association for Hydro-Environment Engineering and Research. All rights reserved. | Terms and Conditions