Index: undation/pyvolution/wiki/issues.txt
===================================================================
--- /inundation/pyvolution/wiki/issues.txt	(revision 3465)
+++ 	(revision )
@@ -1,208 +1,0 @@
-
-OPEN ISSUES:
-------------
-
-
-Try to use properties with getters and setters
-E.g. as in
-class Contact(object):
-
-    def __init__(self, first_name=None, last_name=None, 
-                 display_name=None, email=None):
-        self.first_name = first_name
-        self.last_name = last_name
-        self.display_name = display_name
-        self.email = email
-
-    def print_info(self):
-        print self.display_name, "<" + self.email + ">"            
-
-    def set_email(self, value):
-        if '@' not in value:
-            raise Exception("This doesn't look like an email address.")
-        self._email = value
-
-    def get_email(self):
-        return self._email
-
-    email = property(get_email, set_email)
-----------------------------------------------------
-
-Issue:  File function (e.g. boundary) should give an error message (or set a defoult) if underlying netcdf has missing values. Make a unit test.
-Maybe the underlying code should detect NaNs.
-
-
-Issue: finaltime should be renamed 'duration'
-
-Issue (interpolate_sww (new functionality): Give a warning if points
- are outside the mesh.
-Importance: Mid
-Comment (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.
-Who: DSG
-
-Issue (interpolate_sww (new functionality)): Be able to specify at
-what times data is needed e.g. input a start, finish and period.
-Importance: low
-
-Issue (least_squares): Do a bug report to sci py
-Importance: low to don't do
-Who: Stephen
-
-Issue (least_squares): Runs out of memory with e.g 6 million points and 
-300,000 basis functions.
-Importance: Mid 
-Suggested Action: Look at blocking strategies
-
-Issue (least_squares): Code to not product D matrix (if it isn't
-needed) isn't working.
-Importance: Mid - low
-Suggested Action: Fix
-
-Issue: Parameters specified in config.py must be tranferred to C code 
-and it should be possible to override them when setting up a domain.
-Background: N/A
-Importance: Mid
-Suggested Action: 
-	  1: Let domain read the config file to provide default values.
-	  2: Write getters and setters to override them.
-	  3: Pass pertinent values from domain into the c-extensions.
-Status: Largely resolved. action 2 ongoing
-
-
-Issue: Checkpointing - needs to respect changes in script.
-Importance: Low
-
-
-Issue: Adding unknown quantities cause a KeyError.  Known quantities
-are given in the list other_quantities, in shallow_water.  Do we want
-unknown quantities attached to domain in the future?  If so, it
-shouldn't cause a key error.
-Importance: low
-Suggested Action: 
-Who: OLE
-
-
-Issue: The water level can not be less than the bed elevation, as an
-assert.  
-Importance: Medium
-Suggested Action: How about having the functionality that water levels are set
-to == the bed elevation, if level < bed elevation.  This will make
-setting things up easier.  A following suggestion is don't initialise
-quantities without values, eg in quantity __init__. 
-Status: resolved.  Needs unit test though
-
-Issue: Transmissive boundary condition can cause unphysical momentums if
-material is not moving out of the domain.
-Importance: Med
-Suggested Action: Comment in transmissive boundary code.  look into
-sponge boundary.
-
-
-
-	
-CLOSED ISSUES:
---------------
-
-Issue (least_squares): The current is-a-point-in-a-triangle algorithm
-is slow if a point is outside of the mesh.  It will check each
-triangle 3 times to see if the point is in that triangle.
-Importance: low
-Suggested Action: Form a polygon of the mesh boundary (by constructing
-the neigbour structure) and throw out points not in the polygon (this
-algorithm is there).
-Who: DSG
-Comment (OLE): I have done this (I think)
-
-
-Issue: Get the reservoir example working for the 'new' pyvolution
-Issue: Mid
-Who: DSG
-Status: Done  
-
-Issue (least_squares): datapoints outside the mesh are not used in
-least squares.
-Importance: Mid - low
-Suggested Action: Talk to Steve about including them
-Status: Talked to Steve, it was dicided not to use them
-
-Issue (least_squares): Do a test that the number of attribute titles and number
-of attributes match
-Importance: Mid
-Who: DSG
-Status: closed, this is checked when loading points files now
-
-Issue (Malpasset example):
-Pmesh no longer takes care of attributes but still accepts xya with attributes.
-
-Background:
-Chris imported xya file into pmesh. It contained x, y, bed elevation
-The tsh thus generated did add bed elevation, but didn't produce the proper 
-tsh file.
-
-Importance: mid
-Suggested actions: Either spit out an error message or generate a proper 
-tsh-header.
-Status:  The story of this is wrong.  Pmesh does produce a proper tsh file
-
-Issue: Second order limiters may cause numerical problems 
-manifesting themselves as QNAN (Quiet NANs_ or INF)
-Background: The second order gradient limiter is not robust enough - 
-especially with shallow water depths. Heighs and momentum are 
-limited independently and high speeds may result.
-Importance: Mid
-Suggested Action: 
-	  1: Try to incorporate a weighted averaging process between 
-	  shallow depths and large depths as in the first order scheme.
-	  2: Look at limiting height and momentum together, by keeping 
-	  an eye on the speeds 
-	  (e.g make speed constant across a volume and recompute momentum)
-	  3: Catch errors resulting from these instabilities as early 
-	  as possibly and produce and throw an appropriate exception
-	  4: Make small example that reveals this bug.
-Status: 1 succesfully implemented by Ole and Stephen 12/5/4.
-	2 Didn't work but using the weighted average for momentums seemed 
-	to work well.
-	3 and 4 not done.
-	June 2004: With the new limiter (item 1 and 2) 3 and 4 are probably 
-	not necessary now.
-
-
-
-Issue: Tags for specifying boundary conditions should be arbitrary
-Background: Domain has the functionality for using arbitrary keys
-when associating boundary objects to boundary values.
-Triangle, which pmesh is based on, uses integers only.
-It would be nice to have mnemonic names for boundaries throughout.
-Importance: Mid
-Status: Duncan resolved this in early June.
-
-
-
-
-
-Issue: Checkpointing - needs to always back one timestep up in 
-       case output wasn't written
-Background:
-       Data at latest checkpoint may be incomplete or even corrupted 
-       depending on when and how program was stopped.
-Importance: Mid
-Suggested Action: Always try second latest checkpoint first.
-Status: Done (Ole 14/5/4)
-              
-
-		
-Issue: interpolated_conserved_quantities in shallow_water.py
-Background: Was computed by flux functions and used by bed_slope.
-It turns out to be unneccessary as conserved quantities at centroid works just as well.
-Importance: Mid
-Suggested Action: Get rid of it everywhere
-Status: Was done when whole things was refactored in April 2004 by OMN
-
-
-Issue: Exceptions thrown by Python functions called from C don't get caughts
-Background: Have a look at gravity in shallow_water. It calls a C function, gradient, which may throw an exception if arguments are scalars.
-However, it doesn't get caught becuase gravity itself is called from within C
-Importance: Low
-Suggested Action: Have a look at the calling convention from C (David Beasley)
-Status: Unresolved - but no longer relevant as we don't call Python from C
-
Index: /inundation/pyvolution/wiki/issues_pre_trac.txt
===================================================================
--- /inundation/pyvolution/wiki/issues_pre_trac.txt	(revision 3466)
+++ /inundation/pyvolution/wiki/issues_pre_trac.txt	(revision 3466)
@@ -0,0 +1,208 @@
+
+OPEN ISSUES:
+------------
+
+
+Try to use properties with getters and setters
+E.g. as in
+class Contact(object):
+
+    def __init__(self, first_name=None, last_name=None, 
+                 display_name=None, email=None):
+        self.first_name = first_name
+        self.last_name = last_name
+        self.display_name = display_name
+        self.email = email
+
+    def print_info(self):
+        print self.display_name, "<" + self.email + ">"            
+
+    def set_email(self, value):
+        if '@' not in value:
+            raise Exception("This doesn't look like an email address.")
+        self._email = value
+
+    def get_email(self):
+        return self._email
+
+    email = property(get_email, set_email)
+----------------------------------------------------
+
+Issue:  File function (e.g. boundary) should give an error message (or set a defoult) if underlying netcdf has missing values. Make a unit test.
+Maybe the underlying code should detect NaNs.
+
+
+Issue: finaltime should be renamed 'duration'
+
+Issue (interpolate_sww (new functionality): Give a warning if points
+ are outside the mesh.
+Importance: Mid
+Comment (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.
+Who: DSG
+
+Issue (interpolate_sww (new functionality)): Be able to specify at
+what times data is needed e.g. input a start, finish and period.
+Importance: low
+
+Issue (least_squares): Do a bug report to sci py
+Importance: low to don't do
+Who: Stephen
+
+Issue (least_squares): Runs out of memory with e.g 6 million points and 
+300,000 basis functions.
+Importance: Mid 
+Suggested Action: Look at blocking strategies
+
+Issue (least_squares): Code to not product D matrix (if it isn't
+needed) isn't working.
+Importance: Mid - low
+Suggested Action: Fix
+
+Issue: Parameters specified in config.py must be tranferred to C code 
+and it should be possible to override them when setting up a domain.
+Background: N/A
+Importance: Mid
+Suggested Action: 
+	  1: Let domain read the config file to provide default values.
+	  2: Write getters and setters to override them.
+	  3: Pass pertinent values from domain into the c-extensions.
+Status: Largely resolved. action 2 ongoing
+
+
+Issue: Checkpointing - needs to respect changes in script.
+Importance: Low
+
+
+Issue: Adding unknown quantities cause a KeyError.  Known quantities
+are given in the list other_quantities, in shallow_water.  Do we want
+unknown quantities attached to domain in the future?  If so, it
+shouldn't cause a key error.
+Importance: low
+Suggested Action: 
+Who: OLE
+
+
+Issue: The water level can not be less than the bed elevation, as an
+assert.  
+Importance: Medium
+Suggested Action: How about having the functionality that water levels are set
+to == the bed elevation, if level < bed elevation.  This will make
+setting things up easier.  A following suggestion is don't initialise
+quantities without values, eg in quantity __init__. 
+Status: resolved.  Needs unit test though
+
+Issue: Transmissive boundary condition can cause unphysical momentums if
+material is not moving out of the domain.
+Importance: Med
+Suggested Action: Comment in transmissive boundary code.  look into
+sponge boundary.
+
+
+
+	
+CLOSED ISSUES:
+--------------
+
+Issue (least_squares): The current is-a-point-in-a-triangle algorithm
+is slow if a point is outside of the mesh.  It will check each
+triangle 3 times to see if the point is in that triangle.
+Importance: low
+Suggested Action: Form a polygon of the mesh boundary (by constructing
+the neigbour structure) and throw out points not in the polygon (this
+algorithm is there).
+Who: DSG
+Comment (OLE): I have done this (I think)
+
+
+Issue: Get the reservoir example working for the 'new' pyvolution
+Issue: Mid
+Who: DSG
+Status: Done  
+
+Issue (least_squares): datapoints outside the mesh are not used in
+least squares.
+Importance: Mid - low
+Suggested Action: Talk to Steve about including them
+Status: Talked to Steve, it was dicided not to use them
+
+Issue (least_squares): Do a test that the number of attribute titles and number
+of attributes match
+Importance: Mid
+Who: DSG
+Status: closed, this is checked when loading points files now
+
+Issue (Malpasset example):
+Pmesh no longer takes care of attributes but still accepts xya with attributes.
+
+Background:
+Chris imported xya file into pmesh. It contained x, y, bed elevation
+The tsh thus generated did add bed elevation, but didn't produce the proper 
+tsh file.
+
+Importance: mid
+Suggested actions: Either spit out an error message or generate a proper 
+tsh-header.
+Status:  The story of this is wrong.  Pmesh does produce a proper tsh file
+
+Issue: Second order limiters may cause numerical problems 
+manifesting themselves as QNAN (Quiet NANs_ or INF)
+Background: The second order gradient limiter is not robust enough - 
+especially with shallow water depths. Heighs and momentum are 
+limited independently and high speeds may result.
+Importance: Mid
+Suggested Action: 
+	  1: Try to incorporate a weighted averaging process between 
+	  shallow depths and large depths as in the first order scheme.
+	  2: Look at limiting height and momentum together, by keeping 
+	  an eye on the speeds 
+	  (e.g make speed constant across a volume and recompute momentum)
+	  3: Catch errors resulting from these instabilities as early 
+	  as possibly and produce and throw an appropriate exception
+	  4: Make small example that reveals this bug.
+Status: 1 succesfully implemented by Ole and Stephen 12/5/4.
+	2 Didn't work but using the weighted average for momentums seemed 
+	to work well.
+	3 and 4 not done.
+	June 2004: With the new limiter (item 1 and 2) 3 and 4 are probably 
+	not necessary now.
+
+
+
+Issue: Tags for specifying boundary conditions should be arbitrary
+Background: Domain has the functionality for using arbitrary keys
+when associating boundary objects to boundary values.
+Triangle, which pmesh is based on, uses integers only.
+It would be nice to have mnemonic names for boundaries throughout.
+Importance: Mid
+Status: Duncan resolved this in early June.
+
+
+
+
+
+Issue: Checkpointing - needs to always back one timestep up in 
+       case output wasn't written
+Background:
+       Data at latest checkpoint may be incomplete or even corrupted 
+       depending on when and how program was stopped.
+Importance: Mid
+Suggested Action: Always try second latest checkpoint first.
+Status: Done (Ole 14/5/4)
+              
+
+		
+Issue: interpolated_conserved_quantities in shallow_water.py
+Background: Was computed by flux functions and used by bed_slope.
+It turns out to be unneccessary as conserved quantities at centroid works just as well.
+Importance: Mid
+Suggested Action: Get rid of it everywhere
+Status: Was done when whole things was refactored in April 2004 by OMN
+
+
+Issue: Exceptions thrown by Python functions called from C don't get caughts
+Background: Have a look at gravity in shallow_water. It calls a C function, gradient, which may throw an exception if arguments are scalars.
+However, it doesn't get caught becuase gravity itself is called from within C
+Importance: Low
+Suggested Action: Have a look at the calling convention from C (David Beasley)
+Status: Unresolved - but no longer relevant as we don't call Python from C
+
Index: undation/pyvolution/wiki/long_term_design.txt
===================================================================
--- /inundation/pyvolution/wiki/long_term_design.txt	(revision 3465)
+++ 	(revision )
@@ -1,18 +1,0 @@
-
-
-Make origins instances of a georeference class 
-(like class point from GPScape).
-It would conatin multiple representation, projections and code for adding itself to e.g. NetCDF files.
- 	
-
-	
-	
-Tagged regions, edges etc should be done in terms of set-theory,
-so that each tag maps e.g. to a list of indices.	
-
-
-#DONE AND OBSOLETE	
-#Migrate code from domain.py so as much as possible is
-#done in terms of the consecutive arrays. 
-#We can then destroy the Python objects after everything has been setup,
-#in order to conserved memory.
Index: undation/pyvolution/wiki/pyvolution_SRS.txt
===================================================================
--- /inundation/pyvolution/wiki/pyvolution_SRS.txt	(revision 3465)
+++ 	(revision )
@@ -1,50 +1,0 @@
-Pyvolution Software Requirements Specification
-By everyone
-
-INTRODUCTION
-
-
-OVERALL DESCRIPTION 
-
-
-
-DEFINITIONS
-
-REQUIREMENT SECTION
-
-Introduction
-
-Each requirement has a priority (e.g. P1).  The priority number is
-given at the end of each requirement.
-
-Requirements
-- The information from a .tsh file shall be converted to a data
-structure that pyvolution understands.
- - The vertex attribute information will be converted to field values
- and they shall be accessable using the attribute tag.
-
-- Volumes will have a region tag. This shall be implemented using the
-  principals of set theory.
-
-- For a given region and a given field value/conserved quantity apply
-  a supplied function with parameters (x,y and the old value
-  of the field value/conserved quantity).  
-  - Also need a flag specifying if the vertex or centroid values are
-  being set.(Rational - will can be used to avoid discontinuites/ or
-  create them, depending on what is required.)
-  Example calls: domain.set_field_values('bed_elevation', 
-		   			 f, location='vertices')
-					 
-  Example calls: domain.set_conserved_quantities('stage', f, 
-					         location='centroid')
-					 				 
-					
-					
-  where f has the form
-  def f(x, y, old_value):
-      ...
-      return z										 
- 
- 
-CVS INFORMATION FOR THIS FILE
-$Source: /var/lib/cvs/grohm/wiki/pyvolution_SRS.txt,v $
