Surface model (Water Overlay)
The Water Module's primary function is simulating two-dimensional flow of water across the surface. In order to do this, the project area is first discretized into x by y cells depending on the configured grid cell size. Secondly, water is initialized in the model. Finally, a set of rules is required that describes the behavior of the flow.
Surface flow scheme
In the model, imbalances in the water surface elevation across the grid drive the flow of water until a state of equilibrium is reached in terms of h and flux. Behavior of the flow is described by a second-order semi-discrete central-upwind scheme produced by Kurganov and Petrova (2007)[2], which is based on the 2-D Saint-Venant equations (a.k.a. shallow water equations):
where
u is the velocity in the x-direction v is the velocity in the y-direction h is the water depth B is the bottom elevation g is the acceleration due to gravity, set to 9.80665 n is the Gauckler–Manning coefficient
This scheme deviates from the original Saint-Venant equations in that it approaches the system in terms of water surface elevation (w = h + B) and flux (hu and hv), instead of just the water depth (h). The conceptual image in Fig. 1 aims to clarify on the various terms in the model equations. This method relies on a continuous piecewise linear approximation of the surface, which is further explained on this page.
Shoreline reconstruction
This scheme is further extended with the shoreline reconstruction method by Bollerman et al (2014), which ensures better numerical stability at the wetting and drying fronts of a flood wave[3]. An elaborate explanation is provided by Horváth et al. (2014)[1].
General sequence of computational steps:
- Each cell's elevation value (B in Fig. 3) is set equal to the value at its center and the interface midpoints.
- Slopes of conserved variables are reconstructed (continuity and momentum in x- and y-direction).
- Values of conserved variables at the cell interface midpoints are compared with the left-sided and right-sided values with respect to the cell's center.
- Slopes of partially dry cells are modified to prevent negative depth values and numerical instability.
- Fluxes are computed at each cell interface to determine the values of the conserved variable at the cell centers for the next time step.
- The largest allowed time step is calculated.
- Time is incremented with the calculated time step and changes in water level and fluxes are subsequently applied.
Water level initialization
In theory, each grid cell can have a unique bottom elevation and accompanying water depth, yielding a certain water surface elevation (or water level). However, in practice, water levels are often initialized for large groups of cells rather than individual cells, assuming that each (water level) area in a project has been assigned a water level. During the initialization phase a distinction is made between two types:
For all water terrains in a water area, the volume of water per grid cell is such that the resulting water level at those locations conforms the value of the WATER_LEVEL attribute as provided by the corresponding water area.
In contrast to water areas, which generate water on water terrains, inundation areas generate water over all grid cells, regardless of its terrain type. Similarly, the volume of water per grid cell is determined by the INUNDATION_LEVEL attribute as provided by the corresponding inundation area.
If a grid cell is neither part of any water area nor inundation area, or the assigned water level is lower than its bottom elevation, the water depth is assumed to be zero and the water level becomes equal to the bottom elevation. In turn, this bottom (or surface) elevation is equal to the elevation model, though it may be altered by the presence of a building or the BREACH_HEIGHT attribute of a breach.
Water velocity initialization
It is now also possible to initialize the velocity u and velocity v of surface water using prequels. The surface u and surface v are also result overlays that can be inspected and used by subsequent simulations when stored and configured as prequels for other Water Overlays.
Microrelief and minimum flow threshold
For water to flow from a cell to its neighbors, the height of a water column needs to be at least 0.5mm. We call this the minimum flow threshold. However, if microrelief is defined, this minimum flow threshold of a cell is potentially raised to the amount specified for microrelief. Microrelief can be specified by a function's microrelief or terrain's microrelief, or using a grid overlay for the Microrelief prequel. Furthermore an optional Microrelief storage fraction can be set, which will be applied to the microrelief threshold.
Notes
- Water can be added to and removed from the described surface system by the rain, evaporation and infiltration model, as well as certain hydraulic structures and breaches.
- In the case of subsurface flow a different flow system with different equations are used.
- In addition to water flowing in between grid cells, water can also flow through hydraulic buildings.
- The DESIGN_FLOOD_ELEVATION_M attribute confines the maximum surface elevation induced by buildings.
References
- ↑ 1.0 1.1 1.2 Zsolt Horváth, Jürgen Waser, Rui A. P. Perdigão, Artem Konev and Günter Blöschl (2014) ∙ A two-dimensional numerical scheme of dry/wet fronts for the Saint-Venant system of shallow water equations ∙ found at: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.700.7977&rep=rep1&type=pdf and https://www.vrvis.at/publications/pdfs/PB-VRVis-2014-034.pdf (last visited 2024-03-15)
- ↑ Kurganov A, Petrova G (2007) ∙ A Second-Order Well-Balanced Positivity Preserving Central-Upwind Scheme for the Saint-Venant System ∙ found at: http://www.math.tamu.edu/~gpetrova/KPSV.pdf (last visited 2019-04-11)
- ↑ Bollermann, Andreas & Chen, Guoxian & Kurganov, Alexander & Noelle, Sebastian. (2014). A Well-balanced Reconstruction for Wetting, Drying Fronts. IGPM Report. 313. ∙ found at: https://www.researchgate.net/publication/269417532_A_Well-balanced_Reconstruction_for_Wetting_Drying_Fronts (last visited: 2019-07-24)