source: inundation-numpy-branch/pyvolution/wiki/issues.txt @ 3330

Last change on this file since 3330 was 1693, checked in by ole, 19 years ago

Comment about properties

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