source: documentation/requirements/anuga_API_requirements.tex @ 3158

Last change on this file since 3158 was 3060, checked in by duncan, 19 years ago

moving text to the correct document

File size: 4.0 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
82  or absolute UTM unless there is a compelling reason to use relative
83  coordinates on grounds of efficiency or numerical stability.
84 
85  \item Passing Geo_reference's as a keyword should not be done  Where
86  it is currently done, it doesn't have to be
87  changed as a matter of priority, but don't document this 'feature'
88  in the user manual.  If you are refactoring this API, then plase
89  remove geo_reference as a keyword.
90 
91\end{itemize}   
92 
93 
94 
95\chapter{Internal API}
96
97
98\chapter{Efficiency and optimisation}
99
100
101\section{Parallelisation of pyvolution}
102
103
104(From ANU meeting 27/7/5)
105 
106Remaining loose ends and ideas are
107\begin{itemize} 
108  \item fluxes in ghostcells should not affect timestep computation.
109  \item a function for re-assembling model output should be made available
110  \item scoping of methodologies for automatic domain decomposition
111  \item implementation of automatic domain decomposition
112    (using C extensions for maximal sequential performance in order to minimise
113    performance penalties due to Amdahl's law)
114  \item in depth testing and tuning of parallel performane. This may require
115    adding wrappers for non-blocking MPI communication to pypar if needed.   
116  \item ability to read in precomputed sub-domains. Perhaps using caching.py 
117
118\end{itemize}   
119
120
121\end{document}
122
123
124
125
Note: See TracBrowser for help on using the repository browser.