source: anuga_core/source/anuga/examples/bedslope.py @ 4150

Last change on this file since 4150 was 3563, checked in by ole, 19 years ago

Moved shallow water out from the old pyvolution directory.
All tests pass, most examples and okushiri works again.

File size: 1.6 KB
Line 
1"""Simple example of shallow water wave equation using Abstract_2d_finite_volumes
2
3Water driven up a linear slope with a time varying boundary,
4similar to beach environment
5
6"""
7
8######################
9# Module imports
10from anuga.abstract_2d_finite_volumes.mesh_factory import rectangular
11from anuga.shallow_water import Domain, Reflective_boundary,\
12     Dirichlet_boundary, Time_boundary, Transmissive_boundary
13
14#Create basic triangular mesh
15points, vertices, boundary = rectangular(10, 10)
16
17#Create shallow water domain
18domain = Domain(points, vertices, boundary)
19domain.set_name('bedslope')
20domain.set_datadir('.')                      #Use current directory for output
21domain.set_quantities_to_be_stored('stage')  #See shallow_water.py
22
23print domain.statistics()
24
25#######################
26# Initial conditions
27def f(x,y):
28    return -x/2
29
30domain.set_quantity('elevation', f)
31domain.set_quantity('friction', 0.1)
32
33h = 0.00               # Constant depth over elevation
34domain.set_quantity('stage', -.4)
35
36
37######################
38# Boundary conditions
39from math import sin, pi
40Br = Reflective_boundary(domain)
41Bt = Transmissive_boundary(domain)
42Bd = Dirichlet_boundary([0.2,0.,0.])
43Bw = Time_boundary(domain=domain,
44                   f=lambda t: [(0.1*sin(t*2*pi)-0.3), 0.0, 0.0])
45
46
47print 'Tags are ', domain.get_boundary_tags()
48
49domain.set_boundary({'left': Br, 'right': Bw, 'top': Br, 'bottom': Br})
50
51
52######################
53#Evolution
54domain.check_integrity()
55
56for t in domain.evolve(yieldstep = 0.1, finaltime = 4.0):
57    domain.write_time()
58
Note: See TracBrowser for help on using the repository browser.