Changeset 2283
- Timestamp:
- Jan 25, 2006, 2:44:11 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
documentation/AnuGA_user_manual.tex
r2277 r2283 22 22 \section*{Introduction} 23 23 24 \textbf{AnuGA} is a hydrodynamic inundation modelling tool that 25 allows users to model the effects of natural hazards such as 26 riverine flooding, storm surges and tsunami. It incorporates a 27 mesh generator, called \texttt{pmesh}, that allows the user to set 28 up 29 the geometry of the problem interactively.\\ 24 \textbf{AnuGA} is a hydrodynamic modelling tool that 25 allows users to model realistic flow problems in complex geometries. Examples include dam breaks or 26 the effects of natural hazards such as riverine flooding, storm surges and tsunami. 27 28 The user must specify a study area represented by a mesh of triangular 29 cells, the topography and bathymetry, frictional resistance, initial 30 values for water level (called {\emph{stage} within Anuga), boundary 31 conditions and forces such as windstress or pressure gradients if 32 applicable. 33 34 Anuga tracks the evolution of water depth and horizontal momentum 35 within each cell over time by solving the shallow water wave equation 36 governing equation using a finite-volume method. 37 38 Anuga cannot model details of breaking waves, flow under ceilings such 39 as pipes, turbulence and vortices, vertical convection or viscous 40 flows. 41 42 Anuga also incorporates a mesh generator, called \texttt{pmesh}, that 43 allows the user to set up the geometry of the problem interactively as 44 well as tools for interpolation and surface fitting, and a number of 45 auxiliary tools for visualising and interrogating the model output. 46 47 Most AnuGA components are written in the object-oriented programming 48 language Python and most users will interact with Anuga by writing 49 small Python programs based on the Anuga library 50 functions. Computationally intensive components are written for 51 efficiency in C routines working directly with the Numerical Python 52 structures. 53 54 55 30 56 31 57 \subsection*{Purpose} … … 44 70 \subsection*{Audience} 45 71 46 Readers a are assumed to be familiar with the operating environment72 Readers are assumed to be familiar with the operating environment 47 73 and have a general understanding of the problem background, as 48 74 well as enough programming experience to adapt the code to … … 55 81 56 82 \begin{itemize} 57 58 \item{A \emph{Getting Started} section} 59 60 \item{Detailed descriptions of the various components} 61 83 \item Background (What Anuga does) 84 \item A \emph{Getting Started} section 85 \item Anuga's overall architecture, components and file formats 86 \item Detailed descriptions of the user interface} 62 87 \end{itemize} 63 88 … … 77 102 equation in the simple case of a configuration comprising a flat 78 103 bed, sloping at a fixed angle in one direction and having a 79 constant depth across each line in the perpendicular direction. \\80 \\ 104 constant depth across each line in the perpendicular direction. 105 81 106 The example demonstrates many of the basic ideas involved in 82 107 setting up a more complex scenario. In the general case the user … … 86 111 pressure gradients. Frictional resistance from the different 87 112 terrains in the model is represented by predefined forcing 88 terms. \\89 \\ 113 terms. The boundary is reflective on three sides and a time dependent wave on one side. 114 90 115 The present example, as it represents a simple scenario, does not 91 116 include any forcing term, nor is the data taken from a file as it … … 110 135 111 136 \item Sets certain parameters governing the mode of 112 operation of the model-specifying, for instance, whe ther the113 output is to be `smoothed'. 137 operation of the model-specifying, for instance, where to store the model output. 138 114 139 115 140 \item Inputs various quantities describing physical measurements, such 116 as the elevation, to be specified at each mesh point .141 as the elevation, to be specified at each mesh point (vertex). 117 142 118 143 \item Sets up the boundary conditions. … … 128 153 For reference we include below the complete code listing for 129 154 \texttt{bedslope.py}. Subsequent paragraphs provide a `commentary' 130 that describes each step of the program and explains it significance.\\ 131 \\ 132 \emph{[Can't work out how to prevent \LaTeX (or WinEdt) from 133 wrapping lines, even in \emph{verbatim} mode, without putting} 134 \verb+\\+\emph{s at the ends of lines!]} 155 that describes each step of the program and explains it significance. 156 157 158 %\emph{[Can't work out how to prevent \LaTeX (or WinEdt) from 159 %wrapping lines, even in \emph{verbatim} mode, without putting} 160 %\verb+\\+\emph{s at the ends of lines!]} 135 161 136 162 {\scriptsize \begin{verbatim} … … 191 217 192 218 {\small \begin{verbatim} 193 points, vertices, boundary = rectangular(10, 10) .219 points, vertices, boundary = rectangular(10, 10) 194 220 \end{verbatim}} 195 221 … … 253 279 \subsection*{Specifying the Quantities} 254 280 255 The next task is to specify a number of quantities that we wish to 256 setfor each mesh point. The class \texttt{Domain} has a method281 The next task is to specify a number of quantities that we wish to set 282 for each mesh point. The class \texttt{Domain} has a method 257 283 \texttt{set\_quantity}, used to specify these quantities. It is a 258 particularly flexible method that allows the user to set 259 quantities in a variety of ways---using constants, functions, 260 numeric arrays or expressions involving other quantities, all of 261 which can be passed as arguments. The code in the present example 262 demonstrates a number of forms in which we can invoke 263 \texttt{set\_quantity}. 284 particularly flexible method that allows the user to set quantities in 285 a variety of ways---using constants, functions, numeric arrays or 286 expressions involving other quantities, arbitrary data points with 287 associated values, all of which can be passed as arguments. All 288 quantities can be initialised using \texttt{set\_quantity}. For 289 conserved quantities (\texttt{stage, xmomentum, ymomentum}) this is 290 called the \emph{initial condition}, for other quantities that aren't 291 updated by the equation, the same interface is used to assign their 292 values. The code in the present example demonstrates a number of forms 293 in which we can invoke \texttt{set\_quantity}. 264 294 265 295 … … 272 302 273 303 {\small \begin{verbatim} 274 \# Initial conditions275 304 def f(x,y): 276 305 return -x/2 … … 344 373 345 374 \begin{description} 346 \item[Reflective boundary] Returns same conserved347 quantities as those present in its neighbour volume but reflected.348 Specific to the shallow water equation as it works with the349 momentum quantities assumed to be the second and third conserved350 quantities.375 \item[Reflective boundary] Returns same \texttt{stage} as 376 as present in its neighbour volume but momentum vector reversed 180 degrees (reflected). 377 Specific to the shallow water equation as it works with the 378 momentum quantities assumed to be the second and third conserved 379 quantities. 351 380 \item[Transmissive boundary]Returns same conserved quantities as 352 381 those present in its neighbour volume. … … 381 410 series of steps indicated by the values of \texttt{yieldstep} and 382 411 \texttt{finaltime}, which can be altered as required. 412 The yieldstep control the time interval between model output. Behind the scenes more timesteps are generally taken. 413 414 383 415 384 416 … … 390 422 The output is a NetCDF file with the extension \texttt{.sww}. It 391 423 contains stage and momentum information and can be used with the 392 \texttt{swollen} package to generate a visual display.424 \texttt{swollen} visualisation package to generate a visual display. 393 425 394 426 … … 398 430 399 431 \begin{itemize} 400 \item{from a Windows command line} 432 \item{from a Windows command line} as in \texttt{python bedslope.py} 401 433 402 434 \item{within the Python IDLE environment} … … 404 436 \item{within emacs} 405 437 406 \item{from a Linux command line} 438 \item{from a Linux command line} as in \texttt{python bedslope.py} 407 439 \end{itemize} 408 440 … … 415 447 416 448 \item[AnuGA] 449 450 \item[Conserved quantity] 417 451 418 452 \item[Default order] … … 426 460 \item[Evolution] 427 461 428 \item[Forcing ]462 \item[Forcing term] 429 463 430 464 \item[IDLE] 431 465 432 466 \item[Manning friction coefficient] 467 468 \item[Mesh] 433 469 434 470 \item[NetCDF] … … 452 488 \item[Transmissive boundary] 453 489 490 \item[xmomentum] 491 492 \item[ymomentum] 454 493 455 494
Note: See TracChangeset
for help on using the changeset viewer.