source: anuga_core/documentation/planning/issues_pre_trac.txt @ 5706

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

More cleaninig of old doc files

File size: 8.0 KB
Line 
1From TODO list (HUSK.txt)
2
3Have the quantity label e.g. elevation, associated with the data in sww files.
4
5Do data manager for non-smooth data + tests. Smooth is OK (7/9)
6               
7       
8Perhaps control old/new style with minimum_allowed height
9In any case get rid of old style.
10Then optimise protect_against.....
11       
12
13       
14Create a pyvolution_interfaces.py module with all getters/setters
15converts etc.
16
17
18gradient should not require qs to be numeric arrays anymore.!!
19
20
21Let rectangular mesh and others
22like it to generat the three lists for use when instantiating
23Mesh and DOmain objects.
24
25
26Don't use default conserved qs - hardwire into shallow_water.py
27Even hardwire pertinent arrays from cons quan into shallow_water and use directly with flux etc
28
29
30Interface
31
32 set_quantity should be ablt take either a function or an array.
33 
34
35Design: 
36explicit and implicit updates should be stored in each quantity.
37
38Create repr of a domain such that it lists all its parameters e.g. order
39       
40       
41OPEN ISSUES:
42------------
43
44
45Try to use properties with getters and setters
46E.g. as in
47class Contact(object):
48
49    def __init__(self, first_name=None, last_name=None,
50                 display_name=None, email=None):
51        self.first_name = first_name
52        self.last_name = last_name
53        self.display_name = display_name
54        self.email = email
55
56    def print_info(self):
57        print self.display_name, "<" + self.email + ">"           
58
59    def set_email(self, value):
60        if '@' not in value:
61            raise Exception("This doesn't look like an email address.")
62        self._email = value
63
64    def get_email(self):
65        return self._email
66
67    email = property(get_email, set_email)
68----------------------------------------------------
69
70Issue:  File function (e.g. boundary) should give an error message (or set a defoult) if underlying netcdf has missing values. Make a unit test.
71Maybe the underlying code should detect NaNs.
72
73
74Issue: finaltime should be renamed 'duration'
75
76Issue (interpolate_sww (new functionality): Give a warning if points
77 are outside the mesh.
78Importance: Mid
79Comment (Ole): If points and triangles are listed as discontinuous e.g. vertex coordinates replicated for each triangle, then the bounding polygon gets mangled and some points appear to be outside.
80Who: DSG
81
82Issue (interpolate_sww (new functionality)): Be able to specify at
83what times data is needed e.g. input a start, finish and period.
84Importance: low
85
86Issue (least_squares): Do a bug report to sci py
87Importance: low to don't do
88Who: Stephen
89
90Issue (least_squares): Runs out of memory with e.g 6 million points and
91300,000 basis functions.
92Importance: Mid
93Suggested Action: Look at blocking strategies
94
95Issue (least_squares): Code to not product D matrix (if it isn't
96needed) isn't working.
97Importance: Mid - low
98Suggested Action: Fix
99
100Issue: Parameters specified in config.py must be tranferred to C code
101and it should be possible to override them when setting up a domain.
102Background: N/A
103Importance: Mid
104Suggested Action:
105          1: Let domain read the config file to provide default values.
106          2: Write getters and setters to override them.
107          3: Pass pertinent values from domain into the c-extensions.
108Status: Largely resolved. action 2 ongoing
109
110
111Issue: Checkpointing - needs to respect changes in script.
112Importance: Low
113
114
115Issue: Adding unknown quantities cause a KeyError.  Known quantities
116are given in the list other_quantities, in shallow_water.  Do we want
117unknown quantities attached to domain in the future?  If so, it
118shouldn't cause a key error.
119Importance: low
120Suggested Action:
121Who: OLE
122
123
124Issue: The water level can not be less than the bed elevation, as an
125assert. 
126Importance: Medium
127Suggested Action: How about having the functionality that water levels are set
128to == the bed elevation, if level < bed elevation.  This will make
129setting things up easier.  A following suggestion is don't initialise
130quantities without values, eg in quantity __init__.
131Status: resolved.  Needs unit test though
132
133Issue: Transmissive boundary condition can cause unphysical momentums if
134material is not moving out of the domain.
135Importance: Med
136Suggested Action: Comment in transmissive boundary code.  look into
137sponge boundary.
138
139
140
141       
142CLOSED ISSUES:
143--------------
144
145Issue (least_squares): The current is-a-point-in-a-triangle algorithm
146is slow if a point is outside of the mesh.  It will check each
147triangle 3 times to see if the point is in that triangle.
148Importance: low
149Suggested Action: Form a polygon of the mesh boundary (by constructing
150the neigbour structure) and throw out points not in the polygon (this
151algorithm is there).
152Who: DSG
153Comment (OLE): I have done this (I think)
154
155
156Issue: Get the reservoir example working for the 'new' pyvolution
157Issue: Mid
158Who: DSG
159Status: Done 
160
161Issue (least_squares): datapoints outside the mesh are not used in
162least squares.
163Importance: Mid - low
164Suggested Action: Talk to Steve about including them
165Status: Talked to Steve, it was dicided not to use them
166
167Issue (least_squares): Do a test that the number of attribute titles and number
168of attributes match
169Importance: Mid
170Who: DSG
171Status: closed, this is checked when loading points files now
172
173Issue (Malpasset example):
174Pmesh no longer takes care of attributes but still accepts xya with attributes.
175
176Background:
177Chris imported xya file into pmesh. It contained x, y, bed elevation
178The tsh thus generated did add bed elevation, but didn't produce the proper
179tsh file.
180
181Importance: mid
182Suggested actions: Either spit out an error message or generate a proper
183tsh-header.
184Status:  The story of this is wrong.  Pmesh does produce a proper tsh file
185
186Issue: Second order limiters may cause numerical problems
187manifesting themselves as QNAN (Quiet NANs_ or INF)
188Background: The second order gradient limiter is not robust enough -
189especially with shallow water depths. Heighs and momentum are
190limited independently and high speeds may result.
191Importance: Mid
192Suggested Action:
193          1: Try to incorporate a weighted averaging process between
194          shallow depths and large depths as in the first order scheme.
195          2: Look at limiting height and momentum together, by keeping
196          an eye on the speeds
197          (e.g make speed constant across a volume and recompute momentum)
198          3: Catch errors resulting from these instabilities as early
199          as possibly and produce and throw an appropriate exception
200          4: Make small example that reveals this bug.
201Status: 1 succesfully implemented by Ole and Stephen 12/5/4.
202        2 Didn't work but using the weighted average for momentums seemed
203        to work well.
204        3 and 4 not done.
205        June 2004: With the new limiter (item 1 and 2) 3 and 4 are probably
206        not necessary now.
207
208
209
210Issue: Tags for specifying boundary conditions should be arbitrary
211Background: Domain has the functionality for using arbitrary keys
212when associating boundary objects to boundary values.
213Triangle, which pmesh is based on, uses integers only.
214It would be nice to have mnemonic names for boundaries throughout.
215Importance: Mid
216Status: Duncan resolved this in early June.
217
218
219
220
221
222Issue: Checkpointing - needs to always back one timestep up in
223       case output wasn't written
224Background:
225       Data at latest checkpoint may be incomplete or even corrupted
226       depending on when and how program was stopped.
227Importance: Mid
228Suggested Action: Always try second latest checkpoint first.
229Status: Done (Ole 14/5/4)
230             
231
232               
233Issue: interpolated_conserved_quantities in shallow_water.py
234Background: Was computed by flux functions and used by bed_slope.
235It turns out to be unneccessary as conserved quantities at centroid works just as well.
236Importance: Mid
237Suggested Action: Get rid of it everywhere
238Status: Was done when whole things was refactored in April 2004 by OMN
239
240
241Issue: Exceptions thrown by Python functions called from C don't get caughts
242Background: Have a look at gravity in shallow_water. It calls a C function, gradient, which may throw an exception if arguments are scalars.
243However, it doesn't get caught becuase gravity itself is called from within C
244Importance: Low
245Suggested Action: Have a look at the calling convention from C (David Beasley)
246Status: Unresolved - but no longer relevant as we don't call Python from C
247
Note: See TracBrowser for help on using the repository browser.