Changeset 2283


Ignore:
Timestamp:
Jan 25, 2006, 2:44:11 PM (18 years ago)
Author:
ole
Message:

Added to draft user guide

File:
1 edited

Legend:

Unmodified
Added
Removed
  • documentation/AnuGA_user_manual.tex

    r2277 r2283  
    2222\section*{Introduction}
    2323
    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
     25allows users to model realistic flow problems in complex geometries. Examples include dam breaks or   
     26the effects of natural hazards such as riverine flooding, storm surges and tsunami.
     27
     28The user must specify a study area represented by a mesh of triangular
     29cells, the topography and bathymetry, frictional resistance, initial
     30values for water level (called {\emph{stage} within Anuga), boundary
     31conditions and forces such as windstress or pressure gradients if
     32applicable.
     33
     34Anuga tracks the evolution of water depth and horizontal momentum
     35within each cell over time by solving the shallow water wave equation
     36governing equation using a finite-volume method.
     37
     38Anuga cannot model details of breaking waves, flow under ceilings such
     39as pipes, turbulence and vortices, vertical convection or viscous
     40flows.
     41
     42Anuga also incorporates a mesh generator, called \texttt{pmesh}, that
     43allows the user to set up the geometry of the problem interactively as
     44well as tools for interpolation and surface fitting, and a number of
     45auxiliary tools for visualising and interrogating the model output.
     46
     47Most AnuGA components are written in the object-oriented programming
     48language Python and most users will interact with Anuga by writing
     49small Python programs based on the Anuga library
     50functions. Computationally intensive components are written for
     51efficiency in C routines working directly with the Numerical Python
     52structures.
     53
     54
     55
    3056
    3157\subsection*{Purpose}
     
    4470\subsection*{Audience}
    4571
    46 Readers aare assumed to be familiar with the operating environment
     72Readers are assumed to be familiar with the operating environment
    4773and have a general understanding of the problem background, as
    4874well as enough programming experience to adapt the code to
     
    5581
    5682\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}
    6287\end{itemize}
    6388
     
    77102equation in the simple case of a configuration comprising a flat
    78103bed, sloping at a fixed angle in one direction and having a
    79 constant depth across each line in the perpendicular direction.\\
    80 \\
     104constant depth across each line in the perpendicular direction.
     105
    81106The example demonstrates many of the basic ideas involved in
    82107setting up a more complex scenario. In the general case the user
     
    86111pressure gradients. Frictional resistance from the different
    87112terrains in the model is represented by predefined forcing
    88 terms.\\
    89 \\
     113terms. The boundary is reflective on three sides and a time dependent wave on one side.
     114
    90115The present example, as it represents a simple scenario, does not
    91116include any forcing term, nor is the data taken from a file as it
     
    110135
    111136   \item Sets certain parameters governing the mode of
    112 operation of the model-specifying, for instance, whether the
    113 output is to be `smoothed'.
     137operation of the model-specifying, for instance, where to store the model output.
     138
    114139
    115140   \item Inputs various quantities describing physical measurements, such
    116 as the elevation, to be specified at each mesh point.
     141as the elevation, to be specified at each mesh point (vertex).
    117142
    118143   \item Sets up the boundary conditions.
     
    128153For reference we include below the complete code listing for
    129154\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!]}
     155that 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!]}
    135161
    136162{\scriptsize \begin{verbatim}
     
    191217
    192218{\small \begin{verbatim}
    193     points, vertices, boundary = rectangular(10, 10) .
     219    points, vertices, boundary = rectangular(10, 10)
    194220\end{verbatim}}
    195221
     
    253279\subsection*{Specifying the Quantities}
    254280
    255 The next task is to specify a number of quantities that we wish to
    256 set for each mesh point. The class \texttt{Domain} has a method
     281The next task is to specify a number of quantities that we wish to set
     282for each mesh point. The class \texttt{Domain} has a method
    257283\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}.
     284particularly flexible method that allows the user to set quantities in
     285a variety of ways---using constants, functions, numeric arrays or
     286expressions involving other quantities, arbitrary data points with
     287associated values, all of which can be passed as arguments. All
     288quantities can be initialised using \texttt{set\_quantity}. For
     289conserved quantities (\texttt{stage, xmomentum, ymomentum}) this is
     290called the \emph{initial condition}, for other quantities that aren't
     291updated by the equation, the same interface is used to assign their
     292values. The code in the present example demonstrates a number of forms
     293in which we can invoke \texttt{set\_quantity}.
    264294
    265295
     
    272302
    273303{\small \begin{verbatim}
    274     \# Initial conditions
    275304    def f(x,y):
    276305        return -x/2
     
    344373
    345374\begin{description}
    346     \item[Reflective boundary]Returns same conserved
    347 quantities as those present in its neighbour volume but reflected.
    348 Specific to the shallow water equation as it works with the
    349 momentum quantities assumed to be the second and third conserved
    350 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.
    351380    \item[Transmissive boundary]Returns same conserved quantities as
    352381    those present in its neighbour volume.
     
    381410series of steps indicated by the values of \texttt{yieldstep} and
    382411\texttt{finaltime}, which can be altered as required.
     412The yieldstep control the time interval between model output. Behind the scenes more timesteps are generally taken.
     413
     414
    383415
    384416
     
    390422The output is a NetCDF file with the extension \texttt{.sww}. It
    391423contains 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.
    393425
    394426
     
    398430
    399431\begin{itemize}
    400 \item{from a Windows command line}
     432\item{from a Windows command line} as in \texttt{python bedslope.py}
    401433
    402434\item{within the Python IDLE environment}
     
    404436\item{within emacs}
    405437
    406 \item{from a Linux command line}
     438\item{from a Linux command line} as in \texttt{python bedslope.py}
    407439\end{itemize}
    408440
     
    415447
    416448    \item[AnuGA]
     449   
     450    \item[Conserved quantity]   
    417451
    418452    \item[Default order]
     
    426460    \item[Evolution]
    427461
    428     \item[Forcing]
     462    \item[Forcing term]
    429463
    430464    \item[IDLE]
    431465
    432466    \item[Manning friction coefficient]
     467   
     468    \item[Mesh]   
    433469
    434470    \item[NetCDF]
     
    452488    \item[Transmissive boundary]
    453489
     490    \item[xmomentum]
     491   
     492    \item[ymomentum]   
    454493
    455494
Note: See TracChangeset for help on using the changeset viewer.