1 | % Use the standard \LaTeXe\ article style in 12pt Computer Modern font |
---|
2 | % on A4 paper by |
---|
3 | \documentclass[12pt,a4paper]{article} |
---|
4 | |
---|
5 | % Do \emph{not} change the width nor the height of the text from the |
---|
6 | % defaults set by this document class. |
---|
7 | % |
---|
8 | % The alternative which is closer to what we actually use is |
---|
9 | %\documentclass[11pt,a5paper]{article} |
---|
10 | %\usepackage[a5paper]{geometry} |
---|
11 | % Because it is a great size for on screen reading |
---|
12 | % and prints nicely on a4paper either 2up or booklet. |
---|
13 | |
---|
14 | % The preamble is to contain your own \LaTeX\ commands and to say |
---|
15 | % what packages to use. Three useful packages are the following: |
---|
16 | \usepackage{graphicx} % avoid epsfig or earlier such packages |
---|
17 | |
---|
18 | |
---|
19 | \usepackage{url} % for URLs and DOIs |
---|
20 | \usepackage{amsmath} % many want amsmath extensions |
---|
21 | \usepackage{amsfonts} |
---|
22 | \usepackage{underscore} |
---|
23 | % Avoid loading unused packages (as done by some \LaTeX\ editors). |
---|
24 | |
---|
25 | % Create title and authors using \verb|\maketitle|. Separate authors by |
---|
26 | % \verb|\and| and put addresses in \verb|\thanks| command with |
---|
27 | % \verb|\url| command \verb|\protect|ed. |
---|
28 | \title{On The Validation of A Hydrodynamic Model} |
---|
29 | |
---|
30 | \author{ |
---|
31 | D.~S.~Gray\thanks{Natural Hazard Impacts Project, Geospatial and |
---|
32 | Earth Monitoring Division, Geoscience Australia, Symonston, |
---|
33 | \textsc{Australia}. \protect\url{mailto:Duncan.Gray@ga.gov.au}}\footnotemark[1] |
---|
34 | \and |
---|
35 | T.~Baldock\thanks{University of Queensland, Brisbane, \textsc{Australia}. |
---|
36 | \protect\url{mailto:tom.baldock@uq.edu.au}}\footnotemark[2] |
---|
37 | \and |
---|
38 | O.~M.~Nielsen\footnotemark[1] |
---|
39 | \and |
---|
40 | M.~J.~Sexton\footnotemark[1] |
---|
41 | \and |
---|
42 | N.~Bartzis\footnotemark[1] |
---|
43 | \and |
---|
44 | S.~G.~Roberts\thanks{Department of Mathematics, Australian National University, |
---|
45 | Canberra, \textsc{Australia}. \protect\url{mailto:stephen.roberts@anu.edu.au}}} |
---|
46 | |
---|
47 | \date{30 May 2008} |
---|
48 | |
---|
49 | \newcommand{\ANUGA}{\textsc{ANUGA}} |
---|
50 | \newcommand{\Python}{\textsc{Python}} |
---|
51 | \newcommand{\VPython}{\textsc{VPython}} |
---|
52 | \newcommand{\pypar}{\textsc{mpi}} |
---|
53 | \newcommand{\Metis}{\textsc{Metis}} |
---|
54 | \newcommand{\mpi}{\textsc{mpi}} |
---|
55 | |
---|
56 | \newcommand{\UU}{\mathbf{U}} |
---|
57 | \newcommand{\VV}{\mathbf{V}} |
---|
58 | \newcommand{\EE}{\mathbf{E}} |
---|
59 | \newcommand{\GG}{\mathbf{G}} |
---|
60 | \newcommand{\FF}{\mathbf{F}} |
---|
61 | \newcommand{\HH}{\mathbf{H}} |
---|
62 | \newcommand{\SSS}{\mathbf{S}} |
---|
63 | \newcommand{\nn}{\mathbf{n}} |
---|
64 | |
---|
65 | \newcommand{\code}[1]{\texttt{#1}} |
---|
66 | |
---|
67 | |
---|
68 | |
---|
69 | |
---|
70 | \begin{document} |
---|
71 | |
---|
72 | % Use default \verb|\maketitle|. |
---|
73 | \maketitle |
---|
74 | |
---|
75 | % Use the \verb|abstract| environment. |
---|
76 | \begin{abstract} |
---|
77 | Modelling the effects on the built environment of natural hazards such |
---|
78 | as riverine flooding, storm surges and tsunami is critical for |
---|
79 | understanding their economic and social impact on our urban |
---|
80 | communities. Geoscience Australia and the Australian National |
---|
81 | University have developed a hydrodynamic inundation modelling tool |
---|
82 | called \ANUGA{} to help simulate the impact of these hazards. |
---|
83 | The core of \ANUGA{} is a \Python{} implementation of a finite-volume method |
---|
84 | for solving the conservative form of the Shallow Water Wave equation. |
---|
85 | In this paper we describe the model, the architecture and a range of |
---|
86 | validations that have been carried out to establish confidence in the model. |
---|
87 | |
---|
88 | |
---|
89 | \ANUGA{} is available as Open Source to enable |
---|
90 | free access to the software and allow the scientific community to |
---|
91 | use, validate and contribute to the software in the future. |
---|
92 | |
---|
93 | %This method allows the study area to be represented by an unstructured |
---|
94 | %mesh with variable resolution to suit the particular problem. The |
---|
95 | %conserved quantities are water level (stage) and horizontal momentum. |
---|
96 | %An important capability of ANUGA is that it can robustly model the |
---|
97 | %process of wetting and drying as water enters and leaves an area. This |
---|
98 | %means that it is suitable for simulating water flow onto a beach or |
---|
99 | %dry land and around structures such as buildings. |
---|
100 | |
---|
101 | |
---|
102 | \end{abstract} |
---|
103 | |
---|
104 | % By default we include a table of contents in each paper. |
---|
105 | %\tableofcontents |
---|
106 | |
---|
107 | % Use \verb|\section|, \verb|\subsection|, \verb|\subsubsection| and |
---|
108 | % possibly \verb|\paragraph| to structure your document. Make sure |
---|
109 | % you \verb|\label| them for cross-referencing with \verb|\ref|\,. |
---|
110 | |
---|
111 | %\clearpage |
---|
112 | \section{Introduction} |
---|
113 | \label{sec:intro} |
---|
114 | |
---|
115 | The Indian Ocean tsunami on 26 December 2004 demonstrated the |
---|
116 | potentially catastrophic consequences of natural hazards. While the |
---|
117 | scale of the impact from such events is not common, smaller-scale |
---|
118 | tsunami regularly threaten coastal communities |
---|
119 | around the world. Earthquakes which occur in the Java Trench near |
---|
120 | Indonesia (e.g.~\cite{TsuMIS1995} or \cite{Baldwin-2006}) and along |
---|
121 | the Puysegur Ridge to the south of New Zealand (e.g.~\cite{LebKC1998}) |
---|
122 | have potential to generate tsunami that may threaten Australia's |
---|
123 | northwestern and southeastern coastlines. In addition, the |
---|
124 | preferential development of Australian coastal corridors means that |
---|
125 | inundation from hydrological disasters such as tsunami or storm-surge |
---|
126 | of even a few hundred metres beyond the shoreline has increased |
---|
127 | potential to cause significant disruption and loss. The extent of |
---|
128 | inundation is critically linked to the event, tidal conditions, |
---|
129 | bathymetry and topography and it not feasible to make impact |
---|
130 | predictions using heuristics alone. |
---|
131 | |
---|
132 | Hydrodynamic modelling allows impacts from flooding, storm-surge and |
---|
133 | tsunami to be better understood, their impacts to be anticipated and, |
---|
134 | with appropriate planning, their effects to be mitigated. Geoscience |
---|
135 | Australia in collaboration with the Mathematical Sciences Institute, |
---|
136 | Australian National University, is developing a software application |
---|
137 | called \ANUGA{} to model the hydrodynamics of floods, storm surges and |
---|
138 | tsunami. These hazards are modelled using the conservative shallow |
---|
139 | water equations which are described in section~\ref{sec:model}. In |
---|
140 | \ANUGA{} these equations are solved using a finite volume method as |
---|
141 | described in section~\ref{sec:fvm}. A more complete discussion of the |
---|
142 | method can be found in \cite{modsim2005} where the model and solution |
---|
143 | technique is validated on a standard tsunami benchmark data set |
---|
144 | or in \cite{Roberts2007} where parallelisation of ANUGA is discussed. |
---|
145 | This modelling capability is part of |
---|
146 | Geoscience Australia's ongoing research effort to model and |
---|
147 | understand the potential impact from natural hazards in order to |
---|
148 | reduce their impact on Australian communities (see \cite{Nielsen2006}). |
---|
149 | \ANUGA{} is currently being trialled for flood |
---|
150 | modelling (see \cite{Rigby2008}). |
---|
151 | |
---|
152 | Section~\ref{sec:software} describes the software implementation and |
---|
153 | the API while section~\ref{sec:validation} presents some |
---|
154 | validation results. |
---|
155 | |
---|
156 | |
---|
157 | \section{Model} |
---|
158 | \label{sec:model} |
---|
159 | |
---|
160 | The shallow water wave equations are a system of differential |
---|
161 | conservation equations which describe the flow of a thin layer of |
---|
162 | fluid over terrain. The form of the equations are: |
---|
163 | \[ |
---|
164 | \frac{\partial \UU}{\partial t}+\frac{\partial \EE}{\partial |
---|
165 | x}+\frac{\partial \GG}{\partial y}=\SSS |
---|
166 | \] |
---|
167 | where $\UU=\left[ {{\begin{array}{*{20}c} |
---|
168 | h & {uh} & {vh} \\ |
---|
169 | \end{array} }} \right]^T$ is the vector of conserved quantities; water depth |
---|
170 | $h$, $x$-momentum $uh$ and $y$-momentum $vh$. Other quantities |
---|
171 | entering the system are bed elevation $z$ and stage (absolute water |
---|
172 | level) $w$, where the relation $w = z + h$ holds true at all times. |
---|
173 | The fluxes in the $x$ and $y$ directions, $\EE$ and $\GG$ are given |
---|
174 | by |
---|
175 | \[ |
---|
176 | \EE=\left[ {{\begin{array}{*{20}c} |
---|
177 | {uh} \hfill \\ |
---|
178 | {u^2h+gh^2/2} \hfill \\ |
---|
179 | {uvh} \hfill \\ |
---|
180 | \end{array} }} \right]\mbox{ and }\GG=\left[ {{\begin{array}{*{20}c} |
---|
181 | {vh} \hfill \\ |
---|
182 | {vuh} \hfill \\ |
---|
183 | {v^2h+gh^2/2} \hfill \\ |
---|
184 | \end{array} }} \right] |
---|
185 | \] |
---|
186 | and the source term (which includes gravity and friction) is given |
---|
187 | by |
---|
188 | \[ |
---|
189 | \SSS=\left[ {{\begin{array}{*{20}c} |
---|
190 | 0 \hfill \\ |
---|
191 | -{gh(z_{x} + S_{fx} )} \hfill \\ |
---|
192 | -{gh(z_{y} + S_{fy} )} \hfill \\ |
---|
193 | \end{array} }} \right] |
---|
194 | \] |
---|
195 | where $S_f$ is the bed friction. The friction term is modelled using |
---|
196 | Manning's resistance law |
---|
197 | \[ |
---|
198 | S_{fx} =\frac{u\eta ^2\sqrt {u^2+v^2} }{h^{4/3}}\mbox{ and }S_{fy} |
---|
199 | =\frac{v\eta ^2\sqrt {u^2+v^2} }{h^{4/3}} |
---|
200 | \] |
---|
201 | in which $\eta$ is the Manning resistance coefficient. |
---|
202 | |
---|
203 | As demonstrated in our papers, \cite{modsim2005,Rob99l} these |
---|
204 | equations provide an excellent model of flows associated with |
---|
205 | inundation such as dam breaks and tsunamis. |
---|
206 | |
---|
207 | \section{Finite Volume Method} |
---|
208 | \label{sec:fvm} |
---|
209 | |
---|
210 | We use a finite-volume method for solving the shallow water wave |
---|
211 | equations \cite{Rob99l}. The study area is represented by a mesh of |
---|
212 | triangular cells as in Figure~\ref{fig:mesh} in which the conserved |
---|
213 | quantities of water depth $h$, and horizontal momentum $(uh, vh)$, |
---|
214 | in each volume are to be determined. The size of the triangles may |
---|
215 | be varied within the mesh to allow greater resolution in regions of |
---|
216 | particular interest. |
---|
217 | |
---|
218 | \begin{figure} |
---|
219 | \begin{center} |
---|
220 | %\includegraphics[width=5.0cm,keepaspectratio=true]{step-five} |
---|
221 | \caption{Triangular mesh used in our finite volume method. Conserved |
---|
222 | quantities $h$, $uh$ and $vh$ are associated with the centroid of |
---|
223 | each triangular cell.} \label{fig:mesh} |
---|
224 | \end{center} |
---|
225 | \end{figure} |
---|
226 | |
---|
227 | The equations constituting the finite-volume method are obtained by |
---|
228 | integrating the differential conservation equations over each |
---|
229 | triangular cell of the mesh. Introducing some notation we use $i$ to |
---|
230 | refer to the $i$th triangular cell $T_i$, and ${\cal N}(i)$ to the |
---|
231 | set of indices referring to the cells neighbouring the $i$th cell. |
---|
232 | Then $A_i$ is the area of the $i$th triangular cell and $l_{ij}$ is |
---|
233 | the length of the edge between the $i$th and $j$th cells. |
---|
234 | |
---|
235 | By applying the divergence theorem we obtain for each volume an |
---|
236 | equation which describes the rate of change of the average of the |
---|
237 | conserved quantities within each cell, in terms of the fluxes across |
---|
238 | the edges of the cells and the effect of the source terms. In |
---|
239 | particular, rate equations associated with each cell have the form |
---|
240 | $$ |
---|
241 | \frac{d\UU_i }{dt}+ \frac1{A_i}\sum\limits_{j\in{\cal N}(i)} \HH_{ij} l_{ij} = \SSS_i |
---|
242 | $$ |
---|
243 | where |
---|
244 | \begin{itemize} |
---|
245 | \item $\UU_i$ the vector of conserved quantities averaged over the $i$th cell, |
---|
246 | \item $\SSS_i$ is the source term associated with the $i$th cell, |
---|
247 | and |
---|
248 | \item $\HH_{ij}$ is the outward normal flux of |
---|
249 | material across the \textit{ij}th edge. |
---|
250 | \end{itemize} |
---|
251 | |
---|
252 | |
---|
253 | %\item $l_{ij}$ is the length of the edge between the $i$th and $j$th |
---|
254 | %cells |
---|
255 | %\item $m_{ij}$ is the midpoint of |
---|
256 | %the \textit{ij}th edge, |
---|
257 | %\item |
---|
258 | %$\mathbf{n}_{ij} = (n_{ij,1} , n_{ij,2})$is the outward pointing |
---|
259 | %normal along the \textit{ij}th edge, and The |
---|
260 | |
---|
261 | The flux $\HH_{ij}$ is evaluated using a numerical flux function |
---|
262 | $\HH(\cdot, \cdot ; \ \cdot)$ which is consistent with the shallow |
---|
263 | water flux in the sense that for all conservation vectors $\UU$ and normal vectors $\nn$ |
---|
264 | $$ |
---|
265 | H(\UU,\UU;\ \nn) = \EE(\UU) n_1 + \GG(\UU) n_2 . |
---|
266 | $$ |
---|
267 | |
---|
268 | Then |
---|
269 | $$ |
---|
270 | \HH_{ij} = \HH(\UU_i(m_{ij}), |
---|
271 | \UU_j(m_{ij}); \mathbf{n}_{ij}) |
---|
272 | $$ |
---|
273 | where $m_{ij}$ is the midpoint of the \textit{ij}th edge and |
---|
274 | $\mathbf{n}_{ij}$ is the outward pointing normal, with respect to the $i$th cell, on the |
---|
275 | \textit{ij}th edge. The function $\UU_i(x)$ for $x \in |
---|
276 | T_i$ is obtained from the vector $\UU_k$ of conserved average values for the $i$th and |
---|
277 | neighbouring cells. |
---|
278 | |
---|
279 | We use a second order reconstruction to produce a piece-wise linear |
---|
280 | function construction of the conserved quantities for all $x \in |
---|
281 | T_i$ for each cell (see Figure~\ref{fig:mesh:reconstruct}. This |
---|
282 | function is allowed to be discontinuous across the edges of the |
---|
283 | cells, but the slope of this function is limited to avoid |
---|
284 | artificially introduced oscillations. |
---|
285 | |
---|
286 | Godunov's method (see \cite{Toro-92}) involves calculating the |
---|
287 | numerical flux function $\HH(\cdot, \cdot ; \ \cdot)$ by exactly |
---|
288 | solving the corresponding one dimensional Riemann problem normal to |
---|
289 | the edge. We use the central-upwind scheme of \cite{KurNP2001} to |
---|
290 | calculate an approximation of the flux across each edge. |
---|
291 | |
---|
292 | \begin{figure} |
---|
293 | \begin{center} |
---|
294 | %\includegraphics[width=5.0cm,keepaspectratio=true]{step-reconstruct} |
---|
295 | \caption{From the values of the conserved quantities at the centroid |
---|
296 | of the cell and its neighbouring cells, a discontinuous piecewise |
---|
297 | linear reconstruction of the conserved quantities is obtained.} |
---|
298 | \label{fig:mesh:reconstruct} |
---|
299 | \end{center} |
---|
300 | \end{figure} |
---|
301 | |
---|
302 | In the computations presented in this paper we use an explicit Euler |
---|
303 | time stepping method with variable timestepping adapted to the |
---|
304 | observed CFL condition. |
---|
305 | |
---|
306 | |
---|
307 | \section{Software Implementation} |
---|
308 | \label{sec:software} |
---|
309 | |
---|
310 | \ANUGA{} is mostly written in the object-oriented programming |
---|
311 | language \Python{} with computationally intensive parts implemented |
---|
312 | as highly optimised shared objects written in C. |
---|
313 | |
---|
314 | \Python{} is known for its clarity, elegance, efficiency and |
---|
315 | reliability. Complex software can be built in \Python{} without undue |
---|
316 | distractions arising from idiosyncrasies of the underlying software |
---|
317 | language syntax. In addition, \Python{}'s automatic memory management, |
---|
318 | dynamic typing, object model and vast number of libraries means that |
---|
319 | software can be produced quickly and can be readily adapted to |
---|
320 | changing requirements throughout its lifetime. |
---|
321 | |
---|
322 | The fundamental object in \ANUGA{} is the \code{Domain} which |
---|
323 | inherits functionality from a hierarchy of increasingly specialised |
---|
324 | classes starting with a basic structural Mesh to classes implementing |
---|
325 | the finite-volume scheme described in section \ref{sec:fvm}. Other classes |
---|
326 | are \code{Quantity} which represents values of one variable across the mesh |
---|
327 | along with their associated operations, \code{Geospatial_data} which |
---|
328 | represents georeferenced elevation data and a collection of \code{Boundary} |
---|
329 | classes which allows for a 'pluggable' way of driving the model. |
---|
330 | The conserved quantities updated automatically by the numerical scheme |
---|
331 | are stage (water level) $w$, $x$-momentum $uh$ and $y$-momentum |
---|
332 | $vh$. The quanitites elevation $z$ and friction $\eta$ are |
---|
333 | quantities that are not updated automatically but can be changed explicitly |
---|
334 | during run-time if the user wishes to do so. |
---|
335 | |
---|
336 | To set up a scenario the user specifies the study area along with any internal |
---|
337 | regions where increased mesh resolution is required. External edges may |
---|
338 | be labelled using symbolic tags which are subsequently used to bind |
---|
339 | boundary condition objects to tagged segments of the mesh boundary. |
---|
340 | The mesh is then generated using \ANUGA{}'s built-in mesh generator and |
---|
341 | converted into the \code{Domain} object which provides all methods used to |
---|
342 | setup and run the flow simulation. Figure \ref{fig:anuga mesh} shows an example of a mesh generated by \ANUGA{}. |
---|
343 | \begin{figure} |
---|
344 | \begin{center} |
---|
345 | \includegraphics[width=4in,keepaspectratio=true]{triangular-mesh} |
---|
346 | \caption{Triangular mesh used in our finite volume method. Conserved |
---|
347 | quantities $h$, $uh$ and $vh$ are associated with each triangular cell.} |
---|
348 | \label{fig:anuga mesh} |
---|
349 | \end{center} |
---|
350 | \end{figure} |
---|
351 | |
---|
352 | |
---|
353 | |
---|
354 | Next step is to setup initial conditions for each \code{Quantity} object. For |
---|
355 | the elevation $z$ this is typically obtained from bathymetric and |
---|
356 | topographic data sets. Setting initial values for quantities is done |
---|
357 | through the method \code{domain.set_quantity(name, X, location, |
---|
358 | region)} where name is the name of the quantity (e.g.\ 'stage', |
---|
359 | 'xmomentum', 'ymomentum', 'elevation' or 'friction'). The variable X |
---|
360 | represents the source data for populating the quantity and may take |
---|
361 | one of the following forms: |
---|
362 | |
---|
363 | \begin{itemize} |
---|
364 | \item A constant value as in \code{domain.set_quantity('stage', 1)} which |
---|
365 | will set the initial water level to 1 m everywhere. |
---|
366 | \item Another quantity or a linear combination of quantities. If \code{q1} |
---|
367 | and \code{q2} are two arbitrary quantities defined within the same domain, |
---|
368 | the expression \code{domain.set_quantity('stage', q1*(3*q2 + 5))} will set the stage |
---|
369 | quantity accordingly. One common application of this would be to |
---|
370 | assign the stage as a constant depth above the bed elevation. |
---|
371 | \item An arbitrary function (or a callable object), \code{f(x, y)}, where \code{x} |
---|
372 | and \code{y} are assumed to be vectors. The quantity will be assigned values by |
---|
373 | evaluating \code{f} at each location within the mesh. |
---|
374 | \item An arbitrary set of points and associated values (wrapped into a |
---|
375 | Geospatial_data object). The points need not coincide with triangle |
---|
376 | vertices or centroids and a penalised least squares technique is |
---|
377 | employed to populate the quantity in a smooth and stable way. |
---|
378 | Since the least squares technique can be time consuming for large |
---|
379 | problems, \code{set_quantity} employs a caching technique which automatically |
---|
380 | decides whether to perform the computations or retrieve them from a |
---|
381 | cache. This will typically speed up the build by several orders of |
---|
382 | magnitude after each computation has been performed once. |
---|
383 | \item A filename containing points and attributes. |
---|
384 | \item A Numerical Python array (or a list of numbers) ordered |
---|
385 | according to the internal data structure. |
---|
386 | \end{itemize} |
---|
387 | The parameter \code{location} determines whether the values should be |
---|
388 | assigned to triangle edge, midpoints or vertices and \code{region} allows the |
---|
389 | operation to be restricted to a region specified by a symbolic tag or |
---|
390 | a set of indices. |
---|
391 | |
---|
392 | Boundary conditions are bound to symbolic tags through the method |
---|
393 | \code{domain.set_boundary} which takes as input a lookup table (implemented |
---|
394 | as a Python dictionary) of the form \code{\{tag:~boundary_object\}}. |
---|
395 | The boundary objects are all assumed to be callable functions of vectors x |
---|
396 | and y. Several predefined standard boundary objects are available and |
---|
397 | it is relatively straightforward to define problem-specific custom |
---|
398 | boundaries if needed. The predefined boundary conditions include |
---|
399 | Dirichlet, Reflective, Transmissive, Temporal, and Spatio-Temporal |
---|
400 | boundaries. |
---|
401 | |
---|
402 | Forcing terms can be written according to a fixed protocol and added |
---|
403 | to the model using the idiom \code{domain.forcing_terms.append(F)} where \code{F} is |
---|
404 | assumed to be a user-defined callable object. |
---|
405 | |
---|
406 | When the simulation is running, the length of each time step is |
---|
407 | determined from the maximal speeds encountered and the sizes of |
---|
408 | triangles in order not to violate the CFL condition which specifies |
---|
409 | that no information should skip any triangles in one time step. With |
---|
410 | large speeds and small triangles, time steps can become very small. |
---|
411 | In order to access the state of the simulation at regular time |
---|
412 | intervals, \ANUGA{} uses the method evolve: |
---|
413 | \begin{verbatim} |
---|
414 | For t in domain.evolve(yieldstep, duration): |
---|
415 | <model interrogation and modification> |
---|
416 | \end{verbatim} |
---|
417 | The parameter \code{duration} specifies the time period over which |
---|
418 | evolve operates, and control is passed to the body of the for-loop at |
---|
419 | each fixed time step called \code{yieldstep}. The internal workings |
---|
420 | of the numerical scheme and its variable time stepping are thus |
---|
421 | decoupled from the fixed time stepping of the evolve loop. This means |
---|
422 | that the user of the API may access the model at fixed timesteps to |
---|
423 | e.g.\ store model outputs, interrogate quantities or change the model |
---|
424 | itself at runtime. The evolve method has been implemented using a |
---|
425 | Python generator hence the reference to 'yield' in the parameter name. |
---|
426 | |
---|
427 | %Figure \ref{fig:beach runup} shows a simulation of water flowing onto a |
---|
428 | %hypothetical beach with obstacles. |
---|
429 | %A number of complex patterns are captured in this example including a shock where water reflected off the wall far (at the right hand side) meets the main flow. Other physical features are the standing waves and interference patterns. |
---|
430 | %See the \ANUGA{} User Manual at \url{http://sourceforge.net/projects/anuga} for more details and examples. |
---|
431 | %\begin{figure} |
---|
432 | %\begin{center} |
---|
433 | %\includegraphics[width=4in,keepaspectratio=true]{runup} |
---|
434 | %\caption{A hypothetical runup scenario.} |
---|
435 | %\label{fig:beach runup} |
---|
436 | %\end{center} |
---|
437 | %\end{figure} |
---|
438 | |
---|
439 | |
---|
440 | |
---|
441 | \section{Validation} |
---|
442 | \label{sec:validation} The process of validating the \ANUGA{} |
---|
443 | application is in its early stages, however initial indications are |
---|
444 | encouraging. |
---|
445 | |
---|
446 | \subsection{Okushiri Wavetank Validation} |
---|
447 | |
---|
448 | As part of the Third International Workshop on Long-wave Runup |
---|
449 | Models in 2004 (\url{http://www.cee.cornell.edu/longwave}), four |
---|
450 | benchmark problems were specified to allow the comparison of |
---|
451 | numerical, analytical and physical models with laboratory and field |
---|
452 | data. One of these problems describes a wave tank simulation of the |
---|
453 | 1993 Okushiri Island tsunami off Hokkaido, Japan \cite{MatH2001}. A |
---|
454 | significant feature of this tsunami was a maximum run-up of 32~m |
---|
455 | observed at the head of the Monai Valley. This run-up was not |
---|
456 | uniform along the coast and is thought to have resulted from a |
---|
457 | particular topographic effect. Among other features, simulations of |
---|
458 | the Hokkaido tsunami should capture this run-up phenomenon. |
---|
459 | |
---|
460 | \begin{figure}[htbp] |
---|
461 | %\centerline{\includegraphics[width=4in]{okushiri-gauge-5.eps}} |
---|
462 | \centerline{\includegraphics[width=4in]{ch5.png}} |
---|
463 | \centerline{\includegraphics[width=4in]{ch7.png}} |
---|
464 | \centerline{\includegraphics[width=4in]{ch9.png}} |
---|
465 | \caption{Comparison of wave tank and \ANUGA{} water stages at gauge |
---|
466 | 5,7 and 9.}\label{fig:val} |
---|
467 | \end{figure} |
---|
468 | |
---|
469 | |
---|
470 | \begin{figure}[htbp] |
---|
471 | \centerline{\includegraphics[width=4in]{okushiri-model.jpg}} |
---|
472 | \caption{Complex reflection patterns and run-up into Monai Valley |
---|
473 | simulated by \ANUGA{} and visualised using our netcdf OSG |
---|
474 | viewer.}\label{fig:run} |
---|
475 | \end{figure} |
---|
476 | |
---|
477 | |
---|
478 | The wave tank simulation of the Hokkaido tsunami was used as the |
---|
479 | first scenario for validating \ANUGA{}. The dataset provided |
---|
480 | bathymetry and topography along with initial water depth and the |
---|
481 | wave specifications. The dataset also contained water depth time |
---|
482 | series from three wave gauges situated offshore from the simulated |
---|
483 | inundation area. |
---|
484 | |
---|
485 | Figure~\ref{fig:val} compares the observed wave tank and modelled |
---|
486 | \ANUGA{} water depth (stage height) at one of the gauges. The plots |
---|
487 | show good agreement between the two time series, with \ANUGA{} |
---|
488 | closely modelling the initial draw down, the wave shoulder and the |
---|
489 | subsequent reflections. The discrepancy between modelled and |
---|
490 | simulated data in the first 10 seconds is due to the initial |
---|
491 | condition in the physical tank not being uniformly zero. Similarly |
---|
492 | good comparisons are evident with data from the other two gauges. |
---|
493 | Additionally, \ANUGA{} replicates exceptionally well the 32~m Monai |
---|
494 | Valley run-up, and demonstrates its occurrence to be due to the |
---|
495 | interaction of the tsunami wave with two juxtaposed valleys above |
---|
496 | the coastline. The run-up is depicted in Figure~\ref{fig:run}. |
---|
497 | |
---|
498 | This successful replication of the tsunami wave tank simulation on a |
---|
499 | complex 3D beach is a positive first step in validating the \ANUGA{} |
---|
500 | modelling capability. |
---|
501 | |
---|
502 | \subsection{Manning's Friction Model Validation} |
---|
503 | |
---|
504 | % Validation UQ friction |
---|
505 | % at X:\anuga_validation\uq_friction_2007 |
---|
506 | % run run_dam.py to create sww file and .csv files |
---|
507 | % run plot.py to create graphs, and move them here |
---|
508 | \begin{figure}[htbp] |
---|
509 | \centerline{\includegraphics[width=4in]{uq-friction-depth}} |
---|
510 | \caption{Comparison of wave tank and \ANUGA{} water height at .4 m |
---|
511 | from the gate, simulated using a Mannings friction of 0.0 and 0.1.}\label{fig:uq-friction-depth} |
---|
512 | \end{figure} |
---|
513 | |
---|
514 | The bed friction is modelled in ANUGA using the Manning's |
---|
515 | model. Validation of this model was carried out by comparing results |
---|
516 | from ANUGA against experimental results from flume wave tanks. The |
---|
517 | experiments were carried out at the Gordon McKay Hydraulics Laboratory |
---|
518 | at St Lucia, University of Queensland. |
---|
519 | |
---|
520 | %The Manning's friction model is |
---|
521 | |
---|
522 | %To validate the friction model |
---|
523 | |
---|
524 | \subsection{Stage and Velocity Validation in a Flume} |
---|
525 | % Validation UQ flume |
---|
526 | % at X:\anuga_validation\uq_sloped_flume_2008 |
---|
527 | % run run_dam.py to create sww file and .csv files |
---|
528 | % run plot.py to create graphs heere automatically |
---|
529 | % The Coasts and Ports '2007 paper is in TRIM d2007-17186 |
---|
530 | \begin{figure}[htbp] |
---|
531 | \centerline{\includegraphics[width=4in]{uq-flume-depth}} |
---|
532 | \caption{Comparison of wave tank and \ANUGA{} water height at .4 m |
---|
533 | from the gate}\label{fig:uq-flume-depth} |
---|
534 | \end{figure} |
---|
535 | |
---|
536 | \begin{figure}[htbp] |
---|
537 | \centerline{\includegraphics[width=4in]{uq-flume-velocity}} |
---|
538 | \caption{Comparison of wave tank and \ANUGA{} water velocity at .45 m |
---|
539 | from the gate}\label{fig:uq-flume-velocity} |
---|
540 | \end{figure} |
---|
541 | |
---|
542 | Flume experiments caried out at the University of Queensland has also |
---|
543 | been used for validating the water height and velocity predicted by |
---|
544 | \ANUGA{}. The Flume was set up for Dam-break experiments, having a |
---|
545 | water reservior at one end. The flume was glass-sided, 3m long, 0.4m |
---|
546 | in wide, and 0.4m deep, with a PVC bottom. The reservoir in the flume |
---|
547 | was 0.75m long. For this experiment the reservoir water was 0.2m |
---|
548 | deep. At time zero the reservoir gate is opened and the water flows |
---|
549 | into the other side of the flume. The water ran up a flume slope of |
---|
550 | 0.03 m/m. To accurately model the bed surface a Manning's friction |
---|
551 | value of 0.01, representing PVC was used. |
---|
552 | |
---|
553 | % Neale, L.C. and R.E. Price. Flow characteristics of PVC sewer pipe. |
---|
554 | % Journal of the Sanitary Engineering Division, Div. Proc 90SA3, ASCE. |
---|
555 | % pp. 109-129. 1964. |
---|
556 | |
---|
557 | Acoustic displacement sensors that produced a voltage that changed |
---|
558 | with the water depth was positioned 0.4m from the reservoir gate. The |
---|
559 | water velocity was measured with an Acoustic Doppler Velocimeter 0.45m |
---|
560 | from the reservoir gate. This sensor only produced reliable results 4 |
---|
561 | seconds after the reservoir gate opened, due to limitations of the sensor. |
---|
562 | |
---|
563 | Figure~\ref{fig:uq-flume-depth} show that ANUGA predicts the actual |
---|
564 | water depth very well, with the exception of the fluid tip-region. The |
---|
565 | water velocity is also predicted accurately. |
---|
566 | |
---|
567 | \subsection{Runup of Solitary wave on circular island wavetank validation} |
---|
568 | |
---|
569 | \subsection{MAYBE, 1D analytical validation} |
---|
570 | |
---|
571 | \section{Conclusions} |
---|
572 | \label{sec:6} |
---|
573 | \ANUGA{} is a flexible and robust modelling system |
---|
574 | that simulates hydrodynamics by solving the shallow water wave |
---|
575 | equation in a triangular mesh. It can model the process of wetting |
---|
576 | and drying as water enters and leaves an area and is capable of |
---|
577 | capturing hydraulic shocks due to the ability of the finite-volume |
---|
578 | method to accommodate discontinuities in the solution. |
---|
579 | \ANUGA{} can take as input bathymetric and topographic datasets and |
---|
580 | simulate the behaviour of riverine flooding, storm surge, |
---|
581 | tsunami or even dam breaks. |
---|
582 | Initial validation using wave tank data supports \ANUGA{}'s |
---|
583 | ability to model complex scenarios. Further validation will be |
---|
584 | pursued as additional datasets become available. |
---|
585 | The \ANUGA{} source code is available |
---|
586 | at \url{http://sourceforge.net/projects/anuga}. |
---|
587 | |
---|
588 | \bibliographystyle{plain} |
---|
589 | \bibliography{anuga-bibliography} |
---|
590 | |
---|
591 | |
---|
592 | |
---|
593 | |
---|
594 | \end{document} |
---|