Index: documentation/user_manual/anuga_user_manual.tex
===================================================================
--- documentation/user_manual/anuga_user_manual.tex	(revision 3102)
+++ documentation/user_manual/anuga_user_manual.tex	(revision 3103)
@@ -176,5 +176,5 @@
 conditions such as tide, and any forcing terms that may drive the
 system such as wind stress or atmospheric pressure gradients.
-Frictional resistance from the different terrains in the model is
+Gravity and frictional resistance from the different terrains in the model are
 represented by predefined forcing terms.
 
@@ -294,6 +294,5 @@
 several other schemes that can be used for setting up meshes, but we
 shall not discuss these now.) The above assignment sets up a $10
-\times 10$ rectangular mesh, triangulated in a specific way. In
-general, the assignment
+\times 10$ rectangular mesh, triangulated in a regular way. The assignment
 
 {\small \begin{verbatim}
@@ -319,4 +318,9 @@
 
 \end{itemize}
+
+An example of a general unstructured mesh and the 
+associated data structures \code{points}, \code{vertices} and \code{boundary}
+is given in Section \ref{xxxx}.
+
 
 Since these three variables encapsulate the information needed to
@@ -502,8 +506,8 @@
 \end{verbatim}}
 
-which specifies that the surface level is set to a height of $-0.4$, i.e. 0.4 units
-below the zero level.
-
-(Although it is not necessary for this example, it may be useful to
+which specifies that the surface level is set to a height of $-0.4$, 
+i.e. 0.4 units (m) below the zero level.
+
+Although it is not necessary for this example, it may be useful to
 digress here and mention a variant to this requirement, which allows
 us to illustrate another way to use \method{set\_quantity}---namely,
@@ -525,5 +529,6 @@
 The reader will probably appreciate that this capability to
 incorporate expressions into statements using \method{set\_quantity}
-greatly expands its power.)
+greatly expands its power.) See Section \ref{sec:Initial Conditions} for more 
+details.
 
 \subsection{Boundary Conditions}
@@ -562,8 +567,8 @@
       may cause occasional spurious effects. If this occurs,
       consider using e.g. a Dirichlet boundary condition.
-    \item \textbf{[Dirichlet boundary}\label{def:dirichlet boundary} Specifies a fixed value at the
-      boundary and assigns initial values to the $x$-momentum and $y$-momentum.
-    \item \textbf{Time boundary}\label{def:time boundary} Like a Dirichlet boundary but with behaviour
-      varying with time.
+    \item \textbf{[Dirichlet boundary}\label{def:dirichlet boundary} Specifies 
+      constant values for stage, $x$-momentum and $y$-momentum at the boundary. 
+    \item \textbf{Time boundary}\label{def:time boundary} Like a Dirichlet 
+      boundary but with behaviour varying with time.
 \end{itemize}
 
@@ -615,5 +620,6 @@
 The output is a NetCDF file with the extension \code{.sww}. It
 contains stage and momentum information and can be used with the
-\code{swollen} visualisation package to generate a visual display.
+\code{swollen} (see Section \ref{sec:swollen}) 
+visualisation package to generate a visual display.
 See Section \ref{sec:file formats} (page \pageref{sec:file formats})
 for more on NetCDF and other file formats.
@@ -625,8 +631,7 @@
 
 \begin{itemize}
-  \item{from a Windows command line} as in \code{python runup.py}
+  \item{from a Windows or Unix command line} as in\ \code{python runup.py}
   \item{within the Python IDLE environment}
   \item{within emacs}
-  \item{from a Linux command line} as in \code{python runup.py}
 \end{itemize}
 
@@ -676,5 +681,5 @@
 The following discussion builds on the concepts introduced through
 the \file{runup.py} example and introduces a second
-example, \file{run\_sydney\_smf.py}, that follows the same basic
+example, \file{run\_sydney.py}, that follows the same basic
 outline, but incorporates more complex features and refers to a
 real-life scenario, rather than the artificial illustrative one used
@@ -816,15 +821,15 @@
 
 {\small \begin{verbatim}
-    create_mesh_from_regions(project.diffpolygonall,%
-                         boundary_tags= {'bottom': [0],%
-                                         'right1': [1],%
-                                         'right0': [2],%
-                                         'right2': [3],%
-                                         'top': [4],%
-                                         'left1': [5],%
-                                         'left2': [6],%
-                                         'left3': [7]},%
-                         maximum_triangle_area=100000,%
-                         filename=meshname,%
+    create_mesh_from_regions(project.diffpolygonall,
+                         boundary_tags= {'bottom': [0],
+                                         'right1': [1],
+                                         'right0': [2],
+                                         'right2': [3],
+                                         'top': [4],
+                                         'left1': [5],
+                                         'left2': [6],
+                                         'left3': [7]},
+                         maximum_triangle_area=100000,
+                         filename=meshname,
                          interior_regions=interior_regions)
 \end{verbatim}}
@@ -871,6 +876,6 @@
 
 {\small \begin{verbatim}
-    domain.set_name(project.basename)%
-    domain.set_datadir(project.outputdir)%
+    domain.set_name(project.basename)
+    domain.set_datadir(project.outputdir)
     domain.set_quantities_to_be_stored(['stage', 'xmomentum',
         'ymomentum'])
@@ -952,5 +957,5 @@
 boundary types introduced for \file{runup.py}, we use the reflective
 boundary for each of the
-eight tagged segments:
+eight tagged segments defined by \code{create_mesh_from_regions}:
 
 {\small \begin{verbatim}
@@ -1050,5 +1055,5 @@
 %\textbf{Name } & \textbf{Description}\\
 %\hline
-\emph{usecache} & Specifies whether caching is to be used\\
+\emph{use\_cache} & Specifies whether caching is to be used for improved performance. See Section \ref{sec:caching} for details on the underlying caching functionality\\
 \emph{verbose} & If \code{True}, provides detailed terminal output
 to the user\\  % \hline
@@ -1283,5 +1288,5 @@
 %%%%%%
 \section{Initial Conditions}
-
+\label{sec:Initial Conditions}
 In standard usage of partial differential equations, initial conditions
 refers to the values associated to the system variables (the conserved
@@ -1536,7 +1541,25 @@
 
 
+
+%%%
+\begin{classdesc}{Transmissive\_Momentum\_Set\_Stage\_boundary}{Boundary}
+Module: \module{pyvolution.shallow\_water}
+
+This boundary returns same momentum conserved quantities as
+those present in its neighbour volume but sets stage as in a Time\_boundary.
+The underlying domain must be specified when boundary is instantiated
+
+This type of boundary is useful when stage is known at the boundary as a 
+function of time, but momenta (or speeds) aren't.
+
+This class is specific to the shallow water equation as it works with the
+momentum quantities assumed to be the second and third conserved quantities.
+\end{classdesc}
+
+
+
 \subsection{User-defined boundary conditions}
 \label{sec:roll your own}
-[How to roll your own]
+[How to roll your own] TBA
 
 
@@ -1592,4 +1615,9 @@
 \subsection{Diagnostics}
 
+
+  \begin{funcdesc}{statistics}{}
+  Module: \module{pyvolution.domain}
+  
+  
   \begin{funcdesc}{timestepping\_statistics}{}
   Module: \module{pyvolution.domain}
@@ -2034,4 +2062,6 @@
   detected by examining the functions \code{bytecode (co\_code, co\_consts,
   func\_defaults, co\_argcount)} and the function will be recomputed.
+  However, caching will not detect changes in modules used by \code{func}. 
+  In this case cache must be cleared manually.
 
   Options are set by means of the function \code{set\_option(key, value)},
@@ -2470,7 +2500,7 @@
 \label{mod:pyvolution.generalmesh}
 
-\section{\module{pyvolution.mesh} }
-\declaremodule{}{pyvolution.mesh}
-\label{mod:pyvolution.mesh}
+\section{\module{pyvolution.neighbour\_mesh} }
+\declaremodule[pyvolution.neighbourmesh]{}{pyvolution.neighbour\_mesh}
+\label{mod:pyvolution.neighbourmesh}
 
 \section{\module{pyvolution.domain} --- Generic module for 2D triangular domains for finite-volume computations of conservation laws}
@@ -2482,4 +2512,21 @@
 \declaremodule{}{pyvolution.quantity}
 \label{mod:pyvolution.quantity}
+
+
+Class Quantity - Implements values at each triangular element
+
+To create:
+
+   Quantity(domain, vertex_values)
+
+   domain: Associated domain structure. Required.
+
+   vertex_values: N x 3 array of values at each vertex for each element.
+                  Default None
+
+   If vertex_values are None Create array of zeros compatible with domain.
+   Otherwise check that it is compatible with dimenions of domain.
+   Otherwise raise an exception
+
 
 
