source: anuga_validation/automated_validation_tests/okushiri_tank_validation/run_okushiri.py @ 4352

Last change on this file since 4352 was 4352, checked in by ole, 17 years ago

Introduced new slope limiters (limit2007) in auto validation. Test passed on cyclone.

File size: 2.8 KB
Line 
1"""Validation of the AnuGA implementation of the shallow water wave equation.
2
3This script sets up Okushiri Island benchmark as published at the
4
5THE THIRD INTERNATIONAL WORKSHOP ON LONG-WAVE RUNUP MODELS
6June 17-18 2004
7Wrigley Marine Science Center
8Catalina Island, California
9http://www.cee.cornell.edu/longwave/
10
11
12The validation data was downloaded and made available in this directory
13for convenience but the original data is available at
14http://www.cee.cornell.edu/longwave/index.cfm?page=benchmark&problem=2
15where a detailed description of the problem is also available.
16
17
18Run create_okushiri.py to process the boundary condition and build a the
19mesh before running this script.
20
21"""
22
23# Module imports
24from anuga.shallow_water import Domain
25from anuga.shallow_water import Reflective_boundary
26from anuga.shallow_water import Transmissive_Momentum_Set_Stage_boundary
27from anuga.abstract_2d_finite_volumes.util import file_function
28
29import project
30
31
32#-------------------------
33# Create Domain from mesh
34#-------------------------
35domain = Domain(project.mesh_filename, use_cache=True, verbose=True)
36print domain.statistics()
37
38
39#-------------------------
40# Initial Conditions
41#-------------------------
42domain.set_quantity('friction', 0.0)
43domain.set_quantity('stage', 0.0)
44domain.set_quantity('elevation',
45                    filename=project.bathymetry_filename,
46                    alpha=0.02,                   
47                    verbose=True,
48                    use_cache=True)
49
50
51#-------------------------
52# Set simulation parameters
53#-------------------------
54domain.set_name(project.output_filename)  # Name of output sww file
55domain.set_default_order(2)               # Apply second order scheme
56domain.set_all_limiters(0.9)              # Max second order scheme (old lim)
57domain.set_minimum_storable_height(0.001) # Don't store w < 0.001m
58domain.set_maximum_allowed_speed(0.1)     # Allow a little runoff (0.1 is OK)
59
60# domain.H0=0
61
62# Try this, (and comment H0=0 out) but the comparison may have to
63# change slightly
64domain.beta_h = 0.0
65domain.limit2007=1 #Try this
66
67#-------------------------
68# Boundary Conditions
69#-------------------------
70
71# Create boundary function from timeseries provided in file
72function = file_function(project.boundary_filename,
73                         domain, verbose=True)
74
75# Create and assign boundary objects
76Bts = Transmissive_Momentum_Set_Stage_boundary(domain, function)
77Br = Reflective_boundary(domain)
78domain.set_boundary({'wave': Bts, 'wall': Br})
79
80
81#-------------------------
82# Evolve through time
83#-------------------------
84import time
85t0 = time.time()
86
87for t in domain.evolve(yieldstep = 0.05, finaltime = 22.5):
88    domain.write_time()
89
90print 'That took %.2f seconds' %(time.time()-t0)
Note: See TracBrowser for help on using the repository browser.