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

Last change on this file since 1690 was 1690, checked in by ole, 18 years ago

Thoughts on gravity and minor cosmetic stuff

File size: 5.1 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 (make sure that coordinate changes 'change_points' are
48        used everywhere
49        memory issue: Compute self.Atz directly and avoid self.A
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 
80finaltime to be renamed duration
81
82
83----
84API:
85
86Suggestion for set_quantity
87      set_quantity(name, X, location, region)
88      where
89      name: Name of quantity
90      X:
91              -Compatible list,
92                -compatible list or numeric array,
93                -constant
94                -list of points or array with attribute values (use LS) (How to distinguish this from a numeric array? - perhaps use keyword arguments for everything)
95                -callable object (f: x, y -> z) where x,y,z are arrays
96                        - inline
97                        - file functions
98                        - polygon functions
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?)
103                - pts filename (use LS and caching) (how to select attribute?)
104                - general expression to be parsed   
105
106        location: Where values are to be stored.
107                Permissible options are: vertices, edges, centroid, unique_vertices
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
130Finally, reconcile the optimised gradient limiter of Matt's with the more general framework
131
132
133
134Boundary (Dirichlet): Think about specifying values by quantity name
135
136Look at matplotlib's verbosity object.
137
138------
139Other:
140
141Should we remove Python code superseded by C-extensions?
142  Pros:   Leaner code and no risk
143  Cons:  Less readable algorithms
144
145Move 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.
146
147
148-------------
149Visualisation
150
151Swollen:
152        Export to movie
153        Use maps
154        Colourcoding
155        z-scale
156
157Matplotlib:
158        Realtime and ?post mortem? generation of colour coded maps with         contourlines.
159
160Visual Python:
161        Steves new and improved tool
162
163
164
165-----------
166Development
167
168Restructuring and moving svn repository
169
170Flatten directory structure
171
172Apply buildbot
173
174Use real bugtracking/project management tool
175(see http://www.generalconcepts.com/resources/tracking, plone, basecamp,?
176Try out TRAC which integrates into subversion (Ole and Kat 27/7/5)
177
178Zeus?
179
180
181--------------
182Documentation
183
184Hire technical writer to produce
185- Getting started
186- User guide
187- Reference manual ? semi automated
188
189Mathematical model description  (Steve & Chris)
190
191
192-----------------
193Validation and QA
194
195Merimbula (Steve & Chris)
196PNG Landslide study or watertank data (Adrian?)
197BOM
198SMEC (Lex)
199CSIRO (Kathy)
200Macca...
201
202
203--------
204Naming
205
206The collection as well as individual modules may benefit from better names.
207
208
209--------
210Release
211
212Search for appropriate procedure for OSS release (Ole is onto that with AGIMO)
213
214
215
Note: See TracBrowser for help on using the repository browser.