begin_html [use: doc/doc.css]
CLAWPACK Sample Code
1d Shallow water equations with dam-break initial data.
Set up to solve the same problem as suggested in the tutorial, but using the
full nonlinear shallow water equations. Note that the left-going wave is a
rarefaction wave but the linearized equations around depth h0 = 10 gives
a reasonable approximation to this.
In this example solid wall boundary conditions are applied so that the waves
reflect and further interact at later times. Note the jump in depth when
a wave reflects at the boundary.
Note also that the interaction of waves looks nearly linear: the waves seem
to pass through one another. This is because the variation in depth is
small relative to the total depth. Changing the parameters in
[code: setrun.py] so that the jump is larger relative to the background
depth would reveal more nonlinear interaction.
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.
- [code: driver.f]
-
The driver routine allocates storage and then calls the main Clawpack
routine.
- [code: setprob.f]
-
A routine by this name is called by the library routine
[clawcode: clawpack/1d/lib/claw1ez.f]
and is generally used to set any values needed for the specific problem
being solved.
- [code: rp1sw.f]
-
This is the Riemann solver, which takes the $q$ values stored in the
arrays ql and qr and returns the waves in the array
wave and speeds in the array s that result in solving the
Riemann problem at each cell interface, and the fluctuations amdq
and apdq. See [claw:doc/rp1.html] for more information about 1d
Riemann solvers.
- [code: qinit.f]
-
This subroutine sets the initial data at time $t=0$.
Python files
- [code: setrun.py]
- This file contains a function that
specifies what run-time parameters will be used.
Some parameters that you might want to modify are described in the
[www.clawpack.org/doc.html documentation].
- [code: setplot.py]
- This file contains a function that
specifies what plots will be done and
sets various plotting parameters.
Data files
Warning: These files are generally changed
when setting up a run, usually in [code: setrun.py].
- [code: claw.data]
- This file contains a number of
parameter values that are used by CLAWPACK.
The values in this file are read by the library routine
[clawcode: clawpack/1d/lib/claw1ez.f].
- [code: setprob.data]
- This file may contain various
parameters used in setting the initial conditions or otherwise setting up
the problem.
Library routines
In addition to the Fortran routines in this library, several library
routines from [claw:clawpack/1d/lib] are used. See the [code: Makefile]
to determine which ones are used.
end_html