Changeset 3099


Ignore:
Timestamp:
Jun 6, 2006, 1:27:24 PM (18 years ago)
Author:
howard
Message:

Amended glossary

File:
1 edited

Legend:

Unmodified
Added
Removed
  • documentation/user_manual/anuga_user_manual.tex

    r3092 r3099  
    550550
    551551\begin{itemize}
    552     \item \textbf{Reflective boundary} Returns same \code{stage} as
     552    \item \textbf{Reflective boundary}\label{def:reflective boundary} Returns same \code{stage} as
    553553      as present in its neighbour volume but momentum vector
    554554      reversed 180 degrees (reflected).
     
    556556      momentum quantities assumed to be the second and third conserved
    557557      quantities. A reflective boundary condition models a solid wall.
    558     \item \textbf{Transmissive boundary} Returns same conserved quantities as
     558    \item \textbf{Transmissive boundary}\label{def:transmissive boundary} Returns same conserved quantities as
    559559      those present in its neighbour volume. This is one way of modelling
    560560      outflow from a domain, but it should be used with caution if flow is
     
    562562      may cause occasional spurious effects. If this occurs,
    563563      consider using e.g. a Dirichlet boundary condition.
    564     \item \textbf{[Dirichlet boundary} Specifies a fixed value at the
     564    \item \textbf{[Dirichlet boundary}\label{def:dirichlet boundary} Specifies a fixed value at the
    565565      boundary and assigns initial values to the $x$-momentum and $y$-momentum.
    566     \item \textbf {Time boundary} Like a Dirichlet boundary but with behaviour
     566    \item \textbf{Time boundary}\label{def:time boundary} Like a Dirichlet boundary but with behaviour
    567567      varying with time.
    568568\end{itemize}
     
    791791In practice, the details of the polygons used are read from a
    792792separate file \file{project.py}. The resulting mesh is output to a
    793 \emph{meshfile}\index{meshfile}. This term is used to describe a
    794 file of a specific format used to store the data specifying a mesh.
    795 (There are in fact two possible formats for such a file: it can
    796 either be a binary file, with extension \code{.msh}, or an ASCII
    797 file, with extension \code{.tsh}. In the present case, the binary
    798 file format \code{.msh} is used. See Section \ref{sec:file formats}
    799 (page \pageref{sec:file formats}) for more on file formats.)
    800 \code{pmesh} assigns a name to the file by appending the extension
    801 \code{.msh} to the name specified in the input file
     793\emph{meshfile}\index{meshfile}\label{def:meshfile}. This term is
     794used to describe a file of a specific format used to store the data
     795specifying a mesh. (There are in fact two possible formats for such
     796a file: it can either be a binary file, with extension \code{.msh},
     797or an ASCII file, with extension \code{.tsh}. In the present case,
     798the binary file format \code{.msh} is used. See Section
     799\ref{sec:file formats} (page \pageref{sec:file formats}) for more on
     800file formats.) \code{pmesh} assigns a name to the file by appending
     801the extension \code{.msh} to the name specified in the input file
    802802\file{project.py}. This name is stored in the variable
    803803\code{meshname}.
     
    10311031
    10321032Rather than using either of these forms, in this chapter we specify
    1033 the location simply as \code{pmesh.mesh_interface}, in keeping with
     1033the location simply as \code{pmesh.mesh\_interface}, in keeping with
    10341034the usage in the Python statement for importing the function,
    10351035namely:
     
    10851085
    10861086This function allows a user to initiate the automatic creation of a
    1087 mesh inside a specified polygon (input \code{bounding_polygon}). 
     1087mesh inside a specified polygon (input \code{bounding_polygon}).
    10881088Among the parameters that can be
    10891089set are the \emph{resolution} (maximal area for any triangle in the
     
    10981098
    10991099
    1100 \begin{funcdesc} {add_region}{}
    1101 
    1102 \end{funcdesc}
    1103 
    1104 \begin{funcdesc} {add_hole}{}
    1105 
    1106 \end{funcdesc}
    1107 
    1108 
    1109 \begin{funcdesc}  {add_region_from_polygon}{self, polygon, tags=None,
     1100\begin{funcdesc} {add\_region}{}
     1101
     1102\end{funcdesc}
     1103
     1104\begin{funcdesc} {add\_hole}{}
     1105
     1106\end{funcdesc}
     1107
     1108
     1109\begin{funcdesc}  {add\_region\_from\_polygon}{self, polygon, tags=None,
    11101110                                max_triangle_area=None, geo_reference=None}
    11111111Module: \module{pmesh.mesh}  Class: \class{Mesh}
     
    11201120\end{funcdesc}
    11211121
    1122 \begin{funcdesc}  {add_hole_from_polygon}{self, polygon, tags=None,
     1122\begin{funcdesc}  {add\_hole\_from\_polygon}{self, polygon, tags=None,
    11231123    geo_reference=None}
    11241124Module: \module{pmesh.mesh.Mesh}
     
    11331133\end{funcdesc}
    11341134
    1135 \begin{funcdesc}  {generate_mesh}{self,
     1135\begin{funcdesc}  {generate\_mesh}{self,
    11361136                      maximum_triangle_area=None,
    11371137                      minimum_triangle_angle=28.0,
     
    11461146
    11471147
    1148 \begin{funcdesc}  {export_mesh_file}{self,ofile}
     1148\begin{funcdesc}  {export\_mesh_file}{self,ofile}
    11491149Module: \module{pmesh.mesh.Mesh}
    11501150
     
    12181218    Module: \module{pyvolution.domain}
    12191219
    1220     Returns the name assigned to the domain by \code{set_name}. If no name has been
     1220    Returns the name assigned to the domain by \code{set\_name}. If no name has been
    12211221    assigned, returns \code{`domain'}.
    12221222\end{funcdesc}
     
    12261226
    12271227    Specifies the directory used for data, assigning it to the pathname \code{name}. The default value, before
    1228     \code{set\_datadir} has been run, is the value \code{default_datadir}
     1228    \code{set\_datadir} has been run, is the value \code{default\_datadir}
    12291229    specified in \code{config.py}.
    12301230
     
    12451245\end{funcdesc}
    12461246
    1247 \begin{funcdesc} {get_datadir}{}
     1247\begin{funcdesc} {get\_datadir}{}
    12481248    Module: \module{pyvolution.domain}
    12491249
    1250     Returns the data directory set by \code{set_datadir} or,
    1251     if \code{set_datadir} has not
    1252     been run, returns the value \code{default_datadir} specified in
     1250    Returns the data directory set by \code{set\_datadir} or,
     1251    if \code{set\_datadir} has not
     1252    been run, returns the value \code{default\_datadir} specified in
    12531253    \code{config.py}.
    12541254\end{funcdesc}
    12551255
    1256 \begin{funcdesc} {set_time}{time=0.0}
     1256\begin{funcdesc} {set\_time}{time=0.0}
    12571257    Module: \module{pyvolution.domain}
    12581258
     
    12611261\end{funcdesc}
    12621262
    1263 \begin{funcdesc} {set_default_order}{n}
     1263\begin{funcdesc} {set\_default\_order}{n}
    12641264    Sets the default (spatial) order to the value specified by
    12651265    \code{n}, which must be either 1 or 2. (Assigning any other value
     
    12951295    use_cache = False}
    12961296  Module: \module{pyvolution.domain}
    1297   (see also \module{pyvolution.quantity.set_values})
     1297  (see also \module{pyvolution.quantity.set\_values})
    12981298
    12991299This function is used to assign values to individual quantities for a
     
    13091309\item a function (e.g.\ see the samples introduced in Chapter 2)
    13101310\item an expression composed of other quantities and numbers, arrays, lists (for
    1311 example, a linear combination of quantities, such as 
     1311example, a linear combination of quantities, such as
    13121312\code{domain.set\_quantity('stage','elevation'+x))}
    1313 \item the name of a file from which the data can be read. In this case, the optional argument attribute_name will select which attribute to use from the file. If left out, set_quantity will pick one. This is useful in cases where there is only one attribute.
    1314 \item a geospatial dataset (See ?????). Optional argument attribute_name applies here as with files.
     1313\item the name of a file from which the data can be read. In this case, the optional argument attribute\_name will select which attribute to use from the file. If left out, set\_quantity will pick one. This is useful in cases where there is only one attribute.
     1314\item a geospatial dataset (See ?????). Optional argument attribute\_name applies here as with files.
    13151315\end{itemize}
    13161316
     
    13311331Other optional arguments are
    13321332\begin{itemize}
    1333 \item \code{indices} which is a list of ids of triangles to which set_quantity should apply its assignment of values.
     1333\item \code{indices} which is a list of ids of triangles to which set\_quantity should apply its assignment of values.
    13341334\item \code{location} determines which part of the triangles to assign to. Options are 'vertices' (default), 'edges', and 'centroids'.
    13351335\end{itemize}
     
    13461346%%%
    13471347\anuga provides a number of predefined initial conditions to be used
    1348 with \code{set_quantity}.
     1348with \code{set\_quantity}.
    13491349
    13501350\begin{funcdesc}{slump_tsunami}{length, depth, slope, width=None, thickness=None,
     
    13671367
    13681368%%%
    1369 \begin{funcdesc}{file_function}{filename,
     1369\begin{funcdesc}{file\_function}{filename,
    13701370                  domain = None,
    13711371                  quantities = None,
     
    13801380a callable object. \code{filename} could be a \code{sww} file.
    13811381Returns interpolated values based on the input
    1382 file using the underlying \code{interpolation_function}.
     1382file using the underlying \code{interpolation\_function}.
    13831383
    13841384\code{quantities} is either the name of a single quantity to be
     
    13861386function will return a tuple of values---one for each quantity.
    13871387
    1388 \code{interpolation_points} is a list of absolute UTM coordinates
     1388\code{interpolation\_points} is a list of absolute UTM coordinates
    13891389for points at which values are sought.
    13901390
    13911391The model time stored within the file function can be accessed using
    1392 the method \code{f.get_time()}
     1392the method \code{f.get\_time()}
    13931393\end{funcdesc}
    13941394
     
    14161416an array---or dictionary of arrays (used in conjunction with the
    14171417optional argument \code{quantity\_names}) --- called
    1418 \code{quantities}. The optional arguments \code{vertex_coordinates}
     1418\code{quantities}. The optional arguments \code{vertex\_coordinates}
    14191419and \code{triangles} represent the spatial mesh associated with the
    14201420quantity arrays. If omitted the function created by
     
    14631463\end{funcdesc}
    14641464
    1465 \begin{funcdesc} {get_boundary_tags}{}
     1465\begin{funcdesc} {get\_boundary\_tags}{}
    14661466Module: \module{pyvolution.mesh}
    14671467
     
    14721472\subsection{Predefined boundary conditions}
    14731473
    1474 \begin{classdesc}{Reflective_boundary}{Boundary}
     1474\begin{classdesc}{Reflective\_boundary}{Boundary}
    14751475Module: \module{pyvolution.shallow\_water}
    14761476
     
    14831483
    14841484%%%
    1485 \begin{classdesc}{Transmissive_boundary}{domain = None}
     1485\begin{classdesc}{Transmissive\_boundary}{domain = None}
    14861486Module: \module{pyvolution.generic\_boundary\_conditions}
    14871487
     
    14931493
    14941494%%%
    1495 \begin{classdesc}{Dirichlet_boundary}{conserved_quantities=None}
     1495\begin{classdesc}{Dirichlet\_boundary}{conserved_quantities=None}
    14961496Module: \module{pyvolution.generic\_boundary\_conditions}
    14971497
    14981498A Dirichlet boundary returns constant values for each of conserved
    1499 quantities. In the example of \code{Dirichlet\_boundary([0.2, 0.0, 0.0])}, 
    1500 the \code{stage} value at the boundary is 0.2 and the \code{xmomentum} and 
     1499quantities. In the example of \code{Dirichlet\_boundary([0.2, 0.0, 0.0])},
     1500the \code{stage} value at the boundary is 0.2 and the \code{xmomentum} and
    15011501\code{ymomentum} at the boundary are set to 0.0. The list must contain
    15021502a value for each conserved quantity.
     
    15041504
    15051505%%%
    1506 \begin{classdesc}{Time_boundary}{domain = None, f = None}
     1506\begin{classdesc}{Time\_boundary}{domain = None, f = None}
    15071507Module: \module{pyvolution.generic\_boundary\_conditions}
    15081508
     
    15131513
    15141514%%%
    1515 \begin{classdesc}{File_boundary}{Boundary}
     1515\begin{classdesc}{File\_boundary}{Boundary}
    15161516Module: \module{pyvolution.generic\_boundary\_conditions}
    15171517
    15181518This method may be used if the user wishes to apply a SWW file or
    1519 a time series file to a boundary segment or segments. 
     1519a time series file to a boundary segment or segments.
    15201520The boundary values are obtained from a file and interpolated to the
    15211521appropriate segments for each conserved quantity.
     
    15791579\subsection{Diagnostics}
    15801580
    1581   \begin{funcdesc}{timestepping_statistics}{}
     1581  \begin{funcdesc}{timestepping\_statistics}{}
    15821582  Module: \module{pyvolution.domain}
    15831583
     
    15931593
    15941594
    1595   \begin{funcdesc}{get_quantity}{name, location='vertices', indices = None}
     1595  \begin{funcdesc}{get\_quantity}{name, location='vertices', indices = None}
    15961596  Module: \module{pyvolution.domain}
    15971597  Allow access to individual quantities and their methods
     
    16001600
    16011601
    1602   \begin{funcdesc}{get_values}{location='vertices', indices = None}
     1602  \begin{funcdesc}{get\_values}{location='vertices', indices = None}
    16031603  Module: \module{pyvolution.quantity}
    16041604
     
    16081608
    16091609
    1610   \begin{funcdesc}{get_integral}{}
     1610  \begin{funcdesc}{get\_integral}{}
    16111611  Module: \module{pyvolution.quantity}
    16121612
     
    16181618\section{Other}
    16191619
    1620   \begin{funcdesc}{domain.create_quantity_from_expression}{???}
     1620  \begin{funcdesc}{domain.create\_quantity\_from\_expression}{???}
    16211621
    16221622  Handy for creating derived quantities on-the-fly.
     
    16251625
    16261626
    1627   \begin{classdesc}{Geospatial_data}{data_points = None,
     1627  \begin{classdesc}{Geospatial\_data}{data_points = None,
    16281628                 attributes = None,
    16291629                 geo_reference = None,
    16301630                 default_attribute_name = None,
    16311631                 file_name = None}
    1632     Module: \module{geospatial_data.geo_spatial_data}
     1632    Module: \module{geospatial\_data.geo\_spatial\_data}
    16331633    Creates a georeferenced geospatial data object from either arrays or
    16341634    a file (pts or xya).
     
    16361636    Objects of this class can be used with \method{set\_quantity}.
    16371637
    1638     FIXME (Ole): Describe methods such as get_attributes() etc
     1638    FIXME (Ole): Describe methods such as get\_attributes() etc
    16391639  \end{classdesc}
    16401640
     
    17781778
    17791779The SWW format is used not only for output but also serves as input
    1780 for functions such as \function{file_boundary} and
    1781 \function{file_function}, described in Chapter \ref{ch:interface}.
     1780for functions such as \function{file\_boundary} and
     1781\function{file\_function}, described in Chapter \ref{ch:interface}.
    17821782
    17831783A TMS file is used to store time series data that is independent of
     
    17911791be either a TSH file, which is an ASCII file, or an MSH file, which
    17921792is a NetCDF file. A meshfile can be generated from the function
    1793 \function{create_mesh_from_regions} (see Section
     1793\function{create\_mesh\_from\_regions} (see Section
    17941794\ref{sec:meshgeneration}) and used to initialise a domain.
    17951795
     
    18151815attributes associated with a set of points.
    18161816
    1817 The format for an XYA file is:
     1817The format for an XYA file is:\\
    18181818%\begin{verbatim}
    18191819
     
    18581858
    18591859\begin{tabular}{l l}
    1860 \code{ncols}      &   \code{753}
    1861 \code{nrows}      &   \code{766}
    1862 \code{xllcorner}  &   \code{314036.58727982}
    1863 \code{yllcorner}  &   \code{6224951.2960092}
    1864 \code{cellsize}   &   \code{100}
     1860\code{ncols}      &   \code{753}\\
     1861\code{nrows}      &   \code{766}\\
     1862\code{xllcorner}  &   \code{314036.58727982}\\
     1863\code{yllcorner}  & \code{6224951.2960092}\\
     1864\code{cellsize}   & \code{100}\\
    18651865\code{NODATA_value} & \code{-9999}
    18661866\end{tabular}
     
    19031903
    19041904  Takes data from an SWW file \code{basename_in} and converts it to DEM format (ASC or
    1905   ERS) of a desired grid size \code{cellsize} in metres. 
    1906   The easting and northing values are used if the user wished to clip the output 
     1905  ERS) of a desired grid size \code{cellsize} in metres.
     1906  The easting and northing values are used if the user wished to clip the output
    19071907  file to a specified rectangular area. The \code{reduction} input refers to a function
    19081908  to reduce the quantities over all time step of the SWW file, example, maximum.
     
    20192019
    20202020  If the function definition changes after a result has been cached, this will be
    2021   detected by examining the functions \code{bytecode (co_code, co_consts,
    2022   func_defaults, co_argcount)} and the function will be recomputed.
    2023 
    2024   Options are set by means of the function \code{set_option(key, value)},
     2021  detected by examining the functions \code{bytecode (co\_code, co\_consts,
     2022  func\_defaults, co\_argcount)} and the function will be recomputed.
     2023
     2024  Options are set by means of the function \code{set\_option(key, value)},
    20252025  where \code{key} is a key associated with a
    20262026  Python dictionary \code{options}. This dictionary stores settings such as the name of
     
    20342034
    20352035
    2036    \textbf{USAGE:}
     2036   \textbf{USAGE:} \nopagebreak
    20372037
    20382038    {\small \begin{verbatim}
     
    20702070up/down arrows & increase/decrease speed\\
    20712071
    2072 left/right arrows & direction in time \emph{(when running)}\\ & step through simulation \emph{(when stopped)}\\
     2072left/right arrows & direction in time \emph{(when running)}\\
     2073& step through simulation \emph{(when stopped)}\\
    20732074
    20742075left mouse button & rotate\\
     
    20882089Options:\\  \nopagebreak
    20892090\begin{tabular}{ll}
    2090   \code{--display <type>} & \code{MONITOR | POWERWALL | REALITY_CENTER |}\\
    2091                                     & \code{HEAD_MOUNTED_DISPLAY}\\
     2091  \code{--display <type>} & \code{MONITOR | POWERWALL | REALITY\_CENTER |}\\
     2092                                    & \code{HEAD\_MOUNTED\_DISPLAY}\\
    20922093  \code{--rgba} & Request a RGBA colour buffer visual\\
    20932094  \code{--stencil} & Request a stencil buffer visual\\
    20942095  \code{--stereo} & Use default stereo mode which is \code{ANAGLYPHIC} if not \\
    20952096                                    & overridden by environmental variable\\
    2096   \code{--stereo <mode>} & \code{ANAGLYPHIC | QUAD_BUFFER | HORIZONTAL_SPLIT |}\\
    2097                                     & \code{VERTICAL_SPLIT | LEFT_EYE | RIGHT_EYE |}\\
     2097  \code{--stereo <mode>} & \code{ANAGLYPHIC | QUAD\_BUFFER | HORIZONTAL\_SPLIT |}\\
     2098                                    & \code{VERTICAL\_SPLIT | LEFT\_EYE | RIGHT\_EYE |}\\
    20982099                                     & \code{ON | OFF} \\
    20992100  \code{-alphamax <float 0-1>} & Maximum transparency clamp value\\
    21002101  \code{-alphamin <float 0-1>} & Transparency value at \code{hmin}\\
     2102\end{tabular}
     2103
     2104\begin{tabular}{ll}
    21012105  \code{-cullangle <float angle 0-90>} & Cull triangles steeper than this value\\
    21022106  \code{-help} & Display this information\\
    21032107  \code{-hmax <float>} & Height above which transparency is set to
    21042108                                     \code{alphamax}\\
     2109\end{tabular}
     2110
     2111\begin{tabular}{ll}
     2112
    21052113  \code{-hmin <float>} & Height below which transparency is set to
    21062114                                     zero\\
     2115\end{tabular}
     2116
     2117\begin{tabular}{ll}
    21072118  \code{-lightpos <float>,<float>,<float>} & $x,y,z$ of bedslope directional light ($z$ is
    21082119                                     up, default is overhead)\\
     2120\end{tabular}
     2121
     2122\begin{tabular}{ll}
    21092123  \code{-loop}  & Repeated (looped) playback of \code{.swm} files\\
     2124
     2125\end{tabular}
     2126
     2127\begin{tabular}{ll}
    21102128  \code{-movie <dirname>} & Save numbered images to named directory and
    21112129                                     quit\\
     2130
    21122131  \code{-nosky} & Omit background sky\\
     2132
     2133
    21132134  \code{-scale <float>} & Vertical scale factor\\
    21142135  \code{-texture <file>} & Image to use for bedslope topography\\
     
    21232144  \refmodindex{utilities.polygon}
    21242145
    2125   \begin{classdesc}{Polygon_function}{regions, default = 0.0, geo_reference = None}
     2146  \begin{classdesc}{Polygon\_function}{regions, default = 0.0, geo_reference = None}
    21262147  Module: \code{utilities.polygon}
    21272148
     
    21412162  \end{classdesc}
    21422163
    2143   \begin{funcdesc}{read_polygon}{filename}
     2164  \begin{funcdesc}{read\_polygon}{filename}
    21442165  Module: \code{utilities.polygon}
    21452166
     
    21492170  \end{funcdesc}
    21502171
    2151   \begin{funcdesc}{populate_polygon}{polygon, number_of_points, seed = None, exclude = None}
     2172  \begin{funcdesc}{populate\_polygon}{polygon, number_of_points, seed = None, exclude = None}
    21522173  Module: \code{utilities.polygon}
    21532174
     
    21562177  \end{funcdesc}
    21572178
    2158   \begin{funcdesc}{point_in_polygon}{polygon, delta=1e-8}
     2179  \begin{funcdesc}{point\_in\_polygon}{polygon, delta=1e-8}
    21592180  Module: \code{utilities.polygon}
    21602181
     
    21642185  \end{funcdesc}
    21652186
    2166   \begin{funcdesc}{inside_polygon}{points, polygon, closed = True, verbose = False}
     2187  \begin{funcdesc}{inside\_polygon}{points, polygon, closed = True, verbose = False}
    21672188  Module: \code{utilities.polygon}
    21682189
     
    21752196  \end{funcdesc}
    21762197
    2177   \begin{funcdesc}{outside_polygon}{points, polygon, closed = True, verbose = False}
     2198  \begin{funcdesc}{outside\_polygon}{points, polygon, closed = True, verbose = False}
    21782199  Module: \code{utilities.polygon}
    21792200
    2180   Exactly like \code{inside_polygon}, but with the words `inside' and `outside' interchanged.
     2201  Exactly like \code{inside\_polygon}, but with the words `inside' and `outside' interchanged.
    21812202  \end{funcdesc}
    21822203
    2183   \begin{funcdesc}{is_inside_polygon}{point, polygon, closed=True, verbose=False}
     2204  \begin{funcdesc}{is\_inside\_polygon}{point, polygon, closed=True, verbose=False}
    21842205  Module: \code{utilities.polygon}
    21852206
     
    21892210  \end{funcdesc}
    21902211
    2191   \begin{funcdesc}{is_outside_polygon}{point, polygon, closed=True, verbose=False}
     2212  \begin{funcdesc}{is\_outside\_polygon}{point, polygon, closed=True, verbose=False}
    21922213  Module: \code{utilities.polygon}
    21932214
    2194   Exactly like \code{is_outside_polygon}, but with the words `inside' and `outside' interchanged.
     2215  Exactly like \code{is\_outside\_polygon}, but with the words `inside' and `outside' interchanged.
    21952216  \end{funcdesc}
    21962217
    2197   \begin{funcdesc}{point_on_line}{x, y, x0, y0, x1, y1}
     2218  \begin{funcdesc}{point\_on\_line}{x, y, x0, y0, x1, y1}
    21982219  Module: \code{utilities.polygon}
    21992220
     
    22032224  \end{funcdesc}
    22042225
    2205   \begin{funcdesc}{separate_points_by_polygon}{points, polygon, closed = True, verbose = False}
    2206     \indexedcode{separate_points_by_polygon}
     2226  \begin{funcdesc}{separate\_points\_by\_polygon}{points, polygon, closed = True, verbose = False}
     2227    \indexedcode{separate\_points\_by\_polygon}
    22072228  Module: \code{utilities.polygon}
    22082229
    22092230  \end{funcdesc}
    22102231
    2211   \begin{funcdesc}{polygon_area}{polygon}
     2232  \begin{funcdesc}{polygon\_area}{polygon}
    22122233  Module: \code{utilities.polygon}
    22132234
     
    22152236  \end{funcdesc}
    22162237
    2217   \begin{funcdesc}{plot_polygons}{polygons, figname, verbose = False}
     2238  \begin{funcdesc}{plot\_polygons}{polygons, figname, verbose = False}
    22182239  Module: \code{utilities.polygon}
    22192240
    2220   Plots each polygon contained in input polygon list, e.g. 
     2241  Plots each polygon contained in input polygon list, e.g.
    22212242 \code{polygons = [poly1, poly2, poly3]} where \code{poly1 = [[x11,y11],[x12,y12],[x13,y13]]}
    22222243 etc.  Each polygon is closed for plotting purposes and subsequent plot saved to \code{figname}.
     
    22252246  \end{funcdesc}
    22262247
    2227 \section{coordinate_transforms}
    2228 
    2229 \section{geospatial_data}
     2248\section{coordinate\_transforms}
     2249
     2250\section{geospatial\_data}
    22302251
    22312252This describes a class that represents arbitrary point data in UTM
     
    22382259
    22392260
    2240 \begin{classdesc}{Geospatial_data}
     2261\begin{classdesc}{Geospatial\_data}
    22412262  {data_points = None,
    22422263    attributes = None,
     
    22442265    default_attribute_name = None,
    22452266    file_name = None}
    2246 Module: \code{geospatial_data}
     2267Module: \code{geospatial\_data}
    22472268
    22482269This class is used to store a set of data points and associated
     
    22512272
    22522273The data points are specified either by reading them from a NetCDF
    2253 or XYA file, identified through the parameter \code{file_name}, or
     2274or XYA file, identified through the parameter \code{file\_name}, or
    22542275by providing their \code{x}- and \code{y}-coordinates in metres,
    22552276either as a sequence of 2-tuples of floats or as an $M \times 2$
    22562277Numeric array of floats, where $M$ is the number of points.
    22572278Coordinates are interpreted relative to the origin specified by the
    2258 object \code{geo_reference}, which contains data indicating the UTM
    2259 zone, easting and northing. If \code{geo_reference} is not
     2279object \code{geo\_reference}, which contains data indicating the UTM
     2280zone, easting and northing. If \code{geo\_reference} is not
    22602281specified, a default is used.
    22612282
     
    22642285keys are the attribute names and whose values are lists or arrays of
    22652286length $M$. One of the attributes may be specified as the default
    2266 attribute, by assigning its name to \code{default_attribute_name}.
     2287attribute, by assigning its name to \code{default\_attribute\_name}.
    22672288If no value is specified, the default attribute is taken to be the
    22682289first one.
     
    22702291
    22712292
    2272 \begin{funcdesc}{import_points_file}{delimiter = None, verbose = False}
    2273 
    2274 \end{funcdesc}
    2275 
    2276 
    2277 \begin{funcdesc}{export_points_file}{ofile, absolute=False}
    2278 
    2279 \end{funcdesc}
    2280 
    2281 
    2282 \begin{funcdesc}{get_data_points}{absolute = True}
    2283 
    2284 \end{funcdesc}
    2285 
    2286 
    2287 \begin{funcdesc}{set_attributes}{attributes}
    2288 
    2289 \end{funcdesc}
    2290 
    2291 
    2292 \begin{funcdesc}{get_attributes}{attribute_name = None}
    2293 
    2294 \end{funcdesc}
    2295 
    2296 
    2297 \begin{funcdesc}{get_all_attributes}{}
    2298 
    2299 \end{funcdesc}
    2300 
    2301 
    2302 \begin{funcdesc}{set_default_attribute_name}{default_attribute_name}
    2303 
    2304 \end{funcdesc}
    2305 
    2306 
    2307 \begin{funcdesc}{set_geo_reference}{geo_reference}
    2308 
    2309 \end{funcdesc}
    2310 
    2311 
    2312 \begin{funcdesc}{__add__}
     2293\begin{funcdesc}{import\_points\_file}{delimiter = None, verbose = False}
     2294
     2295\end{funcdesc}
     2296
     2297
     2298\begin{funcdesc}{export\_points\_file}{ofile, absolute=False}
     2299
     2300\end{funcdesc}
     2301
     2302
     2303\begin{funcdesc}{get\_data\_points}{absolute = True}
     2304
     2305\end{funcdesc}
     2306
     2307
     2308\begin{funcdesc}{set\_attributes}{attributes}
     2309
     2310\end{funcdesc}
     2311
     2312
     2313\begin{funcdesc}{get\_attributes}{attribute_name = None}
     2314
     2315\end{funcdesc}
     2316
     2317
     2318\begin{funcdesc}{get\_all\_attributes}{}
     2319
     2320\end{funcdesc}
     2321
     2322
     2323\begin{funcdesc}{set\_default\_attribute\_name}{default_attribute_name}
     2324
     2325\end{funcdesc}
     2326
     2327
     2328\begin{funcdesc}{set\_geo\_reference}{geo_reference}
     2329
     2330\end{funcdesc}
     2331
     2332
     2333\begin{funcdesc}{add}{}
    23132334
    23142335\end{funcdesc}
     
    23172338\section{pmesh GUI}
    23182339
    2319 \section{alpha_shape}
     2340\section{alpha\_shape}
    23202341An \emph{alpha shape} is a shape created from a set of points in the
    23212342plane, according to an algorithm. This shape is intended to capture
     
    23352356associated with instances of this class.
    23362357
    2337 \begin{classdesc}{Alpha_Shape}{points, alpha = None}
    2338 Module: \code{alpha_shape}
     2358\begin{classdesc}{Alpha\_Shape}{points, alpha = None}
     2359Module: \code{alpha\_shape}
    23392360
    23402361To instantiate this class the user supplies the points from which
    23412362the alpha shape is to be created (in the form of a list of 2-tuples
    23422363\code{[[x1, y1],[x2, y2]}\ldots\code{]}, assigned to the parameter
    2343 \code{points}) and, optionally, a value for the parameter $\alpha$.
    2344 The alpha shape is then computed and details of the required
    2345 boundary may be retrieved as attributes of the class instance.
     2364\code{points}) and, optionally, a value for the parameter
     2365\code{alpha}. The alpha shape is then computed and details of the
     2366required boundary may be retrieved as attributes of the class
     2367instance.
    23462368\end{classdesc}
    23472369
    23482370
    2349 \begin{funcdesc}{alpha_shape_via_files}{point_file, boundary_file, alpha= None}
    2350 Module: \code{alpha_shape}
     2371\begin{funcdesc}{alpha\_shape\_via\_files}{point_file, boundary_file, alpha= None}
     2372Module: \code{alpha\_shape}
    23512373
    23522374This function reads points from the specified file
    2353 \code{point_file}, computes the associated alpha shape (either using
    2354 the specified value for \code{alpha} or, if no value is specified,
    2355 automatically setting it to a value judged to be optimal} and
    2356 outputs the boundary to a file named \code{boundary_file}. This
     2375\code{point\_file}, computes the associated alpha shape (either
     2376using the specified value for \code{alpha} or, if no value is
     2377specified, automatically setting it to a value judged to be optimal)
     2378and outputs the boundary to a file named \code{boundary\_file}. This
    23572379output file lists the coordinates \code{x, y} of each point in the
    23582380boundary, using one line per point.
     
    23602382
    23612383
    2362 \begin{funcdesc}{set_boundary_type}{self,raw_boundary=True,
     2384\begin{funcdesc}{set\_boundary\_type}{self,raw_boundary=True,
    23632385                          remove_holes=False,
    23642386                          smooth_indents=False,
    23652387                          expand_pinch=False,
    23662388                          boundary_points_fraction=0.2}
    2367 Module: \code{alpha_shape}
     2389Module: \code{alpha\_shape}
    23682390
    23692391This function sets flags that govern the operation of the algorithm
    2370 that computes the boundary,
    2371         raw_boundary    Return raw boundary i.e. the regular edges of the
    2372                         alpha shape.
    2373         remove_holes    filter to remove small holes
    2374                         (small is defined by  boundary_points_fraction )
    2375         smooth_indents  remove sharp triangular indents in boundary
    2376         expand_pinch    test for pinch-off and correct
    2377                            i.e. a boundary vertex with more than two edges.
    2378 \end{funcdesc}
    2379 
    2380 \section{utilities/numerical_tools}
    2381 
    2382 \begin{tabular}{|l l|}  \hline
     2392that computes the boundary, as follows:
     2393
     2394        Set \code{raw\_boundary = True} to return raw boundary, i.e. the regular edges of the
     2395                        alpha shape.\\
     2396        Set \code{remove\_holes = True} to remove small holes
     2397                        (`small' is defined by
     2398                        \code{boundary\_points\_fraction})\\
     2399        Set \code{smooth\_indents = True} to remove sharp triangular indents in
     2400        boundary\\
     2401        Set \code{expand\_pinch = True} to test for pinch-off and
     2402        correct, i.e. to prevent a boundary vertex having more than two edges.
     2403\end{funcdesc}
     2404
     2405\section{Numerical Tools}
     2406
     2407The following table describes some useful numerical functions that
     2408may be found in the module \module{utilities.numerical\_tools}:
     2409
     2410\begin{tabular}{|p{8cm} p{8cm}|}  \hline
    23832411\code{angle(v1, v2=None)} & Angle between two-dimensional vectors
    2384 \code{v1} and \code{v2}, in range $0$ to $2\pi$. If \code{v2} is
    2385 omitted it is taken as the unit vector in the $x$-direction.\\
    2386 
    2387 \code{normal_vector(v)} & Normal vector to \code{v}\\
    2388 
    2389 \code{mean(x)} & Mean value of a vector\\
     2412\code{v1} and \code{v2}, or between \code{v1} and the $x$-axis if
     2413\code{v2} is \code{None}. Value is in range $0$ to $2\pi$. \\
     2414
     2415\code{normal\_vector(v)} & Normal vector to \code{v}.\\
     2416
     2417\code{mean(x)} & Mean value of a vector \code{x}.\\
    23902418
    23912419\code{cov(x, y=None)} & Covariance of vectors \code{x} and \code{y}.
    2392 If y is None, returns \code{cov(x, x)}\\
     2420If \code{y} is \code{None}, returns \code{cov(x, x)}.\\
    23932421
    23942422\code{err(x, y=0, n=2, relative=True)} & Relative error of
    23952423$\parallel$\code{x}$-$\code{y}$\parallel$ to
    23962424$\parallel$\code{y}$\parallel$ (2-norm if \code{n} = 2 or Max norm
    2397 if \code{n} = None). If denominator evaluates to zero or if \code{y}
     2425if \code{n} = \code{None}). If denominator evaluates to zero or if
     2426\code{y}
    23982427is omitted, absolute error is returned.\\
    23992428
    2400 \code{norm(x)} & 2-norm of \code{x}\\
     2429\code{norm(x)} & 2-norm of \code{x}.\\
    24012430
    24022431\code{corr(x, y=None)} & Correlation of \code{x} and \code{y}. If
    24032432\code{y} is \code{None} returns autocorrelation of \code{x}.\\
    24042433
    2405 \code{ensure_numeric(A, typecode = None)} & Ensure that sequence is
     2434\code{ensure\_numeric(A, typecode = None)} & Ensure that sequence is
    24062435a Numeric array. If \code{A} is already a Numeric array it will be
    24072436returned unaltered. Otherwise, an attempt is made to convert it to a
    2408 Numeric array. This function is necessary as \code{array(A)} can
    2409 cause memory overflow.\\
     2437Numeric array. (Needed because \code{array(A)} can
     2438cause memory overflow.)\\
    24102439
    24112440\code{histogram(a, bins, relative=False)} & Standard histogram. If
     
    24132442the total and thus represent frequencies rather than counts.\\
    24142443
    2415 \code{create_bins(data, number_of_bins = None)} & Safely create bins
    2416 for use with histogram. If data contains only one point or is
    2417 constant, one bin will be created. If \code{number_of_bins} is
    2418 omitted, 10 bins will be created.\\  \hline
     2444\code{create\_bins(data, number\_of\_bins = None)} & Safely create
     2445bins for use with histogram. If \code{data} contains only one point
     2446or is constant, one bin will be created. If \code{number\_of\_bins}
     2447is omitted, 10 bins will be created.\\  \hline
    24192448
    24202449\end{tabular}
    2421 
    2422 
    2423 \begin{itemize}
    2424   \item \indexedcode{ensure_numeric}
    2425   \item \indexedcode{mean}
    2426   \item
    2427 \end{itemize}
    24282450
    24292451
     
    24812503
    24822504\subsubsection{Can I start the simulation at an arbitrary time?}
    2483 Yes, using \code{domain.set_time()} you can specify an arbitrary starting time.
    2484 This is for example useful in conjunction with a file_boundary, which may start hours before anything hits the model boundary. By assigning a later time for the model to start, computational resources aren't wasted.
     2505Yes, using \code{domain.set\_time()} you can specify an arbitrary
     2506starting time. This is for example useful in conjunction with a
     2507file\_boundary, which may start hours before anything hits the model
     2508boundary. By assigning a later time for the model to start,
     2509computational resources aren't wasted.
    24852510
    24862511\subsubsection{Can I change values for any quantity during the simulation?}
    2487 Yes, using \code{domain.set_quantity()} inside the domain.evolve loop you
    2488 can change values of any quantity. This is for example useful if you wish to
    2489 let the system settle for a while before assigning an initial condition. Another example would be changing the values for elevation to model e.g. erosion.
     2512Yes, using \code{domain.set\_quantity()} inside the domain.evolve
     2513loop you can change values of any quantity. This is for example
     2514useful if you wish to let the system settle for a while before
     2515assigning an initial condition. Another example would be changing
     2516the values for elevation to model e.g. erosion.
    24902517
    24912518\subsubsection{Can I change boundary conditions during the simulation?}
     
    24992526
    25002527\subsubsection{How do I use a DEM in my simulation?}
    2501 You use \code{dem2pts} to convert your DEM to the required .pts format. This .pts file is then called 
     2528You use \code{dem2pts} to convert your DEM to the required .pts format. This .pts file is then called
    25022529when setting the elevation data to the mesh in \code{domain.set_quantity}
    25032530
    25042531\subsubsection{What sort of DEM resolution should I use?}
    2505 Try and work with the \emph{best} you have available. Onshore DEMs are typically available in 25m, 100m and 250m grids. Note, offshore data is often sparse,
    2506 or non-existant.
     2532Try and work with the \emph{best} you have available. Onshore DEMs
     2533are typically available in 25m, 100m and 250m grids. Note, offshore
     2534data is often sparse, or non-existent.
    25072535
    25082536\subsubsection{What sort of mesh resolution should I use?}
     
    25282556
    25292557\subsubsection{How do I know which boundary tags are available?}
    2530 The method \code{domain.get_boundary_tags()} will return a list of
    2531 available tags for use with \code{domain.set_boundary_condition()}.
     2558The method \code{domain.get\_boundary\_tags()} will return a list of
     2559available tags for use with
     2560\code{domain.set\_boundary\_condition()}.
    25322561
    25332562
     
    25372566\chapter{Glossary}
    25382567
    2539 \begin{tabular}{|l p{10cm}| c|}  \hline
     2568\begin{tabular}{|lp{10cm}|c|}  \hline
     2569%\begin{tabular}{|llll|}  \hline
    25402570    \emph{Term} & \emph{Definition} & \emph{Page}\\  \hline
    25412571
     
    25432573    GA) & \pageref{def:anuga}\\
    25442574
    2545     \indexedbold{domain} & The domain of a function is the set of all input values to the
    2546     function.&\\
    2547 
    2548     \indexedbold{Dirichlet boundary} & A Dirichlet boundary condition imposed on a differential equation
    2549  which specifies the values the solution is to take on the boundary of the
    2550  domain.&\\
    2551 
    2552     \indexedbold{elevation} & refers to bathymetry and topography&\\
    2553 
    25542575    \indexedbold{bathymetry} & offshore elevation &\\
    25552576
    2556     \indexedbold{topography} & onshore elevation &\\
     2577    \indexedbold{conserved quantity} & conserved (stage, x and y
     2578    momentum) & \\
     2579
     2580%    \indexedbold{domain} & The domain of a function is the set of all input values to the
     2581%    function.&\\
     2582
     2583    \indexedbold{Digital Elevation Model (DEM)} & DEMs are digital files consisting of points of elevations,
     2584sampled systematically at equally spaced intervals.& \\
     2585
     2586    \indexedbold{Dirichlet boundary} & A boundary condition imposed on a differential equation
     2587 that specifies the values the solution is to take on the boundary of the
     2588 domain. & \pageref{def:dirichlet boundary}\\
     2589
     2590    \indexedbold{edge} & A triangular cell within the computational mesh can be depicted
     2591    as a set of vertices joined by lines (the edges). & \\
     2592
     2593    \indexedbold{elevation} & refers to bathymetry and topography &\\
    25572594
    25582595    \indexedbold{evolution} & integration of the shallow water wave equations
    25592596    over time &\\
    25602597
     2598    \indexedbold{finite volume method} & The method evaluates the terms in the shallow water
     2599    wave equation as fluxes at the surfaces of each finite volume. Because the
     2600    flux entering a given volume is identical to that leaving the adjacent volume,
     2601    these methods are conservative. Another advantage of the finite volume method is
     2602    that it is easily formulated to allow for unstructured meshes. The method is used
     2603    in many computational fluid dynamics packages. & \\
     2604
    25612605    \indexedbold{forcing term} & &\\
    2562 
    2563     \indexedbold{IDLE} & Development environment shipped with
    2564     Python &\\
    2565 
    2566     \indexedbold{Manning friction coefficient} & &\\
    2567 
    2568     \indexedbold{mesh} & Triangulation of domain &\\
    2569 
    2570     \indexedbold{meshfile} & [generic word for either .tsh or
    2571     .msh file] & \\
    2572 
    2573     \indexedbold{points file} & [generic word for either .pts or
    2574     .xya file] & \\
    2575 
    2576     \indexedbold{grid} & evenly spaced mesh & \\
    2577 
    2578     \indexedbold{NetCDF} & &\\
    2579 
    2580     \indexedbold{conserved quantity} & conserved (stage, x and y
    2581     momentum) & \\
    2582 
    2583     \indexedbold{reflective boundary} & &\\
    2584 
    2585     \indexedbold{stage} & &\\
    2586 
    2587 %    \indexedbold{try this}
    2588 
    2589     \indexedbold{swollen} & visualisation tool &\\
    2590 
    2591     \indexedbold{time boundary} & defined in the manual (flog from
    2592     there)&\\
    2593 
    2594     \indexedbold{transmissive boundary} & defined in the manual (flog from
    2595     there)&\\
    2596 
    2597     \indexedbold{xmomentum} & conserved quantity (note, two-dimensional SWW equations say only x and y and NOT
    2598     z) &\\
    2599 
    2600     \indexedbold{ymomentum}  & conserved quantity & \\
    2601 
    2602 
    2603 
    2604     \indexedbold{resolution} &  The maximal area of a triangular cell in a
    2605     mesh & \\
    2606 
    2607     \indexedbold{polygon} & A sequence of points in the plane. (Arbitrary polygons can be created
    2608     in this way.)
    2609     \anuga represents a polygon in one of two ways. One way is to represent it as a
    2610     list whose members are either Python tuples
    2611     or Python lists of length 2. The unit square, for example, would be represented by the
    2612     list
    2613     [ [0,0], [1,0], [1,1], [0,1] ]. The alternative is to represent it as an
    2614     $N \times 2$ Numeric array, where $N$ is the number of points.
    2615 
    2616     NOTE: More can be read in the module utilities/polygon.py .... &
    2617     \\  \hline
    2618 
    2619     \end{tabular}
    2620 
    2621     \begin{tabular}{|l p{10cm}|c|}   \hline
    2622 
    2623     \emph{Term} & \emph{Definition} & \emph{Page}\\  \hline
    2624     \indexedbold{easting} & A rectangular (x,y) coordinate measurement of distance east from a north-south reference line,
    2625 usually a meridian used as the axis of origin within a map zone or
    2626 projection. Easting is a UTM (Universal Transverse Mercator)
    2627 Coordinate. & \\
    2628 
    2629     \indexedbold{northing} & A rectangular (x,y) coordinate measurement of distance north from a north-south reference line,
    2630 usually a meridian used as the axis of origin within a map zone or
    2631 projection. Northing is a UTM (Universal Transverse Mercator)
    2632 Coordinate. & \\
    2633 
    2634 
    2635     \indexedbold{latitude} & The angular distance on a mericlear north and south of the equator, expressed in degrees and
    2636     minutes. & \\
    2637 
    2638     \indexedbold{longitude} & The angular distance east or west, between the meridian of a particular place on Earth and that of the
    2639 Prime Meridian (located in Greenwich, England) expressed in degrees
    2640 or time.& \\
    2641 
    2642     \indexedbold{edge} & A triangular cell within the computational mesh can be depicted as a set of vertices joined by lines (the
    2643     edges). & \\
    2644 
    2645     \indexedbold{vertex} & A point at which edges meet. & \\
    2646 
    2647     \indexedbold{finite volume} & The method evaluates the terms in the shallow water wave equation as fluxes at the surfaces of each
    2648 finite volume. Because the flux entering a given volume is identical
    2649 to that leaving the adjacent volume, these methods are conservative.
    2650 Another advantage of the finite volume method is that it is easily
    2651 formulated to allow for unstructured meshes. The method is used in
    2652 many computational fluid dynamics packages. & \\
    2653 
    26542606
    26552607    \indexedbold{flux} & the amount of flow through the volume per unit
    26562608    time & \\
    26572609
    2658     \indexedbold{Digital Elevation Model (DEM)} & DEMs are digital files consisting of points of elevations,
    2659 sampled systematically at equally spaced intervals.& \\  \hline
    2660 
    2661 
    2662 \end{tabular}
     2610    \indexedbold{grid} & Evenly spaced mesh & \\
     2611
     2612    \indexedbold{latitude} & The angular distance on a mericlear north and south of the
     2613    equator, expressed in degrees and minutes. & \\
     2614
     2615    \indexedbold{longitude} & The angular distance east or west, between the meridian
     2616    of a particular place on Earth and that of the Prime Meridian (located in Greenwich,
     2617    England) expressed in degrees or time.& \\
     2618
     2619    \indexedbold{Manning friction coefficient} & &\\
     2620
     2621    \indexedbold{mesh} & Triangulation of domain &\\
     2622
     2623    \indexedbold{meshfile} & A TSH or MSH file & \pageref{def:meshfile}\\
     2624
     2625    \indexedbold{NetCDF} & &\\
     2626
     2627    \indexedbold{northing} & A rectangular (x,y) coordinate measurement of distance
     2628    north from a north-south reference line, usually a meridian used as the axis of
     2629    origin within a map zone or projection. Northing is a UTM (Universal Transverse
     2630    Mercator) coordinate. & \\
     2631
     2632    \indexedbold{points file} & A PTS or XYA file & \\  \hline
     2633
     2634    \end{tabular}
     2635
     2636    \begin{tabular}{|lp{10cm}|c|}  \hline
     2637
     2638    \indexedbold{polygon} & A sequence of points in the plane. \anuga represents a polygon
     2639    either as a list consisting of Python tuples or lists of length 2 or as an $N \times 2$
     2640    Numeric array, where $N$ is the number of points.
     2641
     2642    The unit square, for example, would be represented either as
     2643    \code{[ [0,0], [1,0], [1,1], [0,1] ]} or as \code{array( [0,0], [1,0], [1,1],
     2644    [0,1] )}.
     2645
     2646    NOTE: For details refer to the module \module{utilities/polygon.py}. &
     2647    \\     \indexedbold{resolution} &  The maximal area of a triangular cell in a
     2648    mesh & \\
     2649
     2650
     2651    \indexedbold{reflective boundary} & Models a solid wall. Returns same conserved
     2652    quantities as those present in the neighbouring volume but reflected. Specific to the
     2653    shallow water equation as it works with the momentum quantities assumed to be the
     2654    second and third conserved quantities. & \pageref{def:reflective boundary}\\
     2655
     2656    \indexedbold{stage} & &\\
     2657
     2658%    \indexedbold{try this}
     2659
     2660    \indexedbold{swollen} & visualisation tool used with \anuga & \pageref{sec:swollen}\\
     2661
     2662    \indexedbold{time boundary} & Returns values for the conserved
     2663quantities as a function of time. The user must specify
     2664the domain to get access to the model time. & \pageref{def:time boundary}\\
     2665
     2666    \indexedbold{topography} & onshore elevation &\\
     2667
     2668    \indexedbold{transmissive boundary} & & \pageref{def:transmissive boundary}\\
     2669
     2670    \indexedbold{vertex} & A point at which edges meet. & \\
     2671
     2672    \indexedbold{xmomentum} & conserved quantity (note, two-dimensional SWW equations say
     2673    only \code{x} and \code{y} and NOT \code{z}) &\\
     2674
     2675    \indexedbold{ymomentum}  & conserved quantity & \\  \hline
     2676
     2677    \end{tabular}
     2678
    26632679
    26642680%The \code{\e appendix} markup need not be repeated for additional
Note: See TracChangeset for help on using the changeset viewer.