Changeset 3845
- Timestamp:
- Oct 24, 2006, 12:54:50 PM (17 years ago)
- Location:
- anuga_validation/okushiri_2005
- Files:
-
- 4 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
anuga_validation/okushiri_2005/create_okushiri.py
r3786 r3845 74 74 #xya2pts(project.bathymetry_filename, verbose = True, 75 75 # z_func = lambda z: -z) 76 77 78 79 76 80 77 -
anuga_validation/okushiri_2005/extract_timeseries.py
r3636 r3845 1 """Read in tms file, interpolate at specified locations (ch 5,7,9) and compare 1 """Verify that simulation produced by ANUGA compares to published 2 validation timeseries ch5, ch7 and ch9 as well as the boundary timeseries. 3 4 RMS norm is printed and plots are produced. 2 5 """ 3 6 4 import sys 5 from os import sep 7 8 6 9 from anuga.caching import cache 7 10 8 sys.path.append('..'+sep+'..'+sep) 11 9 12 10 13 -
anuga_validation/okushiri_2005/project.py
r2229 r3845 1 """Common filenames for LWRU benchmark project 21 """Common filenames for Okushiri Island validation 2 2 """ 3 3 … … 6 6 mesh_filename = 'Benchmark_2.msh' 7 7 8 output_filename = 'okushiri.sww' 8 9 9 10 11 -
anuga_validation/okushiri_2005/run_okushiri.py
r3811 r3845 1 1 """Validation of the AnuGA implementation of the shallow water wave equation. 2 2 3 This script sets up LWRU2 benchmark with initial condition stated3 This script sets up Okushiri Island benchmark as published at the 4 4 5 See also 5 THE THIRD INTERNATIONAL WORKSHOP ON LONG-WAVE RUNUP MODELS 6 June 17-18 2004 7 Wrigley Marine Science Center 8 Catalina Island, California 9 http://www.cee.cornell.edu/longwave/ 6 10 11 12 The validation data was downloaded and made available in this directory 13 for convenience but the original data is available at 7 14 http://www.cee.cornell.edu/longwave/index.cfm?page=benchmark&problem=2 15 where a detailed description of the problem is also available. 8 16 9 Depth at western boundary is d = 13.5 cm 17 18 Run create_okushiri.py to process the boundary condition and build a the 19 mesh before running this script. 20 10 21 """ 11 22 12 23 # Module imports 13 from Numeric import array, zeros, Float, allclose14 15 24 from anuga.shallow_water import Domain 16 25 from anuga.shallow_water import Reflective_boundary … … 22 31 23 32 #------------------------- 24 # Create Domain 33 # Create Domain from mesh 25 34 #------------------------- 26 27 use_variable_mesh = True #Use large variable mesh generated by create_mesh.py 28 #use_variable_mesh = False #Use small structured mesh for speed 29 30 if use_variable_mesh is True: 31 print 'Creating domain from', project.mesh_filename 32 33 domain = Domain(project.mesh_filename, use_cache=True, verbose=True) 34 else: 35 print 'Creating regular from regular mesh' 36 N = 150 37 points, vertices, boundary = rectangular_cross(N, N/5*3, 38 len1=5.448, len2=3.402) 39 domain = Domain(points, vertices, boundary) 40 41 domain.set_name('okushiri_as2005_with_mxspd=0.1') 42 domain.set_default_order(2) 43 domain.set_minimum_storable_height(0.001) 44 #domain.set_maximum_allowed_speed(0) # The default in August 2005 45 domain.set_maximum_allowed_speed(0.1) # Allow a little runoff (0.1 is OK) 46 47 48 # Set old (pre Sep 2006) defaults for limiters 49 domain.beta_w = 0.9 50 domain.beta_w_dry = 0.9 51 domain.beta_uh = 0.9 52 domain.beta_uh_dry = 0.9 53 domain.beta_vh = 0.9 54 domain.beta_vh_dry = 0.9 55 56 domain.check_integrity() 57 print domain.statistics() 35 domain = Domain(project.mesh_filename, use_cache=True, verbose=True) 58 36 59 37 … … 64 42 domain.set_quantity('stage', 0.0) 65 43 domain.set_quantity('elevation', 66 filename=project.bathymetry_filename[:-4] + '.pts', 67 alpha=0.02, 68 verbose=True, 69 use_cache=True) 44 filename = project.bathymetry_filename[:-4] + '.pts', 45 alpha = 0.02, 46 verbose = True, 47 use_cache = True) 48 49 50 #------------------------- 51 # Domain parameters 52 #------------------------- 53 domain.set_name(project.output_filename) 54 domain.set_default_order(2) 55 domain.set_minimum_storable_height(0.001) 56 domain.set_maximum_allowed_speed(0.1) # Allow a little runoff (0.1 is OK) 57 58 # Set old (pre Sep 2006) defaults for limiters 59 #domain.beta_w = 0.9 60 #domain.beta_w_dry = 0.9 61 #domain.beta_uh = 0.9 62 #domain.beta_uh_dry = 0.9 63 #domain.beta_vh = 0.9 64 #domain.beta_vh_dry = 0.9 65 66 #domain.check_integrity() 67 #print domain.statistics() 68 69 70 70 71 71 #------------------------- 72 72 # Boundary Conditions 73 73 #------------------------- 74 75 # Create boundary function from timeseries provided in file 76 function = file_function(project.boundary_filename[:-4] + '.tms', 77 domain, verbose=True) 78 79 # Create and assign boundary objects 80 Bts = Transmissive_Momentum_Set_Stage_boundary(domain, function) 74 81 Br = Reflective_boundary(domain) 75 76 function = file_function(project.boundary_filename[:-4] + '.tms', 77 domain, 78 verbose=True) 79 80 Bts = Transmissive_Momentum_Set_Stage_boundary(domain, function) 81 82 if use_variable_mesh is True: 83 domain.set_boundary({'wave': Bts, 'wall': Br}) 84 else: 85 domain.set_boundary({'left': Bts, 'right': Br, 'bottom': Br, 'top': Br}) 82 domain.set_boundary({'wave': Bts, 'wall': Br}) 86 83 87 84 … … 92 89 t0 = time.time() 93 90 94 w_max = 095 91 for t in domain.evolve(yieldstep = 0.05, finaltime = 22.5): 96 92 domain.write_time() 97 93 98 w = domain.get_maximum_inundation_elevation()99 x, y = domain.get_maximum_inundation_location()100 print ' Coastline elevation = %.2f at (x,y)=(%.2f, %.2f)' %(w, x, y)101 print102 103 if w > w_max:104 w_max = w105 x_max = x106 y_max = y107 108 109 print '**********************************************'110 print 'Max coastline elevation = %.2f at (%.2f, %.2f)' %(w_max, x_max, y_max)111 print '**********************************************'112 113 114 115 94 print 'That took %.2f seconds' %(time.time()-t0)
Note: See TracChangeset
for help on using the changeset viewer.