Changeset 4209
- Timestamp:
- Feb 1, 2007, 11:32:13 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/documentation/user_manual/anuga_user_manual.tex
r4208 r4209 106 106 governing equation using a finite-volume method. 107 107 108 \anuga also incorporates a mesh generator %, called \code{pmesh}, 108 \anuga also incorporates a mesh generator %, called \code{pmesh}, 109 109 that 110 110 allows the user to set up the geometry of the problem interactively as … … 181 181 terrains in the model are represented by predefined forcing terms. 182 182 183 The built-in mesh generator %, called pmesh, 183 The built-in mesh generator %, called pmesh, 184 184 allows the user to set up the geometry 185 185 of the problem interactively and to identify boundary segments and … … 205 205 206 206 \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 209 209 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 211 211 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). 215 215 \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 219 219 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 222 222 \anuga has not yet been fully validated in regard to bottom roughness 223 223 \item ANUGA contains no tsunami-genic functionality relating to … … 609 609 610 610 The 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}) 611 contains stage and momentum information and can be used with the 612 ANUGA viewer \code{animate} (see Section \ref{sec:animate}) 613 613 visualisation package 614 614 to generate a visual display. See Section \ref{sec:file formats} … … 679 679 \subsection{Overview} 680 680 681 The next example is about waterflow in a channel with varying boundary conditions and 681 The next example is about waterflow in a channel with varying boundary conditions and 682 682 more complex topograhies. These examples build on the 683 683 concepts introduced through the \file{runup.py} in Section \ref{sec:simpleexample}. … … 718 718 \subsection{Establishing the Mesh}\index{mesh, establishing} 719 719 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 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 722 722 change the physical extent of the domain. The assignment 723 723 724 724 {\small \begin{verbatim} 725 points, vertices, boundary = rectangular_cross(m, n, 725 points, vertices, boundary = rectangular_cross(m, n, 726 726 len1=length, len2=width) 727 727 \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} 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} 730 730 respectively. 731 731 732 Defining m and n in terms of the extent as in this example provides a convenient way of 732 Defining m and n in terms of the extent as in this example provides a convenient way of 733 733 controlling 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: 734 734 … … 767 767 Here is the code for the second version of the channel flow \file{channel2.py}: 768 768 \verbatiminput{demos/channel2.py} 769 This example differs from the first version in that a constant outflow boundary condition has 770 been defined 769 This example differs from the first version in that a constant outflow boundary condition has 770 been defined 771 771 {\small \begin{verbatim} 772 772 Bo = Dirichlet_boundary([-5, 0, 0]) # Outflow … … 777 777 domain.write_time() 778 778 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: 780 780 print 'Stage > 0: Changing to outflow boundary' 781 781 domain.set_boundary({'right': Bo}) … … 787 787 2.5m) which is on the right boundary. If the stage exceeds 0m a 788 788 message is printed and the old boundary condition at tag 'right' is 789 replaced by the outflow boundary using the method 790 {\small \begin{verbatim} 789 replaced by the outflow boundary using the method 790 {\small \begin{verbatim} 791 791 domain.set_boundary({'right': Bo}) 792 792 \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. 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. 796 796 797 797 \subsection{Output} 798 798 799 799 The text output from this example looks like this 800 {\small \begin{verbatim} 800 {\small \begin{verbatim} 801 801 ... 802 802 Time = 15.4000, delta t in [0.03789902, 0.03789916], steps=6 (6) … … 815 815 \verbatiminput{demos/channel3.py} 816 816 817 This example differs from the first two versions in that the topography 817 This example differs from the first two versions in that the topography 818 818 contains obstacles. 819 819 … … 823 823 """Complex topography defined by a function of vectors x and y 824 824 """ 825 826 z = -x/10 825 826 z = -x/10 827 827 828 828 N = len(x) … … 831 831 # Step 832 832 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 835 835 # Constriction 836 836 if 27 < x[i] < 29 and y[i] > 3: 837 z[i] += 2 838 837 z[i] += 2 838 839 839 # Pole 840 840 if (x[i] - 34)**2 + (y[i] - 2)**2 < 0.4**2: … … 921 921 maximal area of a triangle used for triangulation---and a triangular 922 922 mesh is created inside the polygon using a mesh generation engine. 923 On any given platform, the same mesh will be returned. 923 On any given platform, the same mesh will be returned. 924 924 %Figure 925 925 %\ref{fig:pentagon} shows a simple example of this, in which the … … 980 980 Figure \ref{fig:cairns3d} illustrates the landscape of the region 981 981 for the Cairns example. Understanding the landscape is important in 982 determining the location and resolution of interior polygons. The 982 determining the location and resolution of interior polygons. The 983 983 supporting data is found in the ASCII grid, \code{cairns.asc}, which 984 984 has been sourced from the publically available Australian Bathymetry 985 985 and Topography Grid 2005, \cite{grid250}. The required resolution 986 for inundation modelling will depend on the underlying topography and 986 for inundation modelling will depend on the underlying topography and 987 987 bathymetry; as the terrain becomes more complex, the desired resolution 988 988 would decrease to the order of tens of metres. … … 1011 1011 1012 1012 Figure \ref{fig:cairnspolys} 1013 illustrates the polygons used for the Cairns scenario. 1013 illustrates the polygons used for the Cairns scenario. 1014 1014 1015 1015 \begin{figure}[hbt] … … 1025 1025 1026 1026 {\small \begin{verbatim} 1027 remainder_res = 10000000 1027 remainder_res = 10000000 1028 1028 create_mesh_from_regions(project.bounding_polygon, 1029 1029 boundary_tags={'top': [0], … … 1108 1108 function that depends on the characteristics of the slide (length, 1109 1109 width, thickness, slope, etc), its location (origin) and the depth at that 1110 location. For this example, we choose to apply the slide function 1110 location. For this example, we choose to apply the slide function 1111 1111 at a specified time into the simulation. 1112 1112 … … 1172 1172 With the basics established, the running of the `evolve' step is 1173 1173 very similar to the corresponding step in \file{runup.py}. For the slide 1174 scenario, 1174 scenario, 1175 1175 the simulation is run for 5000 seconds with the output stored every ten seconds. 1176 1176 For this example, we choose to apply the slide at 60 seconds into the simulation. … … 1179 1179 import time t0 = time.time() 1180 1180 1181 1182 for t in domain.evolve(yieldstep = 10, finaltime = 60): 1181 1182 for t in domain.evolve(yieldstep = 10, finaltime = 60): 1183 1183 domain.write_time() 1184 domain.write_boundary_statistics(tags = 'ocean_east') 1185 1184 domain.write_boundary_statistics(tags = 'ocean_east') 1185 1186 1186 # add slide 1187 1187 thisstagestep = domain.get_quantity('stage') … … 1190 1190 slide.set_values(tsunami_source) 1191 1191 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, 1194 1194 skip_initial_step = True): 1195 1195 domain.write_time() … … 1197 1197 \end{verbatim}} 1198 1198 1199 For the fixed wave scenario, the simulation is run to 10000 seconds, 1199 For the fixed wave scenario, the simulation is run to 10000 seconds, 1200 1200 with the first half of the simulation stored at two minute intervals, 1201 1201 and the second half of the simulation stored at ten second intervals. … … 1207 1207 1208 1208 # 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): 1210 1210 domain.write_time() 1211 domain.write_boundary_statistics(tags = 'ocean_east') 1211 domain.write_boundary_statistics(tags = 'ocean_east') 1212 1212 1213 1213 # 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, 1215 1215 skip_initial_step = True): 1216 1216 domain.write_time() 1217 1217 domain.write_boundary_statistics(tags = 'ocean_east') 1218 1218 1219 1219 \end{verbatim}} 1220 1220 … … 1226 1226 1227 1227 The 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 1228 maximum water depth over the domain and is achieved with the function sww2dem (described in 1229 1229 Section \ref{sec:basicfileconversions}). 1230 1230 \file{ExportResults.py} demonstrates how this function can be used: … … 1236 1236 example. The parameters used in the function are defined in \file{project.py}. 1237 1237 Figures \ref{fig:maxdepthcairnsslide} and \ref{fig:maxdepthcairnsfixedwave} show 1238 the maximum water depth within the defined region for the slide and fixed wave scenario 1238 the maximum water depth within the defined region for the slide and fixed wave scenario 1239 1239 respectively. 1240 1240 The user could develop a maximum absolute momentum or other expressions which can be 1241 derived from the quantities. 1241 derived from the quantities. 1242 1242 1243 1243 \begin{figure}[hbt] … … 1256 1256 location to understand the behaviour of the system through time. To do this, the user 1257 1257 must 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}. 1258 identified for the Cairns scenario, as shown in Figure \ref{fig:cairnsgauges}. 1259 1259 1260 1260 \begin{figure}[hbt] … … 1272 1272 Header information has been included to identify the location in terms of eastings and 1273 1273 northings, 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 1274 This information is then passed to the function sww2timeseries (shown in 1275 1275 \file{GetTimeseries.py} which generates figures for 1276 each desired quantity for each point location. 1276 each desired quantity for each point location. 1277 1277 1278 1278 \verbatiminput{demos/cairns/GetTimeseries.py} … … 1296 1296 {\small \begin{verbatim} 1297 1297 1298 1299 1300 1298 production_dirs = {'slide': 'Slide', 1299 'fixed_wave': 'Fixed Wave'} 1300 1301 1301 \end{verbatim}} 1302 1302 … … 1513 1513 1514 1514 For more control over the creation of the mesh outline, use the 1515 methods of the class \class{Mesh}. 1515 methods of the class \class{Mesh}. 1516 1516 1517 1517 … … 1539 1539 This method is used to build the mesh outline. It defines a hole, 1540 1540 when the boundary of the hole has already been defined, by selecting a 1541 point within the boundary. 1541 point within the boundary. 1542 1542 1543 1543 \end{methoddesc} … … 1597 1597 1598 1598 Add user vertices. The point_data can be a list of (x,y) values, a numeric 1599 array or a geospatial_data instance. 1599 array or a geospatial_data instance. 1600 1600 \end{methoddesc} 1601 1601 … … 1610 1610 useful since a set of user vertices need to be outlined by segments 1611 1611 before generate_mesh is called. 1612 1612 1613 1613 \end{methoddesc} 1614 1614 … … 1681 1681 1682 1682 \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} 1685 1685 1686 1686 Assigns the name \code{name} to the domain. … … 1697 1697 Module: \module{abstract\_2d\_finite\_volumes.domain} 1698 1698 1699 Specifies the directory used for SWW files, assigning it to the 1699 Specifies the directory used for SWW files, assigning it to the 1700 1700 pathname \code{name}. The default value, before 1701 1701 \code{set\_datadir} has been run, is the value \code{default\_datadir} … … 1782 1782 1783 1783 \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 1787 1787 Return all vertex coordinates for all triangles as a 3*M x 2 array 1788 1788 where the jth vertex of the ith triangle is located in row 3*i+j and … … 1793 1793 Default is False as many parts of ANUGA expects relative coordinates. 1794 1794 \end{methoddesc} 1795 1796 1795 1796 1797 1797 \begin{methoddesc}{get\_triangles}{indices=None} 1798 1798 … … 1804 1804 Optional argument, indices is the set of triangle ids of interest. 1805 1805 \end{methoddesc} 1806 1806 1807 1807 \begin{methoddesc}{get\_disconnected\_triangles}{} 1808 1808 … … 1824 1824 The triangles created will have the format 1825 1825 1826 1826 {\small \begin{verbatim} 1827 1827 [[0,1,2], 1828 1828 [3,4,5], 1829 1829 [6,7,8], 1830 1830 ... 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}} 1833 1833 \end{methoddesc} 1834 1834 … … 1879 1879 \code{domain.set\_quantity('stage','elevation'+x))} 1880 1880 \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}). 1882 1882 Optional argument attribute\_name applies here as with files. 1883 1883 \end{itemize} … … 1906 1906 %%% 1907 1907 \anuga provides a number of predefined initial conditions to be used 1908 with \code{set\_quantity}. See for example callable object 1908 with \code{set\_quantity}. See for example callable object 1909 1909 \code{slump\_tsunami} below. 1910 1910 … … 1916 1916 \begin{funcdesc}{set_region}{tag, quantity, X, location='vertices'} 1917 1917 Module: \module{abstract\_2d\_finite\_volumes.domain} 1918 1918 1919 1919 (see also \module{abstract\_2d\_finite\_volumes.quantity.set\_values}) 1920 1920 1921 1921 This function is used to assign values to individual quantities given 1922 a regional tag. It is similar to \code{set\_quantity}. 1922 a regional tag. It is similar to \code{set\_quantity}. 1923 1923 For example, if in pmesh a regional tag of 'ditch' was 1924 1924 used, set\_region can be used to set elevation of this region to … … 2173 2173 2174 2174 All 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 2176 2176 take as inputs \code{self, vol\_id, edge\_id} where self refers to the 2177 2177 object 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}, 2178 particular edges. The method must return a list of three floating point 2179 numbers representing values for \code{stage}, 2180 2180 \code{xmomentum} and \code{ymomentum}, respectively. 2181 2181 2182 The constructor of a particular boundary class may be used to specify 2182 The constructor of a particular boundary class may be used to specify 2183 2183 particular values or flags to be used by the \code{evaluate} method. 2184 Please refer to the source code for the existing boundary conditions 2184 Please refer to the source code for the existing boundary conditions 2185 2185 for examples of how to implement boundary conditions. 2186 2186 … … 2264 2264 \begin{funcdesc}{get\_quantity}{name, location='vertices', indices = None} 2265 2265 Module: \module{abstract\_2d\_finite\_volumes.domain} 2266 2266 2267 2267 Allow access to individual quantities and their methods 2268 2268 … … 2276 2276 2277 2277 \end{funcdesc} 2278 2278 2279 2279 2280 2280 \begin{funcdesc}{get\_integral}{} … … 2285 2285 \end{funcdesc} 2286 2286 2287 2288 2287 2288 2289 2289 2290 2290 \begin{funcdesc}{get\_maximum\_value}{indices = None} … … 2293 2293 Return maximum value of quantity (on centroids) 2294 2294 2295 Optional argument indices is the set of element ids that 2295 Optional argument indices is the set of element ids that 2296 2296 the operation applies to. If omitted all elements are considered. 2297 2297 2298 2298 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. 2300 2300 \end{funcdesc} 2301 2301 2302 2302 2303 2303 2304 2304 \begin{funcdesc}{get\_maximum\_location}{indices = None} … … 2307 2307 Return location of maximum value of quantity (on centroids) 2308 2308 2309 Optional argument indices is the set of element ids that 2309 Optional argument indices is the set of element ids that 2310 2310 the operation applies to. 2311 2311 … … 2314 2314 2315 2315 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. 2317 2317 \end{funcdesc} 2318 2318 2319 2319 2320 2320 2321 2321 \begin{funcdesc}{get\_wet\_elements}{indices=None} 2322 Module: \module{shallow\_water.shallow\_water\_domain} 2322 Module: \module{shallow\_water.shallow\_water\_domain} 2323 2323 2324 2324 Return indices for elements where h $>$ minimum_allowed_height … … 2328 2328 2329 2329 \begin{funcdesc}{get\_maximum\_inundation\_elevation}{indices=None} 2330 Module: \module{shallow\_water.shallow\_water\_domain} 2330 Module: \module{shallow\_water.shallow\_water\_domain} 2331 2331 2332 2332 Return highest elevation where h $>$ 0.\\ 2333 2333 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() 2337 2337 \end{funcdesc} 2338 2338 2339 2339 2340 2340 \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 2343 2343 Return location (x,y) of highest elevation where h $>$ 0.\\ 2344 2344 Optional argument indices is the set of element ids that the operation applies to.\\ 2345 2345 2346 2346 Example to find maximum runup location:\\ 2347 x, y = domain.get_maximum_inundation_location() 2347 x, y = domain.get_maximum_inundation_location() 2348 2348 \end{funcdesc} 2349 2349 2350 2351 2350 2351 2352 2352 \section{Other} 2353 2353 … … 2355 2355 2356 2356 Handy for creating derived quantities on-the-fly as for example 2357 \begin{verbatim} 2357 \begin{verbatim} 2358 2358 Depth = domain.create_quantity_from_expression('stage-elevation') 2359 2359 2360 exp = '(xmomentum*xmomentum + ymomentum*ymomentum)**0.5') 2360 exp = '(xmomentum*xmomentum + ymomentum*ymomentum)**0.5') 2361 2361 Absolute_momentum = domain.create_quantity_from_expression(exp) 2362 \end{verbatim} 2363 2362 \end{verbatim} 2363 2364 2364 %See also \file{Analytical\_solution\_circular\_hydraulic\_jump.py} for an example of use. 2365 2365 \end{funcdesc} … … 2488 2488 2489 2489 2490 The contents of an SWW file may be viewed using the anuga viewer 2490 The contents of an SWW file may be viewed using the anuga viewer 2491 2491 \code{animate}, which creates an on-screen geometric 2492 2492 representation. See section \ref{sec:animate} (page … … 2724 2724 \label{sec:caching} 2725 2725 2726 The \code{cache} function is used to provide supervised caching of function 2726 The \code{cache} function is used to provide supervised caching of function 2727 2727 results. A Python function call of the form 2728 2728 … … 3077 3077 3078 3078 Inputs 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}). 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}). 3082 3082 Default is \code{closed=True}. 3083 3084 Returns new Geospatial data object representing points 3083 3084 Returns new Geospatial data object representing points 3085 3085 inside specified polygon. 3086 3086 \end{methoddesc} … … 3254 3254 \label{mod:quantity} 3255 3255 3256 \begin{verbatim} 3256 \begin{verbatim} 3257 3257 Class Quantity - Implements values at each triangular element 3258 3258 … … 3270 3270 Otherwise raise an exception 3271 3271 3272 \end{verbatim} 3273 3274 3275 3272 \end{verbatim} 3273 3274 3275 3276 3276 3277 3277 \section{\module{shallow\_water} --- 2D triangular domains for finite-volume … … 3294 3294 3295 3295 \subsubsection{What is \anuga?} 3296 It is a software package suitable for simulating 2D water flows in 3296 It is a software package suitable for simulating 2D water flows in 3297 3297 complex geometries. 3298 3298 3299 3299 \subsubsection{Why is it called \anuga?} 3300 The software was developed in collaboration between the 3300 The software was developed in collaboration between the 3301 3301 Australian National University (ANU) and Geoscience Australia (GA). 3302 3302 3303 3303 \subsubsection{How do I obtain a copy of \anuga?} 3304 See url{https://datamining.anu.edu.au/anuga} for all things ANUGA.3304 See \url{https://datamining.anu.edu.au/anuga} for all things ANUGA. 3305 3305 3306 3306 %\subsubsection{What developments are expected for \anuga in the future?} 3307 %This 3307 %This 3308 3308 3309 3309 \subsubsection{Are there any published articles about \anuga that I can reference?} 3310 See url{https://datamining.anu.edu.au/anuga} for links.3310 See \url{https://datamining.anu.edu.au/anuga} for links. 3311 3311 3312 3312 … … 3314 3314 3315 3315 \subsubsection{Which type of problems are \anuga good for?} 3316 General 2D waterflows in complex geometries such as 3316 General 2D waterflows in complex geometries such as 3317 3317 dam breaks, flows amoung structurs, coastal inundation etc. 3318 3318 … … 3335 3335 3336 3336 \subsubsection{Can I change boundary conditions during the simulation?} 3337 Yes - see example on page \pageref{sec:change boundary code} in Section 3337 Yes - see example on page \pageref{sec:change boundary code} in Section 3338 3338 \ref{sec:change boundary}. 3339 3339 3340 3340 \subsubsection{How do I access model time during the simulation?} 3341 3341 The 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}) 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}) 3343 3343 one would write something like 3344 3344 {\small \begin{verbatim} 3345 3345 for t in domain.evolve(yieldstep = 0.2, duration = 40.0): 3346 3346 3347 3347 if Numeric.allclose(t, 15): 3348 3348 print 'Changing boundary to outflow' 3349 domain.set_boundary({'right': Bo}) 3350 3349 domain.set_boundary({'right': Bo}) 3350 3351 3351 \end{verbatim}} 3352 3352 The 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()}. … … 3484 3484 3485 3485 \indexedbold{NetCDF} & &\\ 3486 3487 \indexedbold{node} & A point at which edges meet & \\ 3486 3487 \indexedbold{node} & A point at which edges meet & \\ 3488 3488 3489 3489 \indexedbold{northing} & A rectangular (x,y) coordinate measurement of distance … … 3520 3520 % \indexedbold{try this} 3521 3521 3522 \indexedbold{animate} & visualisation tool used with \anuga & 3522 \indexedbold{animate} & visualisation tool used with \anuga & 3523 3523 \pageref{sec:animate}\\ 3524 3524 … … 3567 3567 3568 3568 \begin{thebibliography}{99} 3569 \bibitem[nielsen2005]{nielsen2005} 3569 \bibitem[nielsen2005]{nielsen2005} 3570 3570 {\it Hydrodynamic modelling of coastal inundation}. 3571 3571 Nielsen, O., S. Roberts, D. Gray, A. McPherson and A. Hitchman.
Note: See TracChangeset
for help on using the changeset viewer.