Changeset 4209


Ignore:
Timestamp:
Feb 1, 2007, 11:32:13 AM (18 years ago)
Author:
steve
Message:
 
File:
1 edited

Legend:

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

    r4208 r4209  
    106106governing equation using a finite-volume method.
    107107
    108 \anuga also incorporates a mesh generator %, called \code{pmesh}, 
     108\anuga also incorporates a mesh generator %, called \code{pmesh},
    109109that
    110110allows the user to set up the geometry of the problem interactively as
     
    181181terrains in the model are represented by predefined forcing terms.
    182182
    183 The built-in mesh generator %, called pmesh, 
     183The built-in mesh generator %, called pmesh,
    184184allows the user to set up the geometry
    185185of the problem interactively and to identify boundary segments and
     
    205205
    206206\begin{itemize}
    207   \item The mathematical model is the 2D shallow water wave equation. 
    208   As such it cannot resolve vertical convection and consequently not breaking 
     207  \item The mathematical model is the 2D shallow water wave equation.
     208  As such it cannot resolve vertical convection and consequently not breaking
    209209  waves or 3D turbulence (e.g.\ vorticity).
    210   \item The surface is assumed to be open, e.g. \anuga cannot model 
     210  \item The surface is assumed to be open, e.g. \anuga cannot model
    211211  flow under ceilings or in pipes
    212   \item All spatial coordinates are assumed to be UTM (meters). As such, 
    213   ANUGA is unsuitable for modelling flows in areas larger than one UTM zone 
    214   (6 degrees wide). 
     212  \item All spatial coordinates are assumed to be UTM (meters). As such,
     213  ANUGA is unsuitable for modelling flows in areas larger than one UTM zone
     214  (6 degrees wide).
    215215  \item Fluid is assumed to be inviscid
    216   \item The finite volume is a very robust and flexible numerical technique, 
    217   but it is not the fastest method around. If the geometry is sufficiently 
    218   simple and if there is no need for wetting or drying, a finite-difference 
     216  \item The finite volume is a very robust and flexible numerical technique,
     217  but it is not the fastest method around. If the geometry is sufficiently
     218  simple and if there is no need for wetting or drying, a finite-difference
    219219  method may be able to solve the problem faster than \anuga.
    220   %\item Mesh resolutions near coastlines with steep gradients need to be...   
    221   \item Frictional resistance is implemented using Manning's formula, but 
     220  %\item Mesh resolutions near coastlines with steep gradients need to be...
     221  \item Frictional resistance is implemented using Manning's formula, but
    222222  \anuga has not yet been fully validated in regard to bottom roughness
    223223  \item ANUGA contains no tsunami-genic functionality relating to
     
    609609
    610610The output is a NetCDF file with the extension \code{.sww}. It
    611 contains stage and momentum information and can be used with the 
    612 ANUGA viewer \code{animate} (see Section \ref{sec:animate}) 
     611contains stage and momentum information and can be used with the
     612ANUGA viewer \code{animate} (see Section \ref{sec:animate})
    613613visualisation package
    614614to generate a visual display. See Section \ref{sec:file formats}
     
    679679\subsection{Overview}
    680680
    681 The next example is about waterflow in a channel with varying boundary conditions and 
     681The next example is about waterflow in a channel with varying boundary conditions and
    682682more complex topograhies. These examples build on the
    683683concepts introduced through the \file{runup.py} in Section \ref{sec:simpleexample}.
     
    718718\subsection{Establishing the Mesh}\index{mesh, establishing}
    719719
    720 In this example we use a similar simple structured triangular mesh as in \code{runup.py} 
    721 for simplicity, but this time we will use a symmetric one and also 
     720In this example we use a similar simple structured triangular mesh as in \code{runup.py}
     721for simplicity, but this time we will use a symmetric one and also
    722722change the physical extent of the domain. The assignment
    723723
    724724{\small \begin{verbatim}
    725     points, vertices, boundary = rectangular_cross(m, n, 
     725    points, vertices, boundary = rectangular_cross(m, n,
    726726                                                   len1=length, len2=width)
    727727\end{verbatim}}
    728 returns a m x n mesh similar to the one used in the previous example, except that now the 
    729 extent in the x and y directions are given by the value of \code{length} and \code{width} 
     728returns a m x n mesh similar to the one used in the previous example, except that now the
     729extent in the x and y directions are given by the value of \code{length} and \code{width}
    730730respectively.
    731731
    732 Defining m and n in terms of the extent as in this example provides a convenient way of 
     732Defining m and n in terms of the extent as in this example provides a convenient way of
    733733controlling the resolution: By defining dx and dy to be the desired size of each hypothenuse in the mesh we can write the mesh generation as follows:
    734734
     
    767767Here is the code for the second version of the channel flow \file{channel2.py}:
    768768\verbatiminput{demos/channel2.py}
    769 This example differs from the first version in that a constant outflow boundary condition has 
    770 been defined 
     769This example differs from the first version in that a constant outflow boundary condition has
     770been defined
    771771{\small \begin{verbatim}
    772772    Bo = Dirichlet_boundary([-5, 0, 0]) # Outflow
     
    777777    domain.write_time()
    778778
    779     if domain.get_quantity('stage').get_values(interpolation_points=[[10, 2.5]]) > 0:       
     779    if domain.get_quantity('stage').get_values(interpolation_points=[[10, 2.5]]) > 0:
    780780        print 'Stage > 0: Changing to outflow boundary'
    781781        domain.set_boundary({'right': Bo})
     
    7877872.5m) which is on the right boundary. If the stage exceeds 0m a
    788788message is printed and the old boundary condition at tag 'right' is
    789 replaced by the outflow boundary using the method 
    790 {\small \begin{verbatim} 
     789replaced by the outflow boundary using the method
     790{\small \begin{verbatim}
    791791    domain.set_boundary({'right': Bo})
    792792\end{verbatim}}
    793 This type of dynamically varying boundary could for example be 
    794 used to model the 
    795 breakdown of a sluice door when water exceeds a certain level. 
     793This type of dynamically varying boundary could for example be
     794used to model the
     795breakdown of a sluice door when water exceeds a certain level.
    796796
    797797\subsection{Output}
    798798
    799799The text output from this example looks like this
    800 {\small \begin{verbatim} 
     800{\small \begin{verbatim}
    801801...
    802802Time = 15.4000, delta t in [0.03789902, 0.03789916], steps=6 (6)
     
    815815\verbatiminput{demos/channel3.py}
    816816
    817 This example differs from the first two versions in that the topography 
     817This example differs from the first two versions in that the topography
    818818contains obstacles.
    819819
     
    823823    """Complex topography defined by a function of vectors x and y
    824824    """
    825    
    826     z = -x/10                               
     825
     826    z = -x/10
    827827
    828828    N = len(x)
     
    831831        # Step
    832832        if 10 < x[i] < 12:
    833             z[i] += 0.4 - 0.05*y[i]       
    834        
     833            z[i] += 0.4 - 0.05*y[i]
     834
    835835        # Constriction
    836836        if 27 < x[i] < 29 and y[i] > 3:
    837             z[i] += 2       
    838        
     837            z[i] += 2
     838
    839839        # Pole
    840840        if (x[i] - 34)**2 + (y[i] - 2)**2 < 0.4**2:
     
    921921maximal area of a triangle used for triangulation---and a triangular
    922922mesh is created inside the polygon using a mesh generation engine.
    923 On any given platform, the same mesh will be returned. 
     923On any given platform, the same mesh will be returned.
    924924%Figure
    925925%\ref{fig:pentagon} shows a simple example of this, in which the
     
    980980Figure \ref{fig:cairns3d} illustrates the landscape of the region
    981981for the Cairns example. Understanding the landscape is important in
    982 determining the location and resolution of interior polygons. The 
     982determining the location and resolution of interior polygons. The
    983983supporting data is found in the ASCII grid, \code{cairns.asc}, which
    984984has been sourced from the publically available Australian Bathymetry
    985985and Topography Grid 2005, \cite{grid250}. The required resolution
    986 for inundation modelling will depend on the underlying topography and 
     986for inundation modelling will depend on the underlying topography and
    987987bathymetry; as the terrain becomes more complex, the desired resolution
    988988would decrease to the order of tens of metres.
     
    10111011
    10121012Figure \ref{fig:cairnspolys}
    1013 illustrates the polygons used for the Cairns scenario. 
     1013illustrates the polygons used for the Cairns scenario.
    10141014
    10151015\begin{figure}[hbt]
     
    10251025
    10261026{\small \begin{verbatim}
    1027 remainder_res = 10000000 
     1027remainder_res = 10000000
    10281028create_mesh_from_regions(project.bounding_polygon,
    10291029                         boundary_tags={'top': [0],
     
    11081108function that depends on the characteristics of the slide (length,
    11091109width, thickness, slope, etc), its location (origin) and the depth at that
    1110 location. For this example, we choose to apply the slide function 
     1110location. For this example, we choose to apply the slide function
    11111111at a specified time into the simulation.
    11121112
     
    11721172With the basics established, the running of the `evolve' step is
    11731173very similar to the corresponding step in \file{runup.py}. For the slide
    1174 scenario, 
     1174scenario,
    11751175the simulation is run for 5000 seconds with the output stored every ten seconds.
    11761176For this example, we choose to apply the slide at 60 seconds into the simulation.
     
    11791179    import time t0 = time.time()
    11801180
    1181    
    1182     for t in domain.evolve(yieldstep = 10, finaltime = 60): 
     1181
     1182    for t in domain.evolve(yieldstep = 10, finaltime = 60):
    11831183            domain.write_time()
    1184             domain.write_boundary_statistics(tags = 'ocean_east')     
    1185            
     1184            domain.write_boundary_statistics(tags = 'ocean_east')
     1185
    11861186        # add slide
    11871187        thisstagestep = domain.get_quantity('stage')
     
    11901190            slide.set_values(tsunami_source)
    11911191            domain.set_quantity('stage', slide + thisstagestep)
    1192    
    1193         for t in domain.evolve(yieldstep = 10, finaltime = 5000, 
     1192
     1193        for t in domain.evolve(yieldstep = 10, finaltime = 5000,
    11941194                               skip_initial_step = True):
    11951195            domain.write_time()
     
    11971197\end{verbatim}}
    11981198
    1199 For the fixed wave scenario, the simulation is run to 10000 seconds, 
     1199For the fixed wave scenario, the simulation is run to 10000 seconds,
    12001200with the first half of the simulation stored at two minute intervals,
    12011201and the second half of the simulation stored at ten second intervals.
     
    12071207
    12081208# save every two mins leading up to wave approaching land
    1209     for t in domain.evolve(yieldstep = 120, finaltime = 5000): 
     1209    for t in domain.evolve(yieldstep = 120, finaltime = 5000):
    12101210        domain.write_time()
    1211         domain.write_boundary_statistics(tags = 'ocean_east')     
     1211        domain.write_boundary_statistics(tags = 'ocean_east')
    12121212
    12131213    # save every 30 secs as wave starts inundating ashore
    1214     for t in domain.evolve(yieldstep = 10, finaltime = 10000, 
     1214    for t in domain.evolve(yieldstep = 10, finaltime = 10000,
    12151215                           skip_initial_step = True):
    12161216        domain.write_time()
    12171217        domain.write_boundary_statistics(tags = 'ocean_east')
    1218        
     1218
    12191219\end{verbatim}}
    12201220
     
    12261226
    12271227The user may also be interested in a maximum inundation map. This simply shows the
    1228 maximum water depth over the domain and is achieved with the function sww2dem (described in 
     1228maximum water depth over the domain and is achieved with the function sww2dem (described in
    12291229Section \ref{sec:basicfileconversions}).
    12301230\file{ExportResults.py} demonstrates how this function can be used:
     
    12361236example. The parameters used in the function are defined in \file{project.py}.
    12371237Figures \ref{fig:maxdepthcairnsslide} and \ref{fig:maxdepthcairnsfixedwave} show
    1238 the maximum water depth within the defined region for the slide and fixed wave scenario 
     1238the maximum water depth within the defined region for the slide and fixed wave scenario
    12391239respectively.
    12401240The user could develop a maximum absolute momentum or other expressions which can be
    1241 derived from the quantities. 
     1241derived from the quantities.
    12421242
    12431243\begin{figure}[hbt]
     
    12561256location to understand the behaviour of the system through time. To do this, the user
    12571257must first define the locations of interest. A number of locations have been
    1258 identified for the Cairns scenario, as shown in Figure \ref{fig:cairnsgauges}. 
     1258identified for the Cairns scenario, as shown in Figure \ref{fig:cairnsgauges}.
    12591259
    12601260\begin{figure}[hbt]
     
    12721272Header information has been included to identify the location in terms of eastings and
    12731273northings, and each gauge is given a name. The elevation column can be zero here.
    1274 This information is then passed to the function sww2timeseries (shown in 
     1274This information is then passed to the function sww2timeseries (shown in
    12751275\file{GetTimeseries.py} which generates figures for
    1276 each desired quantity for each point location. 
     1276each desired quantity for each point location.
    12771277
    12781278\verbatiminput{demos/cairns/GetTimeseries.py}
     
    12961296{\small \begin{verbatim}
    12971297
    1298         production_dirs = {'slide': 'Slide',
    1299                            'fixed_wave': 'Fixed Wave'}
    1300        
     1298    production_dirs = {'slide': 'Slide',
     1299                       'fixed_wave': 'Fixed Wave'}
     1300
    13011301\end{verbatim}}
    13021302
     
    15131513
    15141514For more control over the creation of the mesh outline, use the
    1515 methods of the class \class{Mesh}. 
     1515methods of the class \class{Mesh}.
    15161516
    15171517
     
    15391539This method is used to build the mesh outline.  It defines a hole,
    15401540when the boundary of the hole has already been defined, by selecting a
    1541 point within the boundary. 
     1541point within the boundary.
    15421542
    15431543\end{methoddesc}
     
    15971597
    15981598Add user vertices. The point_data can be a list of (x,y) values, a numeric
    1599 array or a geospatial_data instance.   
     1599array or a geospatial_data instance.
    16001600\end{methoddesc}
    16011601
     
    16101610useful since a set of user vertices need to be outlined by segments
    16111611before generate_mesh is called.
    1612        
     1612
    16131613\end{methoddesc}
    16141614
     
    16811681
    16821682\begin{methoddesc} {set\_name}{name}
    1683     Module: \refmodule{abstract\_2d\_finite\_volumes.domain}, 
    1684     page \pageref{mod:domain} 
     1683    Module: \refmodule{abstract\_2d\_finite\_volumes.domain},
     1684    page \pageref{mod:domain}
    16851685
    16861686    Assigns the name \code{name} to the domain.
     
    16971697    Module: \module{abstract\_2d\_finite\_volumes.domain}
    16981698
    1699     Specifies the directory used for SWW files, assigning it to the 
     1699    Specifies the directory used for SWW files, assigning it to the
    17001700    pathname \code{name}. The default value, before
    17011701    \code{set\_datadir} has been run, is the value \code{default\_datadir}
     
    17821782
    17831783\begin{methoddesc}{get\_vertex_coordinates}{absolute=False}
    1784        
    1785     Return vertex coordinates for all triangles. 
    1786        
     1784
     1785    Return vertex coordinates for all triangles.
     1786
    17871787    Return all vertex coordinates for all triangles as a 3*M x 2 array
    17881788    where the jth vertex of the ith triangle is located in row 3*i+j and
     
    17931793    Default is False as many parts of ANUGA expects relative coordinates.
    17941794\end{methoddesc}
    1795        
    1796        
     1795
     1796
    17971797\begin{methoddesc}{get\_triangles}{indices=None}
    17981798
     
    18041804        Optional argument, indices is the set of triangle ids of interest.
    18051805\end{methoddesc}
    1806    
     1806
    18071807\begin{methoddesc}{get\_disconnected\_triangles}{}
    18081808
     
    18241824        The triangles created will have the format
    18251825
    1826         {\small \begin{verbatim}
     1826    {\small \begin{verbatim}
    18271827        [[0,1,2],
    18281828         [3,4,5],
    18291829         [6,7,8],
    18301830         ...
    1831          [3*M-3 3*M-2 3*M-1]]   
    1832          \end{verbatim}}       
     1831         [3*M-3 3*M-2 3*M-1]]
     1832     \end{verbatim}}
    18331833\end{methoddesc}
    18341834
     
    18791879\code{domain.set\_quantity('stage','elevation'+x))}
    18801880\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.
    1881 \item a geospatial dataset (See Section \ref{sec:geospatial}). 
     1881\item a geospatial dataset (See Section \ref{sec:geospatial}).
    18821882Optional argument attribute\_name applies here as with files.
    18831883\end{itemize}
     
    19061906%%%
    19071907\anuga provides a number of predefined initial conditions to be used
    1908 with \code{set\_quantity}. See for example callable object 
     1908with \code{set\_quantity}. See for example callable object
    19091909\code{slump\_tsunami} below.
    19101910
     
    19161916\begin{funcdesc}{set_region}{tag, quantity, X, location='vertices'}
    19171917  Module: \module{abstract\_2d\_finite\_volumes.domain}
    1918  
     1918
    19191919  (see also \module{abstract\_2d\_finite\_volumes.quantity.set\_values})
    1920  
     1920
    19211921This function is used to assign values to individual quantities given
    1922 a regional tag.   It is similar to \code{set\_quantity}. 
     1922a regional tag.   It is similar to \code{set\_quantity}.
    19231923For example, if in pmesh a regional tag of 'ditch' was
    19241924used, set\_region can be used to set elevation of this region to
     
    21732173
    21742174All boundary classes must inherit from the generic boundary class
    2175 \code{Boundary} and have a method called \code{evaluate} which must 
     2175\code{Boundary} and have a method called \code{evaluate} which must
    21762176take as inputs \code{self, vol\_id, edge\_id} where self refers to the
    21772177object itself and vol\_id and edge\_id are integers referring to
    2178 particular edges. The method must return a list of three floating point 
    2179 numbers representing values for \code{stage}, 
     2178particular edges. The method must return a list of three floating point
     2179numbers representing values for \code{stage},
    21802180\code{xmomentum} and \code{ymomentum}, respectively.
    21812181
    2182 The constructor of a particular boundary class may be used to specify 
     2182The constructor of a particular boundary class may be used to specify
    21832183particular values or flags to be used by the \code{evaluate} method.
    2184 Please refer to the source code for the existing boundary conditions 
     2184Please refer to the source code for the existing boundary conditions
    21852185for examples of how to implement boundary conditions.
    21862186
     
    22642264  \begin{funcdesc}{get\_quantity}{name, location='vertices', indices = None}
    22652265  Module: \module{abstract\_2d\_finite\_volumes.domain}
    2266  
     2266
    22672267  Allow access to individual quantities and their methods
    22682268
     
    22762276
    22772277  \end{funcdesc}
    2278  
     2278
    22792279
    22802280  \begin{funcdesc}{get\_integral}{}
     
    22852285  \end{funcdesc}
    22862286
    2287  
    2288  
     2287
     2288
    22892289
    22902290  \begin{funcdesc}{get\_maximum\_value}{indices = None}
     
    22932293  Return maximum value of quantity (on centroids)
    22942294
    2295   Optional argument indices is the set of element ids that 
     2295  Optional argument indices is the set of element ids that
    22962296  the operation applies to. If omitted all elements are considered.
    22972297
    22982298  We do not seek the maximum at vertices as each vertex can
    2299   have multiple values - one for each triangle sharing it.           
     2299  have multiple values - one for each triangle sharing it.
    23002300  \end{funcdesc}
    23012301
    2302  
     2302
    23032303
    23042304  \begin{funcdesc}{get\_maximum\_location}{indices = None}
     
    23072307  Return location of maximum value of quantity (on centroids)
    23082308
    2309   Optional argument indices is the set of element ids that 
     2309  Optional argument indices is the set of element ids that
    23102310  the operation applies to.
    23112311
     
    23142314
    23152315  If there are multiple cells with same maximum value, the
    2316   first cell encountered in the triangle array is returned.       
     2316  first cell encountered in the triangle array is returned.
    23172317  \end{funcdesc}
    23182318
    23192319
    2320  
     2320
    23212321  \begin{funcdesc}{get\_wet\_elements}{indices=None}
    2322   Module: \module{shallow\_water.shallow\_water\_domain} 
     2322  Module: \module{shallow\_water.shallow\_water\_domain}
    23232323
    23242324  Return indices for elements where h $>$ minimum_allowed_height
     
    23282328
    23292329  \begin{funcdesc}{get\_maximum\_inundation\_elevation}{indices=None}
    2330   Module: \module{shallow\_water.shallow\_water\_domain} 
     2330  Module: \module{shallow\_water.shallow\_water\_domain}
    23312331
    23322332  Return highest elevation where h $>$ 0.\\
    23332333  Optional argument indices is the set of element ids that the operation applies to.\\
    2334  
    2335   Example to find maximum runup elevation:\\ 
    2336      z = domain.get_maximum_inundation_elevation() 
     2334
     2335  Example to find maximum runup elevation:\\
     2336     z = domain.get_maximum_inundation_elevation()
    23372337  \end{funcdesc}
    23382338
    23392339
    23402340  \begin{funcdesc}{get\_maximum\_inundation\_location}{indices=None}
    2341   Module: \module{shallow\_water.shallow\_water\_domain} 
    2342  
     2341  Module: \module{shallow\_water.shallow\_water\_domain}
     2342
    23432343  Return location (x,y) of highest elevation where h $>$ 0.\\
    23442344  Optional argument indices is the set of element ids that the operation applies to.\\
    23452345
    23462346  Example to find maximum runup location:\\
    2347      x, y = domain.get_maximum_inundation_location() 
     2347     x, y = domain.get_maximum_inundation_location()
    23482348  \end{funcdesc}
    23492349
    2350  
    2351  
     2350
     2351
    23522352\section{Other}
    23532353
     
    23552355
    23562356  Handy for creating derived quantities on-the-fly as for example
    2357   \begin{verbatim} 
     2357  \begin{verbatim}
    23582358  Depth = domain.create_quantity_from_expression('stage-elevation')
    23592359
    2360   exp = '(xmomentum*xmomentum + ymomentum*ymomentum)**0.5')       
     2360  exp = '(xmomentum*xmomentum + ymomentum*ymomentum)**0.5')
    23612361  Absolute_momentum = domain.create_quantity_from_expression(exp)
    2362   \end{verbatim} 
    2363  
     2362  \end{verbatim}
     2363
    23642364  %See also \file{Analytical\_solution\_circular\_hydraulic\_jump.py} for an example of use.
    23652365  \end{funcdesc}
     
    24882488
    24892489
    2490 The contents of an SWW file may be viewed using the anuga viewer 
     2490The contents of an SWW file may be viewed using the anuga viewer
    24912491\code{animate}, which creates an on-screen geometric
    24922492representation. See section \ref{sec:animate} (page
     
    27242724\label{sec:caching}
    27252725
    2726 The \code{cache} function is used to provide supervised caching of function 
     2726The \code{cache} function is used to provide supervised caching of function
    27272727results. A Python function call of the form
    27282728
     
    30773077
    30783078Inputs are \code{polygon} which is either a list of points, an Nx2 array or
    3079 a Geospatial data object and \code{closed}(optional) which determines 
    3080 whether points on boundary should be regarded as belonging to the polygon 
    3081 (\code{closed=True}) or not (\code{closed=False}). 
     3079a Geospatial data object and \code{closed}(optional) which determines
     3080whether points on boundary should be regarded as belonging to the polygon
     3081(\code{closed=True}) or not (\code{closed=False}).
    30823082Default is \code{closed=True}.
    3083          
    3084 Returns new Geospatial data object representing points 
     3083
     3084Returns new Geospatial data object representing points
    30853085inside specified polygon.
    30863086\end{methoddesc}
     
    32543254\label{mod:quantity}
    32553255
    3256 \begin{verbatim} 
     3256\begin{verbatim}
    32573257Class Quantity - Implements values at each triangular element
    32583258
     
    32703270   Otherwise raise an exception
    32713271
    3272 \end{verbatim} 
    3273    
    3274    
    3275    
     3272\end{verbatim}
     3273
     3274
     3275
    32763276
    32773277\section{\module{shallow\_water} --- 2D triangular domains for finite-volume
     
    32943294
    32953295\subsubsection{What is \anuga?}
    3296 It is a software package suitable for simulating 2D water flows in 
     3296It is a software package suitable for simulating 2D water flows in
    32973297complex geometries.
    32983298
    32993299\subsubsection{Why is it called \anuga?}
    3300 The software was developed in collaboration between the 
     3300The software was developed in collaboration between the
    33013301Australian National University (ANU) and Geoscience Australia (GA).
    33023302
    33033303\subsubsection{How do I obtain a copy of \anuga?}
    3304 See url{https://datamining.anu.edu.au/anuga} for all things ANUGA.
     3304See \url{https://datamining.anu.edu.au/anuga} for all things ANUGA.
    33053305
    33063306%\subsubsection{What developments are expected for \anuga in the future?}
    3307 %This 
     3307%This
    33083308
    33093309\subsubsection{Are there any published articles about \anuga that I can reference?}
    3310 See url{https://datamining.anu.edu.au/anuga} for links.
     3310See \url{https://datamining.anu.edu.au/anuga} for links.
    33113311
    33123312
     
    33143314
    33153315\subsubsection{Which type of problems are \anuga good for?}
    3316 General 2D waterflows in complex geometries such as 
     3316General 2D waterflows in complex geometries such as
    33173317dam breaks, flows amoung structurs, coastal inundation etc.
    33183318
     
    33353335
    33363336\subsubsection{Can I change boundary conditions during the simulation?}
    3337 Yes - see example on page \pageref{sec:change boundary code} in Section 
     3337Yes - see example on page \pageref{sec:change boundary code} in Section
    33383338\ref{sec:change boundary}.
    33393339
    33403340\subsubsection{How do I access model time during the simulation?}
    33413341The variable \code{t} in the evolve for loop is the model time.
    3342 For example to change the boundary at a particular time (instead of basing this on the state of the system as in Section \ref{sec:change boundary}) 
     3342For example to change the boundary at a particular time (instead of basing this on the state of the system as in Section \ref{sec:change boundary})
    33433343one would write something like
    33443344{\small \begin{verbatim}
    33453345    for t in domain.evolve(yieldstep = 0.2, duration = 40.0):
    3346        
     3346
    33473347        if Numeric.allclose(t, 15):
    33483348            print 'Changing boundary to outflow'
    3349             domain.set_boundary({'right': Bo})     
    3350            
     3349            domain.set_boundary({'right': Bo})
     3350
    33513351\end{verbatim}}
    33523352The model time can also be accessed through the public interface \code{domain.get\_time()}, or changed (at your own peril) through \code{domain.set\_time()}.
     
    34843484
    34853485    \indexedbold{NetCDF} & &\\
    3486    
    3487     \indexedbold{node} & A point at which edges meet & \\   
     3486
     3487    \indexedbold{node} & A point at which edges meet & \\
    34883488
    34893489    \indexedbold{northing} & A rectangular (x,y) coordinate measurement of distance
     
    35203520%    \indexedbold{try this}
    35213521
    3522     \indexedbold{animate} & visualisation tool used with \anuga & 
     3522    \indexedbold{animate} & visualisation tool used with \anuga &
    35233523    \pageref{sec:animate}\\
    35243524
     
    35673567
    35683568\begin{thebibliography}{99}
    3569 \bibitem[nielsen2005]{nielsen2005} 
     3569\bibitem[nielsen2005]{nielsen2005}
    35703570{\it Hydrodynamic modelling of coastal inundation}.
    35713571Nielsen, O., S. Roberts, D. Gray, A. McPherson and A. Hitchman.
Note: See TracChangeset for help on using the changeset viewer.