Submitted:
12 June 2024
Posted:
13 June 2024
You are already at the latest version
Abstract
Keywords:
1. Introduction
2. Overland Flooding Modeling
2.1. Shallow Water Equations

- g is the gravitational constant,
- h(x,t) is the fluid depth,
- u(x,t) is the vertically averaged horizontal fluid velocity.


- u(x,y,t) and v(x,y,t) are the depth-averaged velocities in the two horizontal directions,
- B(x,y,t) is the topography.

- q(x, t) is the vector of unknowns,
- f (q) is the vector of corresponding fluxes,
- ψ(q, x) is a vector of source terms.



and corresponding
2.2. Finite Volume Technique to Solve Hyperbolic PDEs:
where Vi represents the volume of the grid cell, which is simply the region in one dimension,
to
by solving Riemann problems at
and
, the boundaries of Ci, and using the resulting wave structure of the Riemann problem to determine the numerical update.
where
is a numerical flux approximating the time average of the true flux across the left edge of cell Ci over the time interval. The expression of
is defined as
2.3. Riemann Solver
2.4. Adaptive Mesh Refinement
3. Software Packages Incorporated in GeoFlood
3.1. P4est
3.2. GeoClaw
3.3. ForestClaw

4. Methodology


4.1. How Topography/Bathymetry Is Handled in GeoFlood

where I is the smallest index for which (ξ, η) ∈ RI.
- xmin = max(x1, x3),
- xmax = min(x2, x4),
- ymin = max(y1, y3),
- ymax = min(y2, y4).

- the grid cell be the black dotted rectangle with dimensions,[4,4] to [6,6],
- Topofile-1 be the finest topofile,
- Topofile-2 be the medium (fine and coarse),
- Topofile-3 be the coarsest topofile.











4.1.1. Functions Assigned to Each Topofile and Topofiles Initialized
- Define topography functions assigned to each topofile for example T1, T2, T3) and so on.
- Define the dimensions of the grid cell, say a list with [xmin, xmax, ymin, ymax]
- Define a list of topofiles and their respective dimensions. (for the dimensions, you may need only the lower left coordinates and the upper right coordinates for each topofile).
4.1.2. Define a Function to Check for the Intersection of Two Topofiles
-
Function: intersection(r_1, r_2):
- -
- It will take in two rectangles
- -
- It will compute the intersection.
- -
- Check if there exists the intersection, if so it then computes the area of the intersection.
- -
- It will return the dimensions of the intersection region and the area if it exists, if it does not, it will return area as 0.
4.1.3. Define Function to Recursively Compute the Integral of the Grid Cell
-
Function: compute_integral(grid_cell, m):
- -
- It will take in the grid cell and index of the current topofile as arguments.
- -
-
Set the number of topofiles.
- *
-
Base case:
- It will check if the topofile is the coarsest (the last one in the list).
- If topofile is the coarsest, it will compute the area of the intersection between that topofile and the grid cell using the above intersection function, and also returns that area and the dimensions of the intersection region in case it exists.
- If the area is zero, that is no intersection, it returns zero (0).
- *
-
Recursive case:
- If the topofile is not the last one in the list (coarsest), it will make a recursive call to compute the integral (First integral) for the next topography file in the list.
- It will again calculate the area of the intersection between the grid cell and the current topography file.
- If the area is positive, that is,there is an intersection.
- It will define the intersection region as the intersecting sub-region of the grid cell.
- It will again make a recursive call to compute a second integral, over this intersecting region to be subtracted from the First integral to cater for over- laps.
- It will compute the Third integral as the area of intersection multiplied by the function value of the current topofile, to be added to the First integral to correct overlaps.
- Then finally it will return an integral as First integral-Second integral+Third integral.
4.1.4. Define the Main Function/Routine Which Will Then Call the First Two Functions to Compute the Integral
-
Function grid_cell_int(grid_cell):
- -
- It will first calculate the Area of the grid cell using its dimensions.
- -
-
It will then iterate through the topofiles.
- *
- For each topofile, it will check if there exists an intersection between each and the topofile by calling the intersection function above.
- *
- If the area of the intersection between the topofile and the grid cell exists and its equal to that of the grid cell, it will the compute the integral asI = Area × function assigned to that topofile
- *
- If its found that the area of the intersection is less than that of the grid cell, it will compute the integral recursively by calling the recursive function. This is because for this case there will be overlaps, so they have to be handled well to avoid double counting which may lead to over estimation or under estimation of the integral.
- *
- This is the function the returns the integral of the grid cell.
4.2. How the Above Is Done in Real Case (Piecewise bilinear Surface)




