Index: /trunk/anuga_validation/validation_tests/steady_flow_on_parabolic_obstruction.py
===================================================================
--- /trunk/anuga_validation/validation_tests/steady_flow_on_parabolic_obstruction.py	(revision 8243)
+++ /trunk/anuga_validation/validation_tests/steady_flow_on_parabolic_obstruction.py	(revision 8243)
@@ -0,0 +1,120 @@
+"""Simple water flow example using ANUGA
+
+Steady flow over a parabolic obstruction.
+"""
+
+#------------------------------------------------------------------------------
+# Import necessary modules
+#------------------------------------------------------------------------------
+import sys
+import anuga
+from math import cos
+from numpy import zeros, float
+from time import localtime, strftime, gmtime
+
+
+#-------------------------------------------------------------------------------
+# Copy scripts to time stamped output directory and capture screen
+# output to file
+#-------------------------------------------------------------------------------
+time = strftime('%Y%m%d_%H%M%S',localtime())
+
+output_dir = 'steady_flow_'+time
+output_file = 'steady_flow'
+
+#anuga.copy_code_files(output_dir,__file__)
+#start_screen_catcher(output_dir+'_')
+
+
+#------------------------------------------------------------------------------
+# Setup domain
+#------------------------------------------------------------------------------
+dx = 0.125
+dy = dx
+L = 25.
+W = 10*dx
+
+# structured mesh
+points, vertices, boundary = anuga.rectangular_cross(int(L/dx), int(W/dy), L, W, (0.0, -W/2))
+
+domain = anuga.Domain(points, vertices, boundary) 
+domain.set_name(output_file)                
+domain.set_datadir(output_dir)  
+
+#------------------------------------------------------------------------------
+# Setup Algorithm
+#------------------------------------------------------------------------------
+domain.set_timestepping_method('rk2')
+domain.set_default_order(2)
+
+print domain.get_timestepping_method()
+
+domain.use_edge_limiter = True
+domain.tight_slope_limiters = True
+domain.use_centroid_velocities = False
+
+domain.CFL = 1.0
+
+domain.beta_w      = 0.6
+domain.beta_uh     = 0.6
+domain.beta_vh     = 0.6
+
+
+#------------------------------------------------------------------------------
+# Setup initial conditions
+#------------------------------------------------------------------------------
+h0 = 0.42
+h1 = 0.33
+def elevation(x,y):
+    z_b = zeros(len(x))
+    for i in range(len(x)):
+        if (x[i] >= 8.0) & (x[i] <= 12.0):
+            z_b[i] = 0.2 - 0.05*(x[i]-10.0)**2.0
+        else:
+            z_b[i] = 0.0 
+    return z_b
+domain.set_quantity('elevation',elevation)
+domain.set_quantity('friction', 0.0)
+
+def stage_initial(x,y):
+    z = zeros(len(x), float)
+    for i in range(len(x)):
+        z[i] = h1
+    return z
+domain.set_quantity('stage', stage_initial)
+
+#-----------------------------------------------------------------------------
+# Setup boundary conditions
+#------------------------------------------------------------------------------
+from math import sin, pi, exp
+Br = anuga.Reflective_boundary(domain)      # Solid reflective wall
+Bt = anuga.Transmissive_boundary(domain)    # Continue all values on boundary 
+BdL = anuga.Dirichlet_boundary([h0,  0.18,  0.])    # Constant boundary values
+BdR = anuga.Dirichlet_boundary([h1,  0.18,  0.])    # Constant boundary values
+
+# Associate boundary tags with boundary objects
+domain.set_boundary({'left': BdL, 'right': BdR, 'top': Br, 'bottom': Br})
+
+
+#===============================================================================
+##from anuga.visualiser import RealtimeVisualiser
+##vis = RealtimeVisualiser(domain)
+##vis.render_quantity_height("stage", zScale =h0*500, dynamic=True)
+##vis.colour_height_quantity('stage', (0.0, 0.5, 1.0))
+##vis.start()
+#===============================================================================
+
+
+#------------------------------------------------------------------------------
+# Evolve system through time
+#------------------------------------------------------------------------------
+for t in domain.evolve(yieldstep = 1.0, finaltime = 80.):
+    #print domain.timestepping_statistics(track_speeds=True)
+    print domain.timestepping_statistics()
+    #vis.update()
+
+
+#test against know data
+    
+#vis.evolveFinished()
+
