%Anuga validation publication
%
%Geoscience Australia and others 2007-2008
	
% Use the Elsevier LaTeX document class
%\documentclass{elsart3p} % Two column
%\documentclass{elsart1p} % One column
\documentclass{elsart} % Basic

% Useful packages
\usepackage{graphicx} % avoid epsfig or earlier such packages
\usepackage{url}      % for URLs and DOIs
\usepackage{amsmath}  % many want amsmath extensions
\usepackage{amsfonts}
\usepackage{underscore}
\usepackage{natbib}   % Suggested by the Elsevier style
                      % Use \citep and \citet instead of \cite

% Local LaTeX commands
%\newcommand{\Python}{\textsc{Python}}
%\newcommand{\VPython}{\textsc{VPython}}
\newcommand{\pypar}{\textsc{mpi}}
\newcommand{\Metis}{\textsc{Metis}}
\newcommand{\mpi}{\textsc{mpi}}

\newcommand{\UU}{\mathbf{U}}
\newcommand{\VV}{\mathbf{V}}
\newcommand{\EE}{\mathbf{E}}
\newcommand{\GG}{\mathbf{G}}
\newcommand{\FF}{\mathbf{F}}
\newcommand{\HH}{\mathbf{H}}
\newcommand{\SSS}{\mathbf{S}}
\newcommand{\nn}{\mathbf{n}}

\newcommand{\code}[1]{\texttt{#1}}




\begin{document}


\begin{frontmatter}
\title{On The Validation of A Hydrodynamic Model}


\author[GA]{D.~S.~Gray}
\ead{Duncan.Gray@ga.gov.au}
\author[GA]{O.~M.~Nielsen}
\ead{Ole.Nielsen@ga.gov.au}
\author[GA]{M.~J.~Sexton}
\ead{Jane.Sexton@ga.gov.au}
\author[GA]{L.~Fountain}
\author[GA]{K.~VanPutten}
\author[ANU]{S.~G.~Roberts}
\ead{Stephen.Roberts@anu.edu.au}
\author[UQ]{T.~Baldock}
\ead{Tom.Baldock@uq.edu.au}
\author[UQ]{M.~Barnes}
\ead{Matthew.Barnes@uq.edu.au}

\address[GA]{Natural Hazard Impacts Project,
 Geospatial and Earh Monitoring Division, 
 Geoscience Australia, Canberra, Australia} 
 
\address[ANU]{Department of Mathematics, 
Australian National University, Canberra, Australia} 

\address[UQ]{University of Queensland, Brisbane, Australia}


% Use the \verb|abstract| environment.
\begin{abstract}
Modelling the effects on the built environment of natural hazards such
as riverine flooding, storm surges and tsunami is critical for
understanding their economic and social impact on our urban
communities.  Geoscience Australia and the Australian National
University have developed a hydrodynamic inundation modelling tool
called ANUGA to help simulate the impact of these hazards.
The core of ANUGA is a Python implementation of a finite-volume method
for solving the conservative form of the Shallow Water Wave equation.

In this paper, a number of tests are performed to validate ANUGA. These tests
range from benchmark problems to wave and flume tank examples.
ANUGA is available as Open Source to enable
free access to the software and allow the scientific community to
use, validate and contribute to the software in the future.

%This method allows the study area to be represented by an unstructured
%mesh with variable resolution to suit the particular problem.  The
%conserved quantities are water level (stage) and horizontal momentum.
%An important capability of ANUGA is that it can robustly model the
%process of wetting and drying as water enters and leaves an area. This
%means that it is suitable for simulating water flow onto a beach or
%dry land and around structures such as buildings.

\end{abstract}


\begin{keyword}
% keywords here, in the form: keyword \sep keyword
% PACS codes here, in the form: \PACS code \sep code

Hydrodynamic Modelling \sep Model validation \sep
Finite-volumes \sep Shallow water wave equation

\end{keyword}

\date{\today()}
\end{frontmatter}




% Begin document in earnest
\section{Introduction}
\label{sec:intro}

Hydrodynamic modelling allows impacts from flooding, storm-surge and
tsunami to be better understood, their impacts to be anticipated and,
with appropriate planning, their effects to be mitigated.  A significant
proportion of the Australian population reside in the coastal
corridors, thus the potential of significant disruption and loss
is real.  The extent of
inundation is critically linked to the event, tidal conditions,
bathymetry and topography and it not feasible to make impact
predictions using heuristics alone.
Geoscience
Australia in collaboration with the Mathematical Sciences Institute,
Australian National University, is developing a software application
called ANUGA to model the hydrodynamics of floods, storm surges and
tsunami. These hazards are modelled using the conservative shallow
water equations which are described in section~\ref{sec:model}. In
ANUGA these equations are solved using a finite volume method as
described in section~\ref{sec:model}.  A more complete discussion of the
method can be found in \citet{Nielsen2005} where the model and solution
technique is validated on a standard tsunami benchmark data set 
or in \citet{Roberts2007} where the numerical method and parallelisation 
of ANUGA is discussed.
This modelling capability is part of
Geoscience Australia's ongoing research effort to model and
understand the potential impact from natural hazards in order to
reduce their impact on Australian communities \citep{Nielsen2006}.
ANUGA is currently being trialled for flood 
modelling \citep{Rigby2008}.

The validity of other hydrodynamic models have been reported
elsewhere, with \citet{Hubbard02} providing an
excellent review of 1D and 2D models and associated validation
tests. They described the evolution of these models from fixed, nested
to adaptive grids and the ability of the solvers to cope with the
moving shoreline. They highlighted the difficulty in verify the
nonlinear shallow water equations themselves as the only standard
analytical solution is that of \citet{Carrier58} that is strictly for 
non-breaking waves. Further,
whilst there is a 2D analytic solution from \citet{Thacker81}, it appears
that the circular island wave tank example of Briggs et al will become
the standard data set to verify the equations.

This paper will describe the validation outputs in a similar way to 
\citet{Hubbard02} to
present an exhaustive validation of the numerical model. 
Further to these tests, we will
incorporate a test to verify friction values. The tests reported in 
this paper are:
\begin{itemize}
  \item Verification against the 1D analytical solution of Carrier and 
  Greenspan (p~\pageref{sec:carrier}) 
  \item Testing against 1D (flume) data sets to verify wave height and 
  velocity (p~\pageref{sec:stage and velocity})
  \item Determining friction values from 1D flume data sets 
  (p~\pageref{sec:friction})
  \item Validation against a genuinely 2D analytical 
  solution of the model equations (p~\ref{sec:XXX}) 
  \item Testing against the 2D Okushiri benchmark problem
  (p~\pageref{sec:okushiri})    
  \item Testing against the 2D data sets modelling wave run-up around a circular island by Briggs et al. 
  (p~\pageref{sec:circular island}) 
\end{itemize}   


Throughout the paper, qualitative comparisons will be drawn against
other models.  Moreover, all source code necessary to reproduce the
results reported in this paper is available as part of the ANUGA
distribution in the form of a test suite. It is thus possible for
anyone to readily verify that the implementation meets the
requirements set out by these benchmarks.
 

%Hubbard and Dodd's model, OTT-2D, has some similarities to ANUGA, and 
%whilst the mesh can be refined, it is based on rectangular mesh.

%The ANUGA model and numerical scheme is briefly described in
%section~\ref{sec:model}.  A more detailed description of the numerical
%scheme and software implementation can be found in \citet{Nielsen2005} and 
%\citet{Roberts2007}. 
The six case studies to validation and verify ANUGA
will be presented in section~\ref{sec:validation}, with the
conclusions outlined in section~\ref{sec:conclusions}.


\section{Mathematical model, numerical scheme and implementation}
\label{sec:model}

The ANUGA model is based on the shallow water wave equations which are
widely regarded as suitable for modelling 2D flows subject to the
assumptions that horizontal scales (e.g. wave lengths) greatly exceed
the depth, vertical velocities are negligible and the fluid is treated
as inviscid and incompressible. See e.g. the classical texts
\citet{Stoker57} and \citet{Peregrine67} for the background or 
\citet{Roberts1999} for more details on the mathematical model 
used by ANUGA.

The conservation form of the shallow water wave 
equations used in ANUGA are:
\[
\frac{\partial \UU}{\partial t}+\frac{\partial \EE}{\partial
x}+\frac{\partial \GG}{\partial y}=\SSS
\]
where $\UU=\left[ {{\begin{array}{*{20}c}
 h & {uh} & {vh} \\
\end{array} }} \right]^T$ is the vector of conserved quantities; water depth
$h$, $x$-momentum $uh$ and $y$-momentum $vh$. Other quantities
entering the system are bed elevation $z$ and stage (absolute water
level above a reference datum such as Mean Sea Level) $w$, 
where the relation $w = z + h$ holds true at all times.
The fluxes in the $x$ and $y$ directions, $\EE$ and $\GG$ are given
by
\[
\EE=\left[ {{\begin{array}{*{20}c}
 {uh} \hfill \\
 {u^2h+gh^2/2} \hfill \\
 {uvh} \hfill \\
\end{array} }} \right]\mbox{ and }\GG=\left[ {{\begin{array}{*{20}c}
 {vh} \hfill \\
 {vuh} \hfill \\
 {v^2h+gh^2/2} \hfill \\
\end{array} }} \right]
\]
and the source term (which includes gravity and friction) is given
by
\[
\SSS=\left[ {{\begin{array}{*{20}c}
 0 \hfill \\
 -{gh(z_{x} + S_{fx} )} \hfill \\
 -{gh(z_{y} + S_{fy} )} \hfill \\
\end{array} }} \right]
\]
where $S_f$ is the bed friction. The friction term is modelled using
Manning's resistance law
\[
S_{fx} =\frac{u\eta ^2\sqrt {u^2+v^2} }{h^{4/3}}\mbox{ and }S_{fy}
=\frac{v\eta ^2\sqrt {u^2+v^2} }{h^{4/3}}
\]
in which $\eta$ is the Manning resistance coefficient.

%%As demonstrated in our papers, \cite{modsim2005,Roberts1999} these
%%equations provide an excellent model of flows associated with
%%inundation such as dam breaks and tsunamis. Question - how do we
%%know it is excellent? 

ANUGA uses a finite-volume method as 
described in \citet{Roberts2007} where the study area is represented by an
unstructured triangular mesh in which the vector of conserved quantities 
$\UU$ is maintained and updated over time. The flexibility afforded by 
allowing unstructed meshes rather than fixed resolution grids
is the ability for the user to refine the mesh in areas of interest 
while leaving other areas coarse and thereby conserving computational 
resources. 


The approach used in ANUGA are distinguished from many 
other implementations (e.g. \citet{Hubbard02} or \citet{Zhang07}) by the 
following features:
\begin{itemize}
    \item The fluxes across each edge are computed using the semi-discrete
    central-upwind scheme for approximating the Riemann problem
    proposed by \citet{KurNP2001}. This scheme deals with different
    flow regimes such as shocks, rarefactions and sub to super
    critical flow transitions using one general approach. We have
    found this scheme to be pleasingly simple, robust and efficient.
    \item ANUGA does not employ a shoreline detection algorithm as the 
    central-upwind scheme is capable of resolving fluxes arising between 
    wet and dry cells. ANUGA does optionally bypass unnecessary 
    computations for dry-dry cell boundaries purely to improve performance.
    \item ANUGA employs a second order spatial reconstruction of triangles 
    to produce a piece-wise linear function construction of the conserved 
    quantities. This function is allowed to be discontinuous across the 
    edges of the cells, but the slope of this function is limited to avoid
    artificially introduced oscillations. This approach provides good 
    approximation of steep gradients in the solution. However, 
    where the depths are very small compared to the bed-slope a linear 
    combination between second order and first order reconstructions is 
    employed to guarantee numerical stability that may arise form very 
    small depths.
\end{itemize}     
    
In the computations presented in this paper we use an explicit Euler
time stepping method with variable timestepping subject to the 
CFL condition:
\[
  \delta t = \min_k \frac{r_k}{v_k}  
\]
where $r_k$ refers to the radius of the inscribed circle of triangle
$k$, $v_k$ refers to the maximal velocity calculated from fluxes
passing in or out of triangle $k$ and $\delta t$ is the resulting
'safe' timestep to be used for the next iteration.


ANUGA utilises a general velocity limiter described in the 
manual which guarantees a gradual compression of computed velocities
in the presence of very shallow depths:
\begin{equation}
  \hat{u} = \frac{\mu}{h + h_0/h}, \bigskip \hat{v} = \frac{\nu}{h + h_0/h},
\end{equation}
where $h_0$ is a regularisation parameter that controls the minimal
magnitude of the denominator. The default value is $h_0 = 10^{-6}$.


ANUGA is mostly written in the object-oriented programming
language Python with computationally intensive parts implemented
as highly optimised shared objects written in C.

Python is known for its clarity, elegance, efficiency and
reliability. Complex software can be built in Python without undue
distractions arising from idiosyncrasies of the underlying software
language syntax. In addition, Python's automatic memory management,
dynamic typing, object model and vast number of libraries means that
ANUGA scripts can be produced quickly and can be adapted fairly easily to
changing requirements.



\section{Validation}
\label{sec:validation} Validation is an ongoing process and the purpose of this paper
is to describe a range of tests that validate ANUGA as a hydrodynamic model. 
This section will describe the six tests outlined in section~\ref{sec:intro}.
Run times where specified measure the model time only and exclude model setup, 
data conversions etc. All examples were timed on a a 2GHz 64-bit
Dual-Core AMD Opteron(tm) series 2212 Linux server 
running at 2GHz. %This is a tornado compute node (cat /proc/cpuinfo).    


\subsection{1D analytical validation}

Tom Baldock has done something here for that NSW report

\subsection{Stage and Velocity Validation in a Flume}
\label{sec:stage and velocity}
This section will describe tilting flume tank experiments that were
conducted at the Gordon McKay Hydraulics Laboratory at the University of
Queensland that confirm ANUGA's ability to estimate wave height
and velocity. The same flume tank simulations were also used
to explore Manning's friction and this will be described in the next section.

The flume was set up for dam-break experiments, having a
water reservior at one end.  The flume was glass-sided, 3m long, 0.4m
in wide, and 0.4m deep, with a PVC bottom. The reservoir in the flume
was 0.75m long.  For this experiment the reservoir water was 0.2m
deep. At time zero the reservoir gate is manually opened and the water flows
into the other side of the flume.  The water ran up a flume slope of
0.03 m/m.  To accurately model the bed surface a Manning's friction
value of 0.01, representing PVC was used.

% Neale, L.C. and R.E. Price.  Flow characteristics of PVC sewer pipe.
% Journal of the Sanitary Engineering Division, Div. Proc 90SA3, ASCE.
% pp. 109-129.  1964.

Acoustic displacement sensors that produced a voltage that changed
with the water depth was positioned 0.4m from the reservoir gate. The
water velocity was measured with an Acoustic Doppler Velocimeter 0.45m
from the reservoir gate.  This sensor only produced reliable results 4
seconds after the reservoir gate opened, due to limitations of the sensor.


% Validation UQ flume
% at X:\anuga_validation\uq_sloped_flume_2008
% run run_dam.py to create sww file and .csv files
% run plot.py to create graphs heere automatically
% The Coasts and Ports '2007 paper is in TRIM d2007-17186
\begin{figure}[htbp]
\centerline{\includegraphics[width=4in]{uq-flume-depth}}
\caption{Comparison of wave tank and ANUGA water height at .4 m
  from the gate}\label{fig:uq-flume-depth}
\end{figure}

\begin{figure}[htbp]
\centerline{\includegraphics[width=4in]{uq-flume-velocity}}
\caption{Comparison of wave tank and ANUGA water velocity at .45 m
  from the gate}\label{fig:uq-flume-velocity}
\end{figure}

Figure~\ref{fig:uq-flume-depth} shows that ANUGA predicts the actual
water depth very well, although there is an initial drop in water depth
within the first second that is not simulated by ANUGA.
Water depth and velocity are coupled as described by the nonlinear
shallow water equations, thus if one of these quantities accurately
estimates the measured values, we would expect the same for the other
quantity. This is demonstrated in Figure~\ref{fig:uq-flume-velocity}
where the water velocity is also predicted accurately. Sediment
transport studies rely on water velocity estimates in the region where
the sensors cannot provide this data.  With water velocity being
accurately predicted, studies such as sediment transport can now use
reliable estimates.


\subsection{1D flume tank to verify friction}
\label{sec:friction}
The same tilting flume tank was used to validate stage and velocity
was used to validate the ANUGA friction model. A ground slope of 1:20,
reservior lenght of 0.85m and damn depth of 0.4 m was used to verify
the friction. The PVC bottom of the tank is equivalent to a friction
value of 0.01.  {\bf Add ref } Depth sensors were placed 0.2, 0.3,
0.4, 0.5 and 0.6 m from the bed gate.

 
As described in the model equations in ~\ref{sec:model}, the bed
friction is modelled using the Manning's model. {\bf Add the formula}
Validation of this model was carried out by comparing results
from ANUGA against experimental results from flume wave tanks. 
 
This experiment was simulated twice by ANUGA: without using the
friction model {\bf Duncan: It really used the friction model, with a
value of 0.0, representing no friction model.  Is it ok to say
'without using the model?'} and using the friction model with a
Manning's friction value of 0.01.  The results from both of these
simulations were compared against the experimental flume tank results
using the Root Mean Square Relative Error (RMSRE). The RMSRE was
summed over all of the depth sensors, for the first 30 seconds of the
experiment.  This resulted in one number which represents the error
between tow data sets, with a lower number representing less
differences.  The RMSRE for no friction model was 0.380, the RMSRE for
the friction model with a Manning's friction value of 0.01 was
0.358. So for this experiment using a friction value given from a
standard fricition table improved the accuracy of the ANUGA
simulation.  {\bf Add ref to table}

% Validation UQ friction
% at X:\anuga_validation\uq_friction_2007
% run run_dam.py to create sww file and .csv files
% run plot.py to create graphs, and move them here
\begin{figure}[htbp]
\centerline{\includegraphics[width=4in]{uq-friction-depth}}
\caption{Comparison of wave tank and ANUGA water height at .4 m
  from the gate, simulated using a Mannings friction of 0.0 and
  0.1.}\label{fig:uq-friction-depth}
\end{figure}

\subsection{Okushiri Wavetank Validation}
\label{sec:okushiri}
As part of the Third International Workshop on Long-wave Runup
Models in 2004 (\url{http://www.cee.cornell.edu/longwave}), four
benchmark problems were specified to allow the comparison of
numerical, analytical and physical models with laboratory and field
data. One of these problems describes a wave tank simulation of the
1993 Okushiri Island tsunami off Hokkaido, Japan \cite{MatH2001}. A
significant feature of this tsunami was a maximum run-up of 32~m
observed at the head of the Monai Valley. This run-up was not
uniform along the coast and is thought to have resulted from a
particular topographic effect. Among other features, simulations of
the Hokkaido tsunami should capture this run-up phenomenon.

This dataset has been used by to validate tsunami models by
a number of tsunami scientists. Examples include Titov ... lit review
here on who has used this example for verification (Leharne?)

\begin{figure}[htbp]
%\centerline{\includegraphics[width=4in]{okushiri-gauge-5.eps}}
\centerline{\includegraphics[width=4in]{ch5.png}}
\centerline{\includegraphics[width=4in]{ch7.png}}
\centerline{\includegraphics[width=4in]{ch9.png}}
\caption{Comparison of wave tank and ANUGA water stages at gauge
5,7 and 9.}\label{fig:val}
\end{figure}


\begin{figure}[htbp]
\centerline{\includegraphics[width=4in]{okushiri-model.jpg}}
\caption{Complex reflection patterns and run-up into Monai Valley
simulated by ANUGA and visualised using our netcdf OSG
viewer.}\label{fig:run}
\end{figure}

The wave tank simulation of the Hokkaido tsunami was used as the
first scenario for validating ANUGA. The dataset provided
bathymetry and topography along with initial water depth and the
wave specifications. The dataset also contained water depth time
series from three wave gauges situated offshore from the simulated
inundation area. The ANUGA model comprised $41404$ triangles 
and took about $1330$ s to run on the test platform described in 
Section~\ref{sec:validation}.

The script to run this example is available in the ANUGA distribution in the subdirectory
\code{anuga_validation/automated_validation_tests/okushiri_tank_validation}.


Figure~\ref{fig:val} compares the observed wave tank and modelled
ANUGA water depth (stage height) at one of the gauges. The plots
show good agreement between the two time series, with ANUGA
closely modelling the initial draw down, the wave shoulder and the
subsequent reflections. The discrepancy between modelled and
simulated data in the first 10 seconds is due to the initial
condition in the physical tank not being uniformly zero. Similarly
good comparisons are evident with data from the other two gauges.
Additionally, ANUGA replicates exceptionally well the 32~m Monai
Valley run-up, and demonstrates its occurrence to be due to the
interaction of the tsunami wave with two juxtaposed valleys above
the coastline. The run-up is depicted in Figure~\ref{fig:run}.

This successful replication of the tsunami wave tank simulation on a
complex 3D beach is a positive first step in validating the ANUGA
modelling capability. 

\subsection{Runup of solitary wave on circular island wavetank validation}
\label{sec:circular island}
This section will describe the ANUGA results for the experiments
conducted by Briggs et al (1995). Here, a 30x25m basin with a conical
island is situated near the centre and a directional wavemaker is used
to produce planar solitary waves of specified crest lenghts and
heights. A series of gauges were distributed within the experimental
setup. As described by Hubbard and Dodd \cite{Hubbard02}, a number of
researchers have used this benchmark problem to test their numerical
models. {\bf Jane: check whether these results are now avilable as
they were not in 2002}. Hubbard and Dodd \cite{Hubbard02} note that a
particular 3D model appears to obtain slightly better results than the
2D ones reported but that 3D models are unlikely to be competitive in
terms of computing power for applications in coastal engineering at
least. Choi et al \cite{Choi07} use a 3D RANS model (based on the
Navier-Stokes equations) for the same problem and find a very good
comparison with laboratory and 2D numerical results. An obvious
advantage of the 3D model is its ability to investigate the velocity
field and Choi et al also report on the limitation of depth-averaged
2D models for run-up simulations of this type.

Once results are availble, need to compare to Hubbard and Dodd and draw any conclusions
from nested rectangular grid vs unstructured gird.
Figure \ref{fig:circular screenshots} shows a sequence of screenshots depicting the evolution of the solitary wave as it hits the circular island.

\begin{figure}[htbp]
\centerline{
  \includegraphics[width=5cm]{circular1.png}
  \includegraphics[width=5cm]{circular2.png}}
\centerline{
  \includegraphics[width=5cm]{circular3.png}
  \includegraphics[width=5cm]{circular4.png}}
\centerline{
  \includegraphics[width=5cm]{circular5.png}
  \includegraphics[width=5cm]{circular6.png}}
\centerline{
  \includegraphics[width=5cm]{circular7.png}
  \includegraphics[width=5cm]{circular8.png}}
\centerline{
  \includegraphics[width=5cm]{circular9.png}
  \includegraphics[width=5cm]{circular10.png}}
\caption{Screenshots of the evolution of solitary wave around circular island.}
\label{fig:circular screenshots}
\end{figure}


\clearpage

\section{Conclusions}
\label{sec:conclusions}
ANUGA is a flexible and robust modelling system
that simulates hydrodynamics by solving the shallow water wave
equation in a triangular mesh. It can model the process of wetting
and drying as water enters and leaves an area and is capable of
capturing hydraulic shocks due to the ability of the finite-volume
method to accommodate discontinuities in the solution.
ANUGA can take as input bathymetric and topographic datasets and
simulate the behaviour of riverine flooding, storm surge,
tsunami or even dam breaks.
Initial validation using wave tank data supports ANUGA's
ability to model complex scenarios. Further validation will be
pursued as additional datasets become available.
The ANUGA source code and validation case studies reported here are available
at \url{http://sourceforge.net/projects/anuga}.

something about use on flood modelling community and their validation initiatives


%\bibliographystyle{plainnat}
\bibliographystyle{elsart-harv}
\bibliography{anuga-bibliography}

\end{document}