5. Results and Discussions
5.1. Results



5.2. Discussions
5.3. Initial Conditions and Boundary Conditions for Malpas- Set Dam Breakdown
5.4. Simulation Results for the Malpasset Dam Break before the Modifications Were Made
5.5. GeoFlood Compared to Other Models to Simulate Max- Imum Water Elevations


6. Conclusion and Future Work
6.1. Conclusion
6.2. Future Work
Acknowledgments
References
- Boudou, M. ; Moatty, A.; Lang, M. 1 - analysis of major flood events: Collapse of the malpasset dam, december 1959. In Freddy Vinet, editor, Floods, pages 3–19. Elsevier, 2017. ISBN 978-1-78548-268-7. [CrossRef]
- URL https://www.sciencedirect.com/science/article/pii/B9781785482687500018.
- Burstedde, C.; Wilcox, L.C.; Ghattas, O. p4est: Scalable algorithms for parallel adaptive mesh refinement on forests of octrees. In SIAM Journal on Scientific Computing; 2011; Volume 33, pp. 1103–1133. [Google Scholar]
- Donna Calhoun and Carsten Burstedde. Forestclaw: A parallel algorithm for patch-based adaptive mesh refinement on a forest of quadtrees. arXiv preprint 2017, arXiv:1703.03116.
- Clawpack Development Team. Clawpack software, 2024. URL http://www.clawpack.org. Version 5.10.0.
- Sandra Soares Frazao, Francisco Alcrudo, and Nicole Goutal. Dam-break test cases summary 4th cadam meeting. 1999. URL https://api.semanticscholar.org/CorpusID:109693772.
- George, D.L. Finite volume methods and adaptive refinement for tsunami propagation and inundation. University of Washington, 2006. [Google Scholar]
- George, D.L. Augmented riemann solvers for the shallow water equations over variable topog- raphy with steady states and inundation. Journal of Computational Physics, 2008; 227, 3089–3113. [Google Scholar]
- Kyanjo, B. GeoFlood wiki. https://github.com/KYANJO/GeoFlood/wiki, 2023.
- Kyanjo, B.; Calhoun, D.; George, D.L. Geoflood: Computational model for overland flooding. arXiv preprint arXiv:2403.15435, 2024.
- LeVeque, R.J.; George, D.L.; Berger, M.J. Tsunami modelling with adaptively refined finite volume methods. Acta Numerica, 2011; 20, 211–289. [Google Scholar]
- Mandli, K.T.; Ahmadia, A.J.; Berger, M.; Calhoun, D.; George, D.L.; Hadjimichael, Y.; Ketcheson, D.I.; Lemoine, G.I.; LeVeque, R.J. Clawpack: building an open source ecosystem for solving hyperbolic pdes. PeerJ Computer Science 2016, 2, e68. [Google Scholar] [CrossRef]
- Marson, R.L.; Jankowski, E. Build management with cmake. In Introduction to scientific and technical computing, pages 119–132. CRC Press, 2016.
- Matzigkeit, G.; Oliva, A.; Tanner, T.; Vaughan, G.V. Gnu libtool, 1996. Alessandro Valiani, Valerio Caleffi, and Andrea Zanni. Case study: Malpasset dam-break simulation using a two-dimensional finite volume method. Journal of Hydraulic Engineering 2002, 128, 460–472. [CrossRef]
| No. of processors | Wall time(s) | Advance time(s) | Regrid time(s) | Regrid-build time(s) |
| 1 | 10729.7 | 9563.86 | 20.5029 | 1.01052 |
| 2 | 6313.88 | 4919.63 | 14.8174 | 0.541249 |
| 4 | 3381.63 | 2517.43 | 12.0432 | 0.25904 |
| 8 | 2205.49 | 1561.47 | 13.4691 | 0.173513 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).