begin_html [use: doc/doc.css] [use:jsMath]

GeoClaw Sample Code

Waves in a parabolic bowl with a flat surface sloshing around. An exact analytic solution is known in which the surface stays flat. In this code, $x$ and $y$ are in meters (iccordsys=1 in [code:setrun.py]). Topography: $B(x,y) = h_0((x^2 + y^2)/a^2 -1)$, Depth: $h(x,y,t) = \max\left(0,~~ (\sigma h_0/a^2)(2x\cos(\omega t) + 2y\sin(\omega t) - \sigma) - B(x,y)\right)$ Velocities: $u(x,y,t) = -\sigma \omega \sin(\omega t),\qquad v(x,y,t) = \sigma \omega \cos(\omega t).$ where $\omega = \sqrt{2gh_0} / a$. The period of oscillation is $T = 2\pi / \omega$. The following parameters are currently hardwired several places: $a = 1, ~~\sigma = 0.5, ~~h = 0.1,~~g = 9.81$ This should be cleaned up: better to put them in a setprob.data file that is read in where needed.

References

This test problem has been used in several other papers too. To run the code, see [link: #instructions Instructions]

Plots of results

After running this code and creating plots via "make .plots", you should be able to view the plots in [link: _plots/_PlotIndex.html].

Fortran files

[code: Makefile]
Determines which version of fortran files are used when compiling the code with make and specifies where output and plots should be directed. Type "make .help" at the Unix prompt for options.

Python files

[code: maketopo.py]
Used to create topo file and qinit data file.
[code: setrun.py]
This file contains a function that specifies what run-time parameters will be used.
[code: setplot.py]
This file contains a function that specifies what plots will be done and sets various plotting parameters.

Data files

The .data files are automatically generated using the information in [code: setrun.py]. [name: instructions]

Instructions

To make topo and qinit data files: {{{ $ make topo }}} To make all data files, edit setrun.py and then {{{ $ make .data }}} To run code: You may need to type {{{ $ make new }}} to make sure the modules are accessible. Then run the code with {{{ $ make .output }}} To plot results, either generate html pages via: {{{ $ make .plots }}} or view interactively using ipython and Iplotclaw. All of this can be done with: {{{ $ source make_all.py }}} end_html