Changeset 4377


Ignore:
Timestamp:
Apr 15, 2007, 7:03:53 PM (17 years ago)
Author:
steve
Message:
 
Location:
anuga_core/documentation/user_manual
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • anuga_core/documentation/user_manual/anuga_user_manual.tex

    r4369 r4377  
    17311731    Module: \module{shallow\_water.shallow\_water\_domain}
    17321732
    1733     Set the minimum depth (in meters) that will be recognised in 
     1733    Set the minimum depth (in meters) that will be recognised in
    17341734    the numerical scheme (including limiters and flux computations)
    1735    
    1736     Default value is $10^{-3}$ m, but by setting this to a greater value, 
    1737     e.g.\ for large scale simulations, the computation time can be 
    1738     significantly reduced. 
     1735
     1736    Default value is $10^{-3}$ m, but by setting this to a greater value,
     1737    e.g.\ for large scale simulations, the computation time can be
     1738    significantly reduced.
    17391739\end{methoddesc}
    17401740
     
    22562256  Here the numbers in \code{steps=12 (12)} indicate the number of steps taken and
    22572257  the number of first-order steps, respectively.\\
    2258  
    2259   The optional keyword argument \code{track_speeds=True} will 
    2260   generate a histogram of speeds generated by each triangle. The 
    2261   speeds relate to the size of the timesteps used by ANUGA and 
    2262   this diagnostics may help pinpoint problem areas where excessive speeds 
    2263   are generated. 
    2264  
     2258
     2259  The optional keyword argument \code{track_speeds=True} will
     2260  generate a histogram of speeds generated by each triangle. The
     2261  speeds relate to the size of the timesteps used by ANUGA and
     2262  this diagnostics may help pinpoint problem areas where excessive speeds
     2263  are generated.
     2264
    22652265  \end{funcdesc}
    22662266
     
    26692669
    26702670
    2671  
     2671
    26722672%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    26732673%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     
    26792679
    26802680This chapter outlines the mathematics underpinning \anuga.
    2681  
    2682  
     2681
     2682
    26832683
    26842684\section{Model}
     
    27282728in which $\eta$ is the Manning resistance coefficient.
    27292729
    2730 As demonstrated in our papers, \cite{modsim2005,Rob99l} these
     2730As demonstrated in our papers, \cite{ZR1999,nielsen2005} these
    27312731equations provide an excellent model of flows associated with
    27322732inundation such as dam breaks and tsunamis.
     
    27362736
    27372737We use a finite-volume method for solving the shallow water wave
    2738 equations \cite{Rob99l}. The study area is represented by a mesh of
     2738equations \cite{ZR1999}. The study area is represented by a mesh of
    27392739triangular cells as in Figure~\ref{fig:mesh} in which the conserved
    27402740quantities of  water depth $h$, and horizontal momentum $(uh, vh)$,
     
    27452745\begin{figure}
    27462746\begin{center}
    2747 \includegraphics[width=5.0cm,keepaspectratio=true]{step-five}
     2747\includegraphics[width=8.0cm,keepaspectratio=true]{graphics/step-five}
    27482748\caption{Triangular mesh used in our finite volume method. Conserved
    27492749quantities $h$, $uh$ and $vh$ are associated with the centroid of
     
    28112811artificially introduced oscillations.
    28122812
    2813 Godunov's method (see \cite{Toro-92}) involves calculating the
     2813Godunov's method (see \cite{Toro1992}) involves calculating the
    28142814numerical flux function $\HH(\cdot, \cdot ; \ \cdot)$ by exactly
    28152815solving the corresponding one dimensional Riemann problem normal to
     
    28192819\begin{figure}
    28202820\begin{center}
    2821 \includegraphics[width=5.0cm,keepaspectratio=true]{step-reconstruct}
     2821\includegraphics[width=8.0cm,keepaspectratio=true]{graphics/step-reconstruct}
    28222822\caption{From the values of the conserved quantities at the centroid
    28232823of the cell and its neighbouring cells, a discontinuous piecewise
     
    28342834\section{Flux limiting}
    28352835
    2836 The shallow water equations are solved numerically using a 
     2836The shallow water equations are solved numerically using a
    28372837finite volume method on unstructured triangular grid.
    2838 The upwind central scheme due to Kurganov and Petrova is used as an 
     2838The upwind central scheme due to Kurganov and Petrova is used as an
    28392839approximate Riemann solver for the computation of inviscid flux functions.
    2840 This makes it possible to handle discontinuous solutions. 
    2841 
    2842 To alleviate the problems associated with numerical instabilities due to 
     2840This makes it possible to handle discontinuous solutions.
     2841
     2842To alleviate the problems associated with numerical instabilities due to
    28432843small water depths near a wet/dry boundary we employ a new flux limiter that
    28442844ensures that unphysical fluxes are never encounted.
    28452845
    28462846
    2847 Let $u$ and $v$ be the velocity components in the $x$ and $y$ direction, 
     2847Let $u$ and $v$ be the velocity components in the $x$ and $y$ direction,
    28482848$w$ the absolute water level (stage) and
    2849 $z$ the bed elevation. The latter are assumed to be relative to the 
    2850 same height datum. 
    2851 The conserved quantities tracked by ANUGA are momentum in the 
    2852 $x$-direction ($\mu = uh$), momentum in the $y$-direction ($\nu = vh$) 
     2849$z$ the bed elevation. The latter are assumed to be relative to the
     2850same height datum.
     2851The conserved quantities tracked by ANUGA are momentum in the
     2852$x$-direction ($\mu = uh$), momentum in the $y$-direction ($\nu = vh$)
    28532853and depth ($h = w-z$).
    28542854
    2855 The flux calculation requires access to the velocity vector $(u, v)$ 
     2855The flux calculation requires access to the velocity vector $(u, v)$
    28562856where each component is obtained as $u = \mu/h$ and $v = \nu/h$ respectively.
    2857 In the presence of very small water depths, these calculations become 
     2857In the presence of very small water depths, these calculations become
    28582858numerically unreliable and will typically cause unphysical speeds.
    28592859
    2860 We have employed a flux limiter which replaces the calculations above with 
     2860We have employed a flux limiter which replaces the calculations above with
    28612861the limited approximations.
    28622862\begin{equation}
    2863   \hat{u} = \frac{\mu}{h + h_0/h}, \bigskip \hat{v} = \frac{\nu}{h + h_0/h}, 
     2863  \hat{u} = \frac{\mu}{h + h_0/h}, \bigskip \hat{v} = \frac{\nu}{h + h_0/h},
    28642864\end{equation}
    2865 where $h_0$ is a regularisation parameter that controls the minimal 
     2865where $h_0$ is a regularisation parameter that controls the minimal
    28662866magnitude of the denominator. Taking the limits we have for $\hat{u}$
    28672867\[
    2868   \lim_{h \rightarrow 0} \hat{u} = 
     2868  \lim_{h \rightarrow 0} \hat{u} =
    28692869  \lim_{h \rightarrow 0} \frac{\mu}{h + h_0/h} = 0
    28702870\]
    2871 and 
     2871and
    28722872\[
    2873   \lim_{h \rightarrow \infty} \hat{u} = 
     2873  \lim_{h \rightarrow \infty} \hat{u} =
    28742874  \lim_{h \rightarrow \infty} \frac{\mu}{h + h_0/h} = \frac{\mu}{h} = u
    28752875\]
     
    28862886
    28872887
    2888 ANUGA has a global parameter $H_0$ that controls the minimal depth which 
     2888ANUGA has a global parameter $H_0$ that controls the minimal depth which
    28892889is considered in the various equations. This parameter is typically set to
    28902890$10^{-3}$. Setting
     
    28972897  \left[ \frac{\mu}{h + h_0/h} \right]_{h = H_0} = \frac{\mu}{2 H_0}
    28982898\]
    2899 In general, for multiples of the minimal depth $N H_0$ one obtains 
     2899In general, for multiples of the minimal depth $N H_0$ one obtains
    29002900\[
    2901   \left[ \frac{\mu}{h + h_0/h} \right]_{h = N H_0} = 
     2901  \left[ \frac{\mu}{h + h_0/h} \right]_{h = N H_0} =
    29022902  \frac{\mu}{H_0 (1 + 1/N^2)}
    29032903\]
    2904 which converges quadratically to the true value with the multiple N. 
     2904which converges quadratically to the true value with the multiple N.
    29052905
    29062906
     
    29242924\]
    29252925
    2926 Let $\tilde{w_i}$ be the stage obtained from a gradient limiter 
     2926Let $\tilde{w_i}$ be the stage obtained from a gradient limiter
    29272927limiting on stage only. The corresponding depth is then defined as
    29282928\[
    29292929  \tilde{h_i} = \tilde{w_i} - z_i
    29302930\]
    2931 We would use this limiter in deep water which we will define (somewhat boldly) 
     2931We would use this limiter in deep water which we will define (somewhat boldly)
    29322932as
    29332933\[
     
    29362936
    29372937
    2938 Similarly, let $\bar{w_i}$ be the stage obtained from a gradient 
     2938Similarly, let $\bar{w_i}$ be the stage obtained from a gradient
    29392939limiter limiting on depth respecting the bed slope.
    29402940The corresponding depth is defined as
     
    29562956where $\alpha \in [0, 1]$.
    29572957
    2958 Since $\tilde{w_i}$ is obtained in 'deep' water where the bedslope 
    2959 is ignored we have immediately that 
     2958Since $\tilde{w_i}$ is obtained in 'deep' water where the bedslope
     2959is ignored we have immediately that
    29602960\[
    29612961  \alpha = 1 \mbox{ for } \hmin \ge \epsilon %or dz=0
     
    29712971  \alpha \tilde{h_i} + (1-\alpha) \bar{h_i} > \epsilon, \forall i
    29722972\]
    2973 or 
    2974 \begin{equation} 
     2973or
     2974\begin{equation}
    29752975  \alpha(\tilde{h_i} - \bar{h_i}) > \epsilon - \bar{h_i}, \forall i
    29762976  \label{eq:limiter bound}
    2977 \end{equation} 
     2977\end{equation}
    29782978
    29792979There are two cases:
    2980 \begin{enumerate} 
    2981   \item $\bar{h_i} \le \tilde{h_i}$: The deep water (limited using stage) 
    2982   vertex is at least as far away from the bed than the shallow water 
     2980\begin{enumerate}
     2981  \item $\bar{h_i} \le \tilde{h_i}$: The deep water (limited using stage)
     2982  vertex is at least as far away from the bed than the shallow water
    29832983  (limited using depth). In this case we won't need any contribution from
    2984   $\bar{h_i}$ and can accept any $alpha$. 
    2985  
     2984  $\bar{h_i}$ and can accept any $alpha$.
     2985
    29862986  E.g.\ $\alpha=1$ reduces Equation \ref{eq:limiter bound} to
    29872987  \[
    2988     \tilde{h_i} > \epsilon 
     2988    \tilde{h_i} > \epsilon
    29892989  \]
    29902990  whereas $\alpha=0$ yields
    29912991  \[
    2992     \bar{h_i} > \epsilon       
     2992    \bar{h_i} > \epsilon
    29932993  \]
    29942994  all well and good.
    2995   \item $\bar{h_i} > \tilde{h_i}$: In this case the the deep water vertex is 
    2996   closer to the bed than the shallow water vertex or even below the bed. 
    2997   In this case we need to find an $alpha$ that will ensure a positive depth.   
    2998   Rearranging Equation \ref{eq:limiter bound} and solving for $\alpha$ one 
     2995  \item $\bar{h_i} > \tilde{h_i}$: In this case the the deep water vertex is
     2996  closer to the bed than the shallow water vertex or even below the bed.
     2997  In this case we need to find an $alpha$ that will ensure a positive depth.
     2998  Rearranging Equation \ref{eq:limiter bound} and solving for $\alpha$ one
    29992999  obtains the bound
    30003000  \[
    30013001    \alpha < \frac{\epsilon - \bar{h_i}}{\tilde{h_i} - \bar{h_i}}, \forall i
    3002   \] 
    3003 \end{enumerate} 
    3004 
    3005 Ensuring Equation \ref{eq:limiter bound} holds true for all vertices one 
     3002  \]
     3003\end{enumerate}
     3004
     3005Ensuring Equation \ref{eq:limiter bound} holds true for all vertices one
    30063006arrives at the definition
    30073007\[
     
    30093009\]
    30103010which will guarantee that no vertex 'cuts' through the bed. Finally, should
    3011 $\bar{h_i} < \epsilon$ and therefore $\alpha < 0$, we suggest setting 
     3011$\bar{h_i} < \epsilon$ and therefore $\alpha < 0$, we suggest setting
    30123012$alpha=0$ and similarly capping $\alpha$ at 1 just in case.
    30133013
    30143014%Furthermore,
    3015 %dropping the $\epsilon$ ensures that alpha is always positive and also 
     3015%dropping the $\epsilon$ ensures that alpha is always positive and also
    30163016%provides a numerical safety {??)
    3017  
    3018  
     3017
     3018
    30193019
    30203020
     
    39513951http://www.ga.gov.au/meta/ANZCW0703008022.html
    39523952
    3953 
     3953\bibitem[ZR1999]{ZR1999}
     3954\newblock {Catastrophic Collapse of Water Supply Reservoirs in Urban Areas}.
     3955\newblock C.~Zoppou and S.~Roberts.
     3956\newblock {\em ASCE J. Hydraulic Engineering}, 125(7):686--695, 1999.
     3957
     3958\bibitem[Toro1999]{Toro1992}
     3959\newblock Riemann problems and the waf method for solving the two-dimensional
     3960  shallow water equations.
     3961\newblock E.~F. Toro.
     3962\newblock {\em Philosophical Transactions of the Royal Society, Series A},
     3963  338:43--68, 1992.
     3964 
     3965\bibitem{KurNP2001}
     3966\newblock Semidiscrete central-upwind schemes for hyperbolic conservation laws
     3967  and hamilton-jacobi equations.
     3968\newblock A.~Kurganov, S.~Noelle, and G.~Petrova.
     3969\newblock {\em SIAM Journal of Scientific Computing}, 23(3):707--740, 2001.
    39543970\end{thebibliography}{99}
    39553971
  • anuga_core/documentation/user_manual/definitions.tex

    r4376 r4377  
    1717\newcommand{\mpi}{\textsc{mpi}}
    1818
    19 \newcommand{\hmin}{h_{\mbox{{\scriptstyle min}}}}
     19\newcommand{\hmin}{h_{\min}}
    2020
    2121\newcommand{\UU}{\mathbf{U}}
     
    3939\newenvironment{displayedcode}
    4040   {\begin{tabular}{p{0.41cm}l}}
    41    {\end{tabular}} 
     41{\end{tabular}} 
Note: See TracChangeset for help on using the changeset viewer.