source: documentation/requirements/anuga_API_requirements.tex @ 3031

Last change on this file since 3031 was 2411, checked in by ole, 19 years ago

Migration of requirements and planning

File size: 3.7 KB
Line 
1\documentclass{manual}
2
3
4\title{ANUGA requirements for the Application Programmers Interface (API)}
5
6\author{Ole Nielsen, Duncan Gray, Jane Sexton, Nick Bartzis}
7
8% Please at least include a long-lived email address;
9% the rest is at your discretion.
10\authoraddress{Geoscience Australia \\
11  Email: \email{ole.nielsen@ga.gov.au}
12}
13
14%Draft date
15\date{\today}                   % update before release!
16                                % Use an explicit date so that reformatting
17                                % doesn't cause a new date to be used.  Setting
18                                % the date to \today can be used during draft
19                                % stages to make it easier to handle versions.
20
21\release{1.0}                   % release version; this is used to define the
22                                % \version macro
23
24\makeindex                      % tell \index to actually write the .idx file
25%\makemodindex                  % If this contains a lot of module sections.
26
27
28
29\begin{document}
30\maketitle
31
32
33
34% This makes the contents more accessible from the front page of the HTML.
35\ifhtml
36\chapter*{Front Matter\label{front}}
37\fi
38
39
40
41
42\chapter{Introduction}
43
44This document outlines the agreed requirements for the ANUGA API.
45
46       
47
48\chapter{Public API}           
49\section{General principles}   
50 The ANUGA API must be simple to use.
51Operations that are conceptually simple should be easy to do. An example would be setting up a small test problem on a unit square without any geographic orientation.
52Complex operations should be manageable and not require the user to enter information that isn't strictly part of the problem description. Examples are entering UTM coordinates (or geographic coordinates) as read from a map should not require any reference to a particular origin.
53Nor should the same information have to be entered more than once per scenario.
54
55
56
57\section{Georeferencing}
58
59Currently ANUGA is limited to UTM coordinates assumed to belong to one zone.
60ANUGA shall throw an exeption if this assumption is violated.
61
62It must be possible in general to enter data points as
63       
64\begin{itemize}
65  \item A list of 2-tuples of coordinates in which case the points are
66    assumed to be in absolute UTM coordinates in an undefined zone
67  \item An N by 2 Numeric array of coordinates. Points are assumed to
68    be in absolute UTM coordinates in an undefined zone 
69  \item A geospatial dataset object that contains properly
70    georeferenced points
71\end{itemize}   
72
73
74General
75\begin{itemize} 
76  \item The undefined zone must be a symbol or number that does
77    not exist geographically.
78
79  \item Any component that needs coordinates to be relative to a particular point shall be responsible for deriving that origin. Examples are meshes where absolute coordinates may cause numerical problems. An example of a derived origin would be using the South-West most point on the boundary.
80
81  \item Coordinates must be passed around as either geospatial objects or absolute UTM unless there is a compelling reason to use relative coordinates on grounds of efficiency or numerical stability.
82 
83\end{itemize}   
84 
85 
86 
87\chapter{Internal API}
88
89
90\chapter{Efficiency and optimisation}
91
92
93\section{Parallelisation of pyvolution}
94
95
96(From ANU meeting 27/7/5)
97 
98Remaining loose ends and ideas are
99\begin{itemize} 
100  \item fluxes in ghostcells should not affect timestep computation.
101  \item a function for re-assembling model output should be made available
102  \item scoping of methodologies for automatic domain decomposition
103  \item implementation of automatic domain decomposition
104    (using C extensions for maximal sequential performance in order to minimise
105    performance penalties due to Amdahl's law)
106  \item in depth testing and tuning of parallel performane. This may require
107    adding wrappers for non-blocking MPI communication to pypar if needed.   
108  \item ability to read in precomputed sub-domains. Perhaps using caching.py 
109
110\end{itemize}   
111
112
113\end{document}
114
115
116
117
Note: See TracBrowser for help on using the repository browser.