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

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

Work towards Benchmark 2.
xya2pts, georeferencing

File size: 4.8 KB
Line 
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?
47        simplify geo-referencing
48        memory issue: Maybe compute self.Atz directly
49
50Checkpointing (largely done but needs to be revisited)
51
52Ability to create additional quantities and initialise arbitrarily
53 
54FIXMEs (TBA)
55
56
57File management (msh, pts, dem, ..) ? introduce the notion of a project
58 - reduce # of methods that read/write sww files (Yes)
59
60 
61-----------------
62Efficiency issues
63
64Parallelisation
65
66Edgefluxes are currently computed twice (f01 = -f10)
67(This has been fixed by Matt Hardy)
68
69Increase Timesteps (Implicit techniques?)
70
71Optimise creation and importing of domains (C-code and caching)
72
73
74------------
75Architecture
76
77Settle dataflows and formats (pts, dem, msh, sww, etc)
78 
79?finaltime? to be renamed ?duration?
80
81
82----
83API:
84
85Suggestion for set_quantity
86      set_quantity(name, X, location, region)
87      where
88      name: Name of quantity
89      X:
90              -Compatible list,
91                -compatible list or numeric array,
92                -constant
93                -list of points or array with attribute values (use LS)
94                -callable object (f: x, y -> z) where x,y,z are arrays
95                        - inline
96                        - file functions
97                        - polygon functions
98                -another quantity Q or an expression of the form
99                   a*Q+b*R+c, where       
100                   a,b,c are scalars, arrays or quantities
101                   Q,R are quantities (or 1?)
102                - pts filename (use LS and caching)           
103                - general expression to be parsed   
104
105        location: Where values are to be stored.
106                Permissible options are: vertices, edges, centroid, unique_vertices
107        region: Identify subset of triangles. Permissible values are
108                  - tag name (refers to tagged region)
109                    - indices (refers to specific triangles)
110                    - polygon (identifies region)
111                (incorporate uniqueness/non-uniqueness)
112           
113
114Making methods private, using _private
115Or write the API in a separate module.
116
117
118Make stage appear as any other quantity:
119Either
120   1: Make stage a subclass of quantity having knowledge of elevation and a special 
121       limiter (or more limiters)
122Or
123   2: Equip each quantity with a limiter class
124      (Con: A limiter for stage should never be applied to any other quantity)
125
126
127Also, investigate if Quantity and Conserved_quantity should be one class (Steve).
128
129Finally, reconcile the optimised gradient limiter of Matt's with the more general framework
130
131
132
133------
134Other:
135
136Should we remove Python code superseded by C-extensions?
137  Pros:   Leaner code and no risk
138  Cons:  Less readable algorithms
139
140Move 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.
141
142
143-------------
144Visualisation
145
146Swollen:
147        Export to movie
148        Use maps
149        Colourcoding
150        z-scale
151
152Matplotlib:
153        Realtime and ?post mortem? generation of colour coded maps with         contourlines.
154
155Visual Python:
156        Steves new and improved tool
157
158
159
160-----------
161Development
162
163Restructuring and moving svn repository
164
165Flatten directory structure
166
167Apply buildbot
168
169Use real bugtracking/project management tool
170(see http://www.generalconcepts.com/resources/tracking, plone, basecamp,?
171Try out TRAC which integrates into subversion (Ole and Kat 27/7/5)
172
173Zeus?
174
175
176--------------
177Documentation
178
179Hire technical writer to produce
180- Getting started
181- User guide
182- Reference manual ? semi automated
183
184Mathematical model description  (Steve & Chris)
185
186
187-----------------
188Validation and QA
189
190Merimbula (Steve & Chris)
191PNG Landslide study or watertank data (Adrian?)
192BOM
193SMEC (Lex)
194CSIRO (Kathy)
195Macca...
196
197
198--------
199Naming
200
201The collection as well as individual modules may benefit from better names.
202
203
204--------
205Release
206
207Search for appropriate procedure for OSS release (Ole is onto that with AGIMO)
208
209
210
Note: See TracBrowser for help on using the repository browser.