- Timestamp:
- Oct 24, 2006, 12:59:08 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
anuga_core/source/anuga/shallow_water/test_data_manager.py
r3820 r3846 162 162 from Scientific.IO.NetCDF import NetCDFFile 163 163 164 self.domain. filename = 'datatest' + str(id(self))165 self.domain.format = 'sww' 164 self.domain.set_name('datatest' + str(id(self))) 165 self.domain.format = 'sww' #Remove?? 166 166 self.domain.smooth = False 167 167 … … 209 209 from Scientific.IO.NetCDF import NetCDFFile 210 210 211 self.domain. filename = 'datatest' + str(id(self))211 self.domain.set_name('datatest' + str(id(self))) 212 212 self.domain.format = 'sww' 213 213 self.domain.smooth = True … … 266 266 from Scientific.IO.NetCDF import NetCDFFile 267 267 268 self.domain. filename = 'datatest' + str(id(self))268 self.domain.set_name('datatest' + str(id(self))) 269 269 self.domain.format = 'sww' 270 270 self.domain.smooth = True … … 321 321 from Scientific.IO.NetCDF import NetCDFFile 322 322 323 self.domain. filename = 'datatest' + str(id(self))323 self.domain.set_name('datatest' + str(id(self))) 324 324 self.domain.format = 'sww' 325 325 self.domain.smooth = True … … 376 376 from Scientific.IO.NetCDF import NetCDFFile 377 377 378 self.domain. filename = 'datatest' + str(id(self))378 self.domain.set_name('datatest' + str(id(self))) 379 379 self.domain.format = 'sww' 380 380 self.domain.smooth = True … … 432 432 from Scientific.IO.NetCDF import NetCDFFile 433 433 434 self.domain. filename = 'synctest'434 self.domain.set_name('synctest') 435 435 self.domain.format = 'sww' 436 436 self.domain.smooth = False … … 467 467 from Scientific.IO.NetCDF import NetCDFFile 468 468 469 self.domain. filename = 'datatest' + str(id(self))469 self.domain.set_name('datatest' + str(id(self))) 470 470 self.domain.format = 'sww' 471 471 self.domain.smooth = True … … 515 515 from Scientific.IO.NetCDF import NetCDFFile 516 516 517 self.domain. filename = 'datatest' + str(id(self))517 self.domain.set_name('datatest' + str(id(self))) 518 518 self.domain.format = 'sww' 519 519 self.domain.smooth = True … … 1136 1136 1137 1137 #Setup 1138 self.domain. filename = 'datatest'1139 1140 prjfile = self.domain. filename+ '_elevation.prj'1141 ascfile = self.domain. filename+ '_elevation.asc'1142 swwfile = self.domain. filename+ '.sww'1138 self.domain.set_name('datatest') 1139 1140 prjfile = self.domain.get_name() + '_elevation.prj' 1141 ascfile = self.domain.get_name() + '_elevation.asc' 1142 swwfile = self.domain.get_name() + '.sww' 1143 1143 1144 1144 self.domain.set_datadir('.') … … 1171 1171 1172 1172 #Export to ascii/prj files 1173 sww2dem(self.domain. filename,1173 sww2dem(self.domain.get_name(), 1174 1174 quantity = 'elevation', 1175 1175 cellsize = cellsize, … … 1303 1303 domain.default_order = 2 1304 1304 1305 domain. filename = 'datatest'1306 1307 prjfile = domain. filename+ '_elevation.prj'1308 ascfile = domain. filename+ '_elevation.asc'1309 swwfile = domain. filename+ '.sww'1305 domain.set_name('datatest') 1306 1307 prjfile = domain.get_name() + '_elevation.prj' 1308 ascfile = domain.get_name() + '_elevation.asc' 1309 swwfile = domain.get_name() + '.sww' 1310 1310 1311 1311 domain.set_datadir('.') … … 1347 1347 1348 1348 #Export to ascii/prj files 1349 sww2dem(domain. filename,1349 sww2dem(domain.get_name(), 1350 1350 quantity = 'elevation', 1351 1351 cellsize = cellsize, … … 1487 1487 domain.default_order = 2 1488 1488 1489 domain. filename = 'datatest'1490 1491 prjfile = domain. filename+ '_elevation.prj'1492 ascfile = domain. filename+ '_elevation.asc'1493 swwfile = domain. filename+ '.sww'1489 domain.set_name('datatest') 1490 1491 prjfile = domain.get_name() + '_elevation.prj' 1492 ascfile = domain.get_name() + '_elevation.asc' 1493 swwfile = domain.get_name() + '.sww' 1494 1494 1495 1495 domain.set_datadir('.') … … 1531 1531 1532 1532 #Export to ascii/prj files 1533 sww2dem(domain. filename,1533 sww2dem(domain.get_name(), 1534 1534 quantity = 'elevation', 1535 1535 cellsize = cellsize, … … 1641 1641 1642 1642 #Setup 1643 self.domain. filename = 'datatest'1644 1645 prjfile = self.domain. filename+ '_stage.prj'1646 ascfile = self.domain. filename+ '_stage.asc'1647 swwfile = self.domain. filename+ '.sww'1643 self.domain.set_name('datatest') 1644 1645 prjfile = self.domain.get_name() + '_stage.prj' 1646 ascfile = self.domain.get_name() + '_stage.asc' 1647 swwfile = self.domain.get_name() + '.sww' 1648 1648 1649 1649 self.domain.set_datadir('.') … … 1677 1677 1678 1678 #Export to ascii/prj files 1679 sww2dem(self.domain. filename,1679 sww2dem(self.domain.get_name(), 1680 1680 quantity = 'stage', 1681 1681 cellsize = cellsize, 1682 1682 reduction = min, 1683 1683 format = 'asc') 1684 1684 1685 1685 … … 1750 1750 1751 1751 #Setup 1752 self.domain. filename = 'datatest'1753 1754 prjfile = self.domain. filename+ '_depth.prj'1755 ascfile = self.domain. filename+ '_depth.asc'1756 swwfile = self.domain. filename+ '.sww'1752 self.domain.set_name('datatest') 1753 1754 prjfile = self.domain.get_name() + '_depth.prj' 1755 ascfile = self.domain.get_name() + '_depth.asc' 1756 swwfile = self.domain.get_name() + '.sww' 1757 1757 1758 1758 self.domain.set_datadir('.') … … 1787 1787 1788 1788 #Export to ascii/prj files 1789 sww2dem(self.domain. filename,1789 sww2dem(self.domain.get_name(), 1790 1790 basename_out = 'datatest_depth', 1791 1791 quantity = 'stage - elevation', 1792 1792 cellsize = cellsize, 1793 1793 reduction = min, 1794 1794 format = 'asc', 1795 1795 verbose = False) 1796 1796 … … 1905 1905 domain.distribute_to_vertices_and_edges() 1906 1906 1907 domain. filename = 'datatest'1908 1909 prjfile = domain. filename+ '_elevation.prj'1910 ascfile = domain. filename+ '_elevation.asc'1911 swwfile = domain. filename+ '.sww'1907 domain.set_name('datatest') 1908 1909 prjfile = domain.get_name() + '_elevation.prj' 1910 ascfile = domain.get_name() + '_elevation.asc' 1911 swwfile = domain.get_name() + '.sww' 1912 1912 1913 1913 domain.set_datadir('.') … … 1939 1939 1940 1940 #Export to ascii/prj files 1941 sww2dem(domain. filename,1941 sww2dem(domain.get_name(), 1942 1942 quantity = 'elevation', 1943 1943 cellsize = cellsize, 1944 1944 verbose = False, 1945 1945 format = 'asc') 1946 1946 1947 1947 … … 2011 2011 2012 2012 #Setup 2013 self.domain. filename = 'datatest'2014 2015 headerfile = self.domain. filename+ '.ers'2016 swwfile = self.domain. filename+ '.sww'2013 self.domain.set_name('datatest') 2014 2015 headerfile = self.domain.get_name() + '.ers' 2016 swwfile = self.domain.get_name() + '.sww' 2017 2017 2018 2018 self.domain.set_datadir('.') … … 2045 2045 2046 2046 #Export to ers files 2047 sww2dem(self.domain. filename,2047 sww2dem(self.domain.get_name(), 2048 2048 quantity = 'elevation', 2049 2049 cellsize = cellsize, 2050 2050 NODATA_value = NODATA_value, 2051 2051 verbose = False, 2052 2052 format = 'ers') 2053 2053 2054 2054 #Check header data 2055 2056 2057 header = read_ermapper_header(self.domain.filename+ '_elevation.ers')2055 from ermapper_grids import read_ermapper_header, read_ermapper_data 2056 2057 header = read_ermapper_header(self.domain.get_name() + '_elevation.ers') 2058 2058 #print header 2059 2059 assert header['projection'].lower() == '"utm-56"' … … 2068 2068 assert int(header['nrofcellsperline']) == 5 2069 2069 assert int(header['nullcellvalue']) == NODATA_value 2070 2070 #FIXME - there is more in the header 2071 2071 2072 2072 2073 2073 #Check grid data 2074 grid = read_ermapper_data(self.domain. filename+ '_elevation')2075 2076 2077 2078 2079 2080 2081 2074 grid = read_ermapper_data(self.domain.get_name() + '_elevation') 2075 2076 #FIXME (Ole): Why is this the desired reference grid for -x-y? 2077 ref_grid = [NODATA_value, NODATA_value, NODATA_value, NODATA_value, NODATA_value, 2078 -1, -1.25, -1.5, -1.75, -2.0, 2079 -0.75, -1.0, -1.25, -1.5, -1.75, 2080 -0.5, -0.75, -1.0, -1.25, -1.5, 2081 -0.25, -0.5, -0.75, -1.0, -1.25] 2082 2082 2083 2083 2084 2084 #print grid 2085 2085 assert allclose(grid, ref_grid) 2086 2086 2087 2087 fid.close() … … 2091 2091 #Done (Ole) - it was because sww2ers didn't close it's sww file 2092 2092 os.remove(sww.filename) 2093 os.remove(self.domain. filename+ '_elevation')2094 os.remove(self.domain. filename+ '_elevation.ers')2093 os.remove(self.domain.get_name() + '_elevation') 2094 os.remove(self.domain.get_name() + '_elevation.ers') 2095 2095 2096 2096 … … 2110 2110 2111 2111 # Setup 2112 self.domain. filename = 'datatest'2113 2114 ptsfile = self.domain. filename+ '_elevation.pts'2115 swwfile = self.domain. filename+ '.sww'2112 self.domain.set_name('datatest') 2113 2114 ptsfile = self.domain.get_name() + '_elevation.pts' 2115 swwfile = self.domain.get_name() + '.sww' 2116 2116 2117 2117 self.domain.set_datadir('.') … … 2144 2144 # Invoke interpolation for vertex points 2145 2145 points = concatenate( (x[:,NewAxis],y[:,NewAxis]), axis=1 ) 2146 sww2pts(self.domain. filename,2146 sww2pts(self.domain.get_name(), 2147 2147 quantity = 'elevation', 2148 2148 data_points = points, … … 2153 2153 #print 'P', point_values 2154 2154 #print 'Ref', ref_point_values 2155 2155 assert allclose(point_values, ref_point_values) 2156 2156 2157 2157 … … 2160 2160 points = self.domain.get_centroid_coordinates() 2161 2161 #print points 2162 sww2pts(self.domain. filename,2162 sww2pts(self.domain.get_name(), 2163 2163 quantity = 'elevation', 2164 2164 data_points = points, … … 2171 2171 #print 'P', point_values 2172 2172 #print 'Ref', ref_point_values 2173 2173 assert allclose(point_values, ref_point_values) 2174 2174 2175 2175 … … 2233 2233 #Check first value 2234 2234 stage = fid.variables['stage'][:] 2235 2236 2237 2238 2235 xmomentum = fid.variables['xmomentum'][:] 2236 ymomentum = fid.variables['ymomentum'][:] 2237 2238 #print ymomentum 2239 2239 2240 2240 assert allclose(stage[0,0], first_value/100) #Meters … … 2351 2351 2352 2352 for fid in [fid1,fid2,fid3]: 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2353 fid.createDimension(long_name,nx) 2354 fid.createVariable(long_name,'d',(long_name,)) 2355 fid.variables[long_name].point_spacing='uneven' 2356 fid.variables[long_name].units='degrees_east' 2357 fid.variables[long_name].assignValue(h1_list) 2358 2359 fid.createDimension(lat_name,ny) 2360 fid.createVariable(lat_name,'d',(lat_name,)) 2361 fid.variables[lat_name].point_spacing='uneven' 2362 fid.variables[lat_name].units='degrees_north' 2363 fid.variables[lat_name].assignValue(h2_list) 2364 2365 fid.createDimension(time_name,2) 2366 fid.createVariable(time_name,'d',(time_name,)) 2367 fid.variables[time_name].point_spacing='uneven' 2368 fid.variables[time_name].units='seconds' 2369 fid.variables[time_name].assignValue([0.,1.]) 2370 if fid == fid3: break 2371 2371 2372 2372 2373 2373 for fid in [fid4]: 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2374 fid.createDimension(long_name,nx) 2375 fid.createVariable(long_name,'d',(long_name,)) 2376 fid.variables[long_name].point_spacing='uneven' 2377 fid.variables[long_name].units='degrees_east' 2378 fid.variables[long_name].assignValue(h1_list) 2379 2380 fid.createDimension(lat_name,ny) 2381 fid.createVariable(lat_name,'d',(lat_name,)) 2382 fid.variables[lat_name].point_spacing='uneven' 2383 fid.variables[lat_name].units='degrees_north' 2384 fid.variables[lat_name].assignValue(h2_list) 2385 2385 2386 2386 name = {} … … 2515 2515 2516 2516 for fid in [fid1,fid2,fid3]: 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2517 fid.createDimension(long_name,nx) 2518 fid.createVariable(long_name,'d',(long_name,)) 2519 fid.variables[long_name].point_spacing='uneven' 2520 fid.variables[long_name].units='degrees_east' 2521 fid.variables[long_name].assignValue(h1_list) 2522 2523 fid.createDimension(lat_name,ny) 2524 fid.createVariable(lat_name,'d',(lat_name,)) 2525 fid.variables[lat_name].point_spacing='uneven' 2526 fid.variables[lat_name].units='degrees_north' 2527 fid.variables[lat_name].assignValue(h2_list) 2528 2529 fid.createDimension(time_name,2) 2530 fid.createVariable(time_name,'d',(time_name,)) 2531 fid.variables[time_name].point_spacing='uneven' 2532 fid.variables[time_name].units='seconds' 2533 fid.variables[time_name].assignValue([0.,1.]) 2534 if fid == fid3: break 2535 2535 2536 2536 2537 2537 for fid in [fid4]: 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2538 fid.createDimension(long_name,nx) 2539 fid.createVariable(long_name,'d',(long_name,)) 2540 fid.variables[long_name].point_spacing='uneven' 2541 fid.variables[long_name].units='degrees_east' 2542 fid.variables[long_name].assignValue(h1_list) 2543 2544 fid.createDimension(lat_name,ny) 2545 fid.createVariable(lat_name,'d',(lat_name,)) 2546 fid.variables[lat_name].point_spacing='uneven' 2547 fid.variables[lat_name].units='degrees_north' 2548 fid.variables[lat_name].assignValue(h2_list) 2549 2549 2550 2550 name = {} … … 2575 2575 2576 2576 for fid in [fid4]: 2577 2577 fid.createVariable(name[fid],'d',(lat_name,long_name)) 2578 2578 fid.variables[name[fid]].point_spacing='uneven' 2579 2579 fid.variables[name[fid]].units=units[fid] … … 2677 2677 from Scientific.IO.NetCDF import NetCDFFile 2678 2678 2679 self.domain. filename = 'datatest' + str(id(self))2679 self.domain.set_name('datatest' + str(id(self))) 2680 2680 self.domain.format = 'sww' 2681 2681 self.domain.smooth = True … … 2695 2695 sww.store_timestep('stage') 2696 2696 2697 file_and_extension_name = self.domain. filename+ ".sww"2697 file_and_extension_name = self.domain.get_name() + ".sww" 2698 2698 #print "file_and_extension_name",file_and_extension_name 2699 2699 [xmin, xmax, ymin, ymax, stagemin, stagemax] = \ … … 2731 2731 domain.visualise = False 2732 2732 domain.store = True 2733 domain. filename = 'bedslope'2733 domain.set_name('bedslope') 2734 2734 domain.default_order=2 2735 2735 #Bed-slope and friction … … 2766 2766 import os 2767 2767 2768 filename = domain.datadir +os.sep+domain.filename+'.sww'2768 filename = domain.datadir + os.sep + domain.get_name() + '.sww' 2769 2769 domain2 = sww2domain(filename,None,fail_if_NaN=False,verbose = False) 2770 2770 #points, vertices, boundary = rectangular(15,15) … … 2774 2774 ################### 2775 2775 2776 #os.remove(domain. filename+ '.sww')2776 #os.remove(domain.get_name() + '.sww') 2777 2777 os.remove(filename) 2778 2778 … … 2856 2856 2857 2857 def test_sww2domain2(self): 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2858 ################################################################## 2859 #Same as previous test, but this checks how NaNs are handled. 2860 ################################################################## 2861 2862 2863 from mesh_factory import rectangular 2864 from Numeric import array 2865 2866 #Create basic mesh 2867 points, vertices, boundary = rectangular(2,2) 2868 2869 #Create shallow water domain 2870 domain = Domain(points, vertices, boundary) 2871 domain.smooth = False 2872 domain.visualise = False 2873 domain.store = True 2874 domain.set_name('test_file') 2875 2875 domain.set_datadir('.') 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2876 domain.default_order=2 2877 domain.quantities_to_be_stored=['stage'] 2878 2879 domain.set_quantity('elevation', lambda x,y: -x/3) 2880 domain.set_quantity('friction', 0.1) 2881 2882 from math import sin, pi 2883 Br = Reflective_boundary(domain) 2884 Bt = Transmissive_boundary(domain) 2885 Bd = Dirichlet_boundary([0.2,0.,0.]) 2886 Bw = Time_boundary(domain=domain, 2887 f=lambda t: [(0.1*sin(t*2*pi)), 0.0, 0.0]) 2888 2889 domain.set_boundary({'left': Bd, 'right': Br, 'top': Br, 'bottom': Br}) 2890 2891 h = 0.05 2892 elevation = domain.quantities['elevation'].vertex_values 2893 domain.set_quantity('stage', elevation + h) 2894 2895 domain.check_integrity() 2896 2897 for t in domain.evolve(yieldstep = 1, finaltime = 2.0): 2898 pass 2899 #domain.write_time() 2900 2900 2901 2901 2902 2902 2903 2903 ################################## 2904 2904 #Import the file as a new domain 2905 2905 ################################## 2906 2907 2906 from data_manager import sww2domain 2907 from Numeric import allclose 2908 2908 import os 2909 2909 2910 filename = domain.datadir+os.sep+domain.filename+'.sww'2911 2912 2913 2914 2915 2916 2917 2918 2910 filename = domain.datadir + os.sep + domain.get_name() + '.sww' 2911 2912 #Fail because NaNs are present 2913 try: 2914 domain2 = sww2domain(filename,boundary,fail_if_NaN=True,verbose=False) 2915 except: 2916 #Now import it, filling NaNs to be 0 2917 filler = 0 2918 domain2 = sww2domain(filename,None,fail_if_NaN=False,NaN_filler = filler,verbose=False) 2919 2919 2920 2920 #Clean up … … 2926 2926 'vertex_coordinates'] 2927 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2928 for quantity in ['elevation']+domain.quantities_to_be_stored: 2929 bits.append('get_quantity("%s").get_integral()' %quantity) 2930 bits.append('get_quantity("%s").get_values()' %quantity) 2931 2932 for bit in bits: 2933 # print 'testing that domain.'+bit+' has been restored' 2934 assert allclose(eval('domain.'+bit),eval('domain2.'+bit)) 2935 2936 assert max(max(domain2.get_quantity('xmomentum').get_values()))==filler 2937 assert min(min(domain2.get_quantity('xmomentum').get_values()))==filler 2938 assert max(max(domain2.get_quantity('ymomentum').get_values()))==filler 2939 assert min(min(domain2.get_quantity('ymomentum').get_values()))==filler 2940 2940 2941 2941 2942 2942 2943 2943 #def test_weed(self): 2944 2944 from data_manager import weed 2945 2945 2946 2946 coordinates1 = [[0.,0.],[1.,0.],[1.,1.],[1.,0.],[2.,0.],[1.,1.]] … … 2965 2965 #FIXME This fails - smooth makes the comparism too hard for allclose 2966 2966 def ztest_sww2domain3(self): 2967 2968 2969 2970 2971 2972 2967 ################################################ 2968 #DOMAIN.SMOOTH = TRUE !!!!!!!!!!!!!!!!!!!!!!!!!! 2969 ################################################ 2970 from mesh_factory import rectangular 2971 from Numeric import array 2972 #Create basic mesh 2973 2973 2974 2974 yiel=0.01 2975 2976 2977 2978 2975 points, vertices, boundary = rectangular(10,10) 2976 2977 #Create shallow water domain 2978 domain = Domain(points, vertices, boundary) 2979 2979 domain.geo_reference = Geo_reference(56,11,11) 2980 2981 2982 2983 domain.filename = 'bedslope' 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 2980 domain.smooth = True 2981 domain.visualise = False 2982 domain.store = True 2983 domain.set_name('bedslope') 2984 domain.default_order=2 2985 #Bed-slope and friction 2986 domain.set_quantity('elevation', lambda x,y: -x/3) 2987 domain.set_quantity('friction', 0.1) 2988 # Boundary conditions 2989 from math import sin, pi 2990 Br = Reflective_boundary(domain) 2991 Bt = Transmissive_boundary(domain) 2992 Bd = Dirichlet_boundary([0.2,0.,0.]) 2993 Bw = Time_boundary(domain=domain, 2994 f=lambda t: [(0.1*sin(t*2*pi)), 0.0, 0.0]) 2995 2996 domain.set_boundary({'left': Bd, 'right': Bd, 'top': Bd, 'bottom': Bd}) 2997 2998 domain.quantities_to_be_stored.extend(['xmomentum','ymomentum']) 2999 #Initial condition 3000 h = 0.05 3001 elevation = domain.quantities['elevation'].vertex_values 3002 domain.set_quantity('stage', elevation + h) 3003 3004 3005 domain.check_integrity() 3006 #Evolution 3007 for t in domain.evolve(yieldstep = yiel, finaltime = 0.05): 3008 # domain.write_time() 3009 pass 3010 3011 3012 ########################################## 3013 #Import the example's file as a new domain 3014 ########################################## 3015 from data_manager import sww2domain 3016 from Numeric import allclose 3017 3017 import os 3018 3018 3019 filename = domain.datadir+os.sep+domain.filename+'.sww'3020 3021 3019 filename = domain.datadir + os.sep + domain.get_name() + '.sww' 3020 domain2 = sww2domain(filename,None,fail_if_NaN=False,verbose = False) 3021 #points, vertices, boundary = rectangular(15,15) 3022 3022 #domain2.boundary = boundary 3023 3023 ################### 3024 3024 ##NOW TEST IT!!! 3025 3025 ################### 3026 3026 3027 os.remove(domain. filename+ '.sww')3027 os.remove(domain.get_name() + '.sww') 3028 3028 3029 3029 #FIXME smooth domain so that they can be compared 3030 3030 3031 3031 3032 3033 3034 3035 3036 3037 3038 3032 bits = []#'vertex_coordinates'] 3033 for quantity in ['elevation']+domain.quantities_to_be_stored: 3034 bits.append('quantities["%s"].get_integral()'%quantity) 3035 3036 3037 for bit in bits: 3038 #print 'testing that domain.'+bit+' has been restored' 3039 3039 #print bit 3040 3040 #print 'done' 3041 3041 #print ('domain.'+bit), eval('domain.'+bit) 3042 3042 #print ('domain2.'+bit), eval('domain2.'+bit) 3043 3043 assert allclose(eval('domain.'+bit),eval('domain2.'+bit),rtol=1.0e-1,atol=1.e-3) 3044 3044 pass 3045 3045 … … 3049 3049 visualise = False 3050 3050 visualise = True 3051 3051 domain.visualise = visualise 3052 3052 domain.time = 0. 3053 3053 from time import sleep … … 3055 3055 final = .5 3056 3056 domain.set_quantity('friction', 0.1) 3057 3058 3059 3060 3057 domain.store = False 3058 domain.set_boundary({'left': Bd, 'right': Bd, 'top': Bd, 'bottom': Br}) 3059 3060 for t in domain.evolve(yieldstep = yiel, finaltime = final): 3061 3061 if visualise: sleep(.03) 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3062 #domain.write_time() 3063 pass 3064 3065 domain2.smooth = True 3066 domain2.visualise = visualise 3067 domain2.store = False 3068 domain2.default_order=2 3069 domain2.set_quantity('friction', 0.1) 3070 #Bed-slope and friction 3071 # Boundary conditions 3072 3072 Bd2=Dirichlet_boundary([0.2,0.,0.]) 3073 3073 Br2 = Reflective_boundary(domain2) 3074 3074 domain2.boundary = domain.boundary 3075 3075 #print 'domain2.boundary' 3076 3076 #print domain2.boundary 3077 3077 domain2.set_boundary({'left': Bd2, 'right': Bd2, 'top': Bd2, 'bottom': Br2}) 3078 3078 #domain2.boundary = domain.boundary 3079 3080 3081 3082 3083 3079 #domain2.set_boundary({'exterior': Bd}) 3080 3081 domain2.check_integrity() 3082 3083 for t in domain2.evolve(yieldstep = yiel, finaltime = final): 3084 3084 if visualise: sleep(.03) 3085 3086 3085 #domain2.write_time() 3086 pass 3087 3087 3088 3088 ################### 3089 3089 ##NOW TEST IT!!! 3090 3090 ################## 3091 3091 3092 3092 print '><><><><>>' 3093 3094 3095 3096 3097 3098 3099 3093 bits = [ 'vertex_coordinates'] 3094 3095 for quantity in ['elevation','xmomentum','ymomentum']:#+domain.quantities_to_be_stored: 3096 #bits.append('quantities["%s"].get_integral()'%quantity) 3097 bits.append('get_quantity("%s").get_values()' %quantity) 3098 3099 for bit in bits: 3100 3100 print bit 3101 3101 assert allclose(eval('domain.'+bit),eval('domain2.'+bit)) 3102 3102 3103 3103 … … 3289 3289 from Scientific.IO.NetCDF import NetCDFFile 3290 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3291 # the memory optimised least squares 3292 # cellsize = 20, # this one seems to hang 3293 # cellsize = 200000, # Ran 1 test in 269.703s 3294 #Ran 1 test in 267.344s 3295 # cellsize = 20000, # Ran 1 test in 460.922s 3296 # cellsize = 2000 #Ran 1 test in 5340.250s 3297 # cellsize = 200 #this one seems to hang, building matirx A 3298 3299 # not optimised 3300 # seems to hang 3301 # cellsize = 2000 # Ran 1 test in 5334.563s 3302 3302 #Export to ascii/prj files 3303 3303 sww2dem('karratha_100m', … … 4675 4675 #Check first value 4676 4676 stage = fid.variables['stage'][:] 4677 4678 4679 4680 4677 xmomentum = fid.variables['xmomentum'][:] 4678 ymomentum = fid.variables['ymomentum'][:] 4679 4680 #print ymomentum 4681 4681 assert allclose(stage[0,0], e +tide) #Meters 4682 4682
Note: See TracChangeset
for help on using the changeset viewer.