source: inundation/ga/storm_surge/wiki/future_directions.txt @ 1668

Last change on this file since 1668 was 1663, checked in by ole, 20 years ago

Comment about georeferencing

File size: 4.9 KB
RevLine 
[1572]1ANUGA Future Directions (2005-2006)
2
3
4--------------------------------------------------
5Draft of known issues regarding the ANUGA software
6--------------------------------------------------
7
8
9----------------
10Numerical issues
11
12CFL condition (centroid-midpt distances versus inscribed circle ? or error estimator)
13Gradient limiters
14Forcing terms:
15    Friction of Mud
16    Viscosity
17
18
19
20--------------------
21Functionality issues
22
23Mesh generation:
24    Through graphical generator
25    Through scripts
26    Alternative triangulators (Strang, ?.)
27    alpha-shapes
28
29refactoring triangle interface
30outputting a ?triangle? readable file (from pmesh?)
31
32  from pmesh issues file:
33      Main issues  (TBA) 
34
35Georeferencing
36  Code works in UTM coordinates. Zone boundaries cannot be crossed
37  Could code be cast in terms of lat/lons?
38
39least_squares, use of quad-tree may not use all datapoints
40        (currently fixed by expand search, need algorithm for searching neighbouring    treenodes)
41
42        Give feedback when
43                points outside mesh
44                mesh outside points boundary
45
46        use sparse matrix (CSR) format in ?build_interpolation_matrix_A?
[1663]47        simplify geo-referencing (make sure that coordinate changes 'change_points' are
48        used everywhere
[1656]49        memory issue: Compute self.Atz directly and avoid self.A
[1572]50
51Checkpointing (largely done but needs to be revisited)
52
53Ability to create additional quantities and initialise arbitrarily
54 
55FIXMEs (TBA)
56
57
58File management (msh, pts, dem, ..) ? introduce the notion of a project
59 - reduce # of methods that read/write sww files (Yes)
60
61 
62-----------------
63Efficiency issues
64
65Parallelisation
66
67Edgefluxes are currently computed twice (f01 = -f10)
68(This has been fixed by Matt Hardy)
69
70Increase Timesteps (Implicit techniques?)
71
72Optimise creation and importing of domains (C-code and caching)
73
74
75------------
76Architecture
77
78Settle dataflows and formats (pts, dem, msh, sww, etc)
79 
80?finaltime? to be renamed ?duration?
81
82
83----
84API:
85
86Suggestion for set_quantity
87      set_quantity(name, X, location, region)
[1616]88      where
89      name: Name of quantity
[1572]90      X:
[1617]91              -Compatible list,
[1616]92                -compatible list or numeric array,
93                -constant
94                -list of points or array with attribute values (use LS)
[1572]95                -callable object (f: x, y -> z) where x,y,z are arrays
96                        - inline
97                        - file functions
98                        - polygon functions
[1616]99                -another quantity Q or an expression of the form
100                   a*Q+b*R+c, where       
101                   a,b,c are scalars, arrays or quantities
102                   Q,R are quantities (or 1?)
[1572]103                - pts filename (use LS and caching)           
104                - general expression to be parsed   
105
106        location: Where values are to be stored.
[1617]107                Permissible options are: vertices, edges, centroid, unique_vertices
[1572]108        region: Identify subset of triangles. Permissible values are
109                  - tag name (refers to tagged region)
110                    - indices (refers to specific triangles)
111                    - polygon (identifies region)
112                (incorporate uniqueness/non-uniqueness)
113           
114
115Making methods private, using _private
116Or write the API in a separate module.
117
118
119Make stage appear as any other quantity:
120Either
121   1: Make stage a subclass of quantity having knowledge of elevation and a special 
122       limiter (or more limiters)
123Or
124   2: Equip each quantity with a limiter class
125      (Con: A limiter for stage should never be applied to any other quantity)
126
127
128Also, investigate if Quantity and Conserved_quantity should be one class (Steve).
129
[1574]130Finally, reconcile the optimised gradient limiter of Matt's with the more general framework
[1572]131
[1574]132
133
[1572]134------
135Other:
136
137Should we remove Python code superseded by C-extensions?
138  Pros:   Leaner code and no risk
139  Cons:  Less readable algorithms
140
141Move py code into files such as quantity_ext.py and have python wrappers with doc strings for all functions. Name the code in extensions _ext and conditional import as usual.
142
143
144-------------
145Visualisation
146
147Swollen:
148        Export to movie
149        Use maps
150        Colourcoding
151        z-scale
152
153Matplotlib:
154        Realtime and ?post mortem? generation of colour coded maps with         contourlines.
155
156Visual Python:
157        Steves new and improved tool
158
159
160
161-----------
162Development
163
164Restructuring and moving svn repository
165
166Flatten directory structure
167
168Apply buildbot
169
170Use real bugtracking/project management tool
171(see http://www.generalconcepts.com/resources/tracking, plone, basecamp,?
[1654]172Try out TRAC which integrates into subversion (Ole and Kat 27/7/5)
[1572]173
174Zeus?
175
176
177--------------
178Documentation
179
180Hire technical writer to produce
181- Getting started
182- User guide
183- Reference manual ? semi automated
184
185Mathematical model description  (Steve & Chris)
186
187
188-----------------
189Validation and QA
190
191Merimbula (Steve & Chris)
192PNG Landslide study or watertank data (Adrian?)
193BOM
[1654]194SMEC (Lex)
195CSIRO (Kathy)
196Macca...
[1572]197
198
199--------
200Naming
201
202The collection as well as individual modules may benefit from better names.
203
204
205--------
206Release
207
208Search for appropriate procedure for OSS release (Ole is onto that with AGIMO)
209
210
211
Note: See TracBrowser for help on using the repository browser.