Clawpack Tutorial Part I - University of...
Transcript of Clawpack Tutorial Part I - University of...
![Page 1: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/1.jpg)
Clawpack TutorialPart I
Randall J. LeVequeApplied Mathematics
University of Washington
Conservation Laws Package
www.clawpack.org
Slides posted athttp://www.clawpack.org/links/tutorials
http://faculty.washington.edu/rjl/tutorials
(green indicates links)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 2: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/2.jpg)
Outline
Part 1:• Hyperbolic problems, Finite volume methods• Riemann problems and Godunov’s method• Downloading and installing• Makefile, running the code• Setting parameters in setrun.py
• Riemann solvers
Part 2:• Specifying boundary conditions• Plotting with the Python modules, setplot.py• Two space dimensions
Part 3:• GeoClaw for tsunami modeling• Adaptive mesh refinement
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 3: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/3.jpg)
Some links
Clawpack: http://www.clawpack.org
If that’s not reachable, try:http://faculty.washington.edu/rjl/clawpack
These slides:http://faculty.washington.edu/rjl/tutorials
Textbook with many Clawpack examples:Finite Volume Methods for Hyperbolic Problems, CambridgeUniversity Press, 2003.http://www.clawpack.org/doc/book
Slides from recent 3-week short course:http://faculty.washington.edu/rjl/ipde
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 4: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/4.jpg)
Some collaborators
Marsha Berger, NYU (AMR, GeoClaw)David George, USGS CVO
(Tsunamis, debris flows, dam breaks)Kyle Mandli, UW→ UT-Austin
(PyClaw, GeoClaw, storm surges)David Ketcheson, KAUST
(PyClaw, SharpClaw, PetClaw)
Jan Olav Langseth, FFI, OsloDonna Calhoun, Boise StateChristiane Helzel, BochumSorin Mitran, UNC
Funded in part by: NSF, DOE, NCAR, NIH, ONR, AFOSRFounders Term Professorship
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 5: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/5.jpg)
First order hyperbolic PDE in 1 space dimension
Linear: qt +Aqx = 0, q(x, t) ∈ lRm, A ∈ lRm×m
Conservation law: qt + f(q)x = 0, f : lRm → lRm (flux)
Quasilinear form: qt + f ′(q)qx = 0
Hyperbolic if A or f ′(q) is diagonalizable with real eigenvalues.
Models wave motion or advective transport.
Eigenvalues are wave speeds.
Balance law (source terms): qt + f(q)x = ψ(q)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 6: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/6.jpg)
Some applications where CLAWPACK has been used
• Aerodynamics, supersonic flows
• Seismic waves, tsunamis, flow on the sphere
• Volcanic flows, dusty gas jets, pyroclastic surges
• Ultrasound, lithotripsy, shock wave therapy
• Plasticity, nonlinear elasticity
• Chemotaxis and pattern formation
• Semiconductor modeling
• Multi-fluids, multi-phase flows, bubbly flow
• Combustion, detonation waves
• Astrophysics: binary stars, planetary nebulae, jets,
• Magnetohydrodynamics, plasmas, relativistic flow
• Numerical relativity — gravitational waves, cosmology
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 7: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/7.jpg)
Seismic waves in layered earth
Layers 1 and 3: ρ = 2, λ = 1, µ = 1, cp ≈ 1.2, cs ≈ 0.7
Layer 2: ρ = 5, λ = 10, µ = 5, cp = 2.0, cs = 1
Impulse at top surface at t = 0.
Solved on uniform Cartesian grid (600× 300).
Cell average of material parameters used in each grid cell.
Extrapolation at computational boundaries.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 8: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/8.jpg)
Equations of linear elasticity (in 2d)
σ11t − (λ+ 2µ)ux − λvy = 0
σ22t − λux − (λ+ 2µ)vy = 0
σ12t − µ(vx + uy) = 0
ρut − σ11x − σ12
y = 0
ρvt − σ12x − σ22
y = 0
where λ(x, y) and µ(x, y) are Lamé parameters.
This has the form qt +Aqx +Bqy = 0.
The matrix (A cos θ +B sin θ) has eigenvalues −cp, −cs, 0, cs, cp
P-wave (dilatational) speed: cp =√
λ+2µρ
S-wave (shear) speed: cs =√
µρ
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 9: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/9.jpg)
Elastic waves
P-waves S-wavescpt cst
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 10: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/10.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 11: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/11.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 12: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/12.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 13: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/13.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 14: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/14.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 15: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/15.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 16: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/16.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 17: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/17.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 18: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/18.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 19: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/19.jpg)
Seismic wave in layered medium
Red = div(u) [P-waves], Blue = curl(u) [S-waves]
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 20: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/20.jpg)
Adaptive Mesh Refinement (AMR)
• Cluster grid points where needed• Automatically adapt to solution• Refined region moves in time-dependent problem
Basic approaches:
• Cell-by-cell refinementQuad-tree or Oct-tree data structureStructured or unstructured grid
• Refinement on “rectangular” patchesBerger-Colella-Oliger style
Clawpack Software:Explicit — Work of Marsha Berger, NYUImplicit — Current work of Jonathan Claridge
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 21: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/21.jpg)
Red = div(u) [P-waves], Blue = curl(u) [S-waves]Four levels with refinement factors 4, 4, 4
High-resolution wave propagation algorithms from CLAWPACK(www.clawpack.org)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 22: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/22.jpg)
Red = div(u) [P-waves], Blue = curl(u) [S-waves]Four levels with refinement factors 4, 4, 4
High-resolution wave propagation algorithms from CLAWPACK(www.clawpack.org)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 23: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/23.jpg)
Red = div(u) [P-waves], Blue = curl(u) [S-waves]Four levels with refinement factors 4, 4, 4
High-resolution wave propagation algorithms from CLAWPACK(www.clawpack.org)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 24: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/24.jpg)
Red = div(u) [P-waves], Blue = curl(u) [S-waves]Four levels with refinement factors 4, 4, 4
High-resolution wave propagation algorithms from CLAWPACK(www.clawpack.org)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 25: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/25.jpg)
Finite differences vs. finite volumes
Finite difference Methods
• Pointwise values Qni ≈ q(xi, tn)
• Approximate derivatives by finite differences• Assumes smoothness
Finite volume Methods
• Approximate cell averages: Qni ≈
1∆x
∫ xi+1/2
xi−1/2
q(x, tn) dx
• Integral form of conservation law,
∂
∂t
∫ xi+1/2
xi−1/2
q(x, t) dx = f(q(xi−1/2, t))− f(q(xi+1/2, t))
leads to conservation law qt + fx = 0 but also directly tonumerical method.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 26: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/26.jpg)
CLAWPACK — www.clawpack.org
• Open source, 1d, 2d, (3d in V4.3, soon to be ported)• Originally f77 with Matlab graphics (V4.3).• Now use Python for user interface, graphics• Adaptive mesh refinement, GeoClaw.• Coming: OpenMP, better f90 version.
User supplies:• Riemann solver, splitting data into waves and speeds
(Need not be in conservation form)
• Boundary condition routine to extend data to ghost cellsStandard bc1.f routine includes many standard BC’s
• Initial conditions — qinit.f
• Source terms — src1.f
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 27: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/27.jpg)
The Riemann problem
The Riemann problem consists of the hyperbolic equationunder study together with initial data of the form
q(x, 0) ={ql if x < 0qr if x ≥ 0
Piecewise constant with a single jump discontinuity from ql toqr.
The Riemann problem is fundamental to understanding• The mathematical theory of hyperbolic problems,• Godunov-type finite volume methods
Why? Even for nonlinear systems of conservation laws, theRiemann problem can often be solved for general ql and qr, andconsists of a set of waves propagating at constant speeds.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 28: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/28.jpg)
The Riemann problemDam break problem for shallow water equations
ht + (hu)x = 0
(hu)t +(hu2 +
12gh2)x
= 0
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 29: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/29.jpg)
The Riemann problemDam break problem for shallow water equations
ht + (hu)x = 0
(hu)t +(hu2 +
12gh2)x
= 0
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 30: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/30.jpg)
The Riemann problemDam break problem for shallow water equations
ht + (hu)x = 0
(hu)t +(hu2 +
12gh2)x
= 0
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 31: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/31.jpg)
The Riemann problemDam break problem for shallow water equations
ht + (hu)x = 0
(hu)t +(hu2 +
12gh2)x
= 0
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 32: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/32.jpg)
The Riemann problemDam break problem for shallow water equations
ht + (hu)x = 0
(hu)t +(hu2 +
12gh2)x
= 0
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 33: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/33.jpg)
Riemann solution for the SW equations
The Roe solver uses the solution to a linear system
qt + Ai−1/2qx = 0, Ai−1/2 = f ′(qave).
All waves are simply discontinuities.
Typically a fine approximation if jumps are approximatelycorrect.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 34: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/34.jpg)
Options for using Clawpack
1 Install from tar file: Instructions.
Requires some prerequisites: Fortran, Python modules.
2 Use the VirtualClaw virtual machine.
3 For some applications, use EagleClaw(Easy Access Graphical Laboratory for ExploringConservation Laws)
Documentation: http://www.clawpack.org/doc/
Also perhaps useful:
AMath 583 Class notes on Python, Fortran, version control, etc.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 35: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/35.jpg)
Installation
Acquire clawpack-4.6.1.tar.gz from www.clawpack.org
$ tar -zxf clawpack-4.6.1.tar.gz
$ cd clawpack-4.6.1$ python setenv.py$ source setenv.bash
Commands in setenv.bash can be put in .bashrc file.
These define environment variables CLAW, PYTHONPATH, etc.
E.g. to go to main directory:$ cd $CLAW
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 36: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/36.jpg)
Virtualization
Clawpack requires:• Unix/Linux• gfortran (and OpenMP, MPI)• Python (preferably IPython)• Plotting modules• Sphinx for documentation
VirtualClaw: Simple way to provide complete OS and software.
VM image for VirtualBox, runs on Linux / Windows / Mac.
Download: www.clawpack.org/VM
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 37: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/37.jpg)
Virtualization
Clawpack requires:• Unix/Linux• gfortran (and OpenMP, MPI)• Python (preferably IPython)• Plotting modules• Sphinx for documentation
VirtualClaw: Simple way to provide complete OS and software.
VM image for VirtualBox, runs on Linux / Windows / Mac.
Download: www.clawpack.org/VM
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 38: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/38.jpg)
Compiling, running, plotting
Applications directories contain a Makefile.
$ make help For list of options
$ make .data Uses setrun.py to make Fortran data
$ make .exe Compiles Fortran codes
$ make .output Runs code, produces _output
$ make .plots Plots results, produces _plots
$ make .htmls Produces html versions of source files
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 39: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/39.jpg)
Application Makefile
Documentation: www.clawpack.org/doc/makefiles.htmlFor example, see $CLAW/apps/acoustics/1d/example2/Makefile
Several variables are set, e.g.where to find setrun function and where to put output:
CLAW_setrun_file = setrun.pyCLAW_OUTDIR = _output
where to find setplot function and where to put plots:
CLAW_setplot_file = setplot.pyCLAW_PLOTDIR = _plots
Usually these do not need to be changed.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 40: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/40.jpg)
Application Makefile (cont.)
List of local Fortran files:
CLAW_SOURCES = \driver.f \qinit.f \rp1.f \setprob.f
List of library files:
# Clawpack library to be used:CLAW_LIB = $(CLAW)/clawpack/1d/lib
CLAW_LIBSOURCES = \$(CLAW_LIB)/claw1ez.f \$(CLAW_LIB)/bc1.f \etc.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 41: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/41.jpg)
Application Makefile (cont.)
Ends with...
# Include Makefile containing standard# definitions and make options:CLAWMAKE = $(CLAW)/util/Makefile.commoninclude $(CLAWMAKE)
The file $CLAW/util/Makefile.common contains rules for varioustargets.
For possible targets, type
$ make help
Documentation: www.clawpack.org/doc/makefiles.html
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 42: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/42.jpg)
Setting runtime parameters
The file setrun.py contains a function setrunthat returns an object rundata of class ClawRunData.
Never need to write from scratch...Modify an existing example!
Don’t need to know much if anything about Python!
Lots of comments in the sample versions.
Documentation: www.clawpack.org/doc/setrun.html
For example, see $CLAW/apps/acoustics/1d/example2/setrun.py
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 43: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/43.jpg)
Copying and modifying an example
Find an example similar to the one you want to create and copythe directory, e.g.
$ cd $CLAW/apps/acoustics/1d$ cp -r example2 $CLAW/myclaw/newexample
Warning: If you have a Subversion copy of Clawpack...This will copy .svn subdirectory too.Better way:
$ cd $CLAW/apps/acoustics/1d$ svn export example2 $CLAW/myclaw/newexample
Documentation: www.clawpack.org/doc/newapp.html
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 44: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/44.jpg)
Copying and modifying an example
Find an example similar to the one you want to create and copythe directory, e.g.
$ cd $CLAW/apps/acoustics/1d$ cp -r example2 $CLAW/myclaw/newexample
Warning: If you have a Subversion copy of Clawpack...This will copy .svn subdirectory too.Better way:
$ cd $CLAW/apps/acoustics/1d$ svn export example2 $CLAW/myclaw/newexample
Documentation: www.clawpack.org/doc/newapp.html
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 45: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/45.jpg)
Linear acoustics
Example: Linear acoustics in a 1d gas tube
q =[pu
]p(x, t) = pressure perturbationu(x, t) = velocity
Equations:
pt + κux = 0 Change in pressure due to compressionρut + px = 0 Newton’s second law, F = ma
where K = bulk modulus, and ρ = unperturbed density of gas.
Hyperbolic system:[pu
]t
+[
0 κ1/ρ 0
] [pu
]x
= 0.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 46: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/46.jpg)
Linear acoustics
[pu
]t
+[
0 κ1/ρ 0
] [pu
]x
= 0.
This has the form qt +Aqx = 0 with
eigenvalues: λ1 = −c, λ2 = +c,
where c =√κ/ρ = speed of sound.
eigenvectors: r1 =[−Z1
], r2 =
[Z1
]where Z = ρc =
√ρκ = impedance.
R =[−Z Z1 1
], R−1 =
12Z
[−1 Z1 Z
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 47: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/47.jpg)
Acoustic waves
q(x, 0) =[p(x)
0
]= −p(x)
2Z
[−Z1
]+ p(x)
2Z
[Z1
]= w1(x, 0)r1 + w2(x, 0)r2
=[
p(x)/2−p(x)/(2Z)
]+
[p(x)/2
p(x)/(2Z)
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 48: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/48.jpg)
Acoustic waves
q(x, 0) =[p(x)
0
]= −p(x)
2Z
[−Z1
]+ p(x)
2Z
[Z1
]= w1(x, 0)r1 + w2(x, 0)r2
=[
p(x)/2−p(x)/(2Z)
]+
[p(x)/2
p(x)/(2Z)
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 49: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/49.jpg)
Acoustic waves
q(x, 0) =[p(x)
0
]= −p(x)
2Z
[−Z1
]+ p(x)
2Z
[Z1
]= w1(x, 0)r1 + w2(x, 0)r2
=[
p(x)/2−p(x)/(2Z)
]+
[p(x)/2
p(x)/(2Z)
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 50: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/50.jpg)
Acoustic waves
q(x, 0) =[p(x)
0
]= −p(x)
2Z
[−Z1
]+ p(x)
2Z
[Z1
]= w1(x, 0)r1 + w2(x, 0)r2
=[
p(x)/2−p(x)/(2Z)
]+
[p(x)/2
p(x)/(2Z)
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 51: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/51.jpg)
Acoustic waves
q(x, 0) =[p(x)
0
]= −p(x)
2Z
[−Z1
]+ p(x)
2Z
[Z1
]= w1(x, 0)r1 + w2(x, 0)r2
=[
p(x)/2−p(x)/(2Z)
]+
[p(x)/2
p(x)/(2Z)
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 52: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/52.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 53: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/53.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 54: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/54.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 55: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/55.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 56: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/56.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 57: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/57.jpg)
Riemann Problem
Special initial data:
q(x, 0) ={ql if x < 0qr if x > 0
Example: Acoustics with bursting diaphram
Pressure:
Acoustic waves propagate with speeds ±c.Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 58: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/58.jpg)
Riemann Problem for acoustics
Waves propagating in x–t space:
Left-going waveW1 = qm − ql andright-going waveW2 = qr − qm are eigenvectors of A.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 59: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/59.jpg)
Riemann solution for a linear system
Linear hyperbolic system: qt +Aqx = 0 with A = RΛR−1.General Riemann problem data ql, qr ∈ lRm.
Decompose jump in q into eigenvectors:
qr − ql =m∑
p=1
αprp
Note: the vector α of eigen-coefficients is
α = R−1(qr − ql) = R−1qr −R−1ql = wr − wl.
Riemann solution consists of m wavesWp ∈ lRm:
Wp = αprp, propagating with speed sp = λp.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 60: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/60.jpg)
Godunov’s Method for qt + f(q)x = 0
Then either:
1. Compute new cell averages by integrating over cell at tn+1,
2. Compute fluxes at interfaces and flux-difference:
Qn+1i = Qni −
∆t∆x
[Fni+1/2 − Fni−1/2]
3. Update cell averages by contributions from all waves entering cell:
Qn+1i = Qni −
∆t∆x
[A+∆Qi−1/2 +A−∆Qi+1/2]
where A±∆Qi−1/2 =m∑i=1
(spi−1/2)±Wpi−1/2.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 61: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/61.jpg)
Godunov’s Method for qt + f(q)x = 0
Then either:
1. Compute new cell averages by integrating over cell at tn+1,
2. Compute fluxes at interfaces and flux-difference:
Qn+1i = Qni −
∆t∆x
[Fni+1/2 − Fni−1/2]
3. Update cell averages by contributions from all waves entering cell:
Qn+1i = Qni −
∆t∆x
[A+∆Qi−1/2 +A−∆Qi+1/2]
where A±∆Qi−1/2 =m∑i=1
(spi−1/2)±Wpi−1/2.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 62: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/62.jpg)
Godunov’s Method for qt + f(q)x = 0
Then either:
1. Compute new cell averages by integrating over cell at tn+1,
2. Compute fluxes at interfaces and flux-difference:
Qn+1i = Qni −
∆t∆x
[Fni+1/2 − Fni−1/2]
3. Update cell averages by contributions from all waves entering cell:
Qn+1i = Qni −
∆t∆x
[A+∆Qi−1/2 +A−∆Qi+1/2]
where A±∆Qi−1/2 =m∑i=1
(spi−1/2)±Wpi−1/2.
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 63: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/63.jpg)
Wave-propagation viewpoint
For linear system qt +Aqx = 0, the Riemann solution consists of
wavesWp propagating at constant speed λp.λ2∆t
W1i−1/2
W1i+1/2
W2i−1/2
W3i−1/2
Qi −Qi−1 =m∑
p=1
αpi−1/2r
p ≡m∑
p=1
Wpi−1/2.
Qn+1i = Qn
i −∆t∆x[λ2W2
i−1/2 + λ3W3i−1/2 + λ1W1
i+1/2
].
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 64: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/64.jpg)
CLAWPACK Riemann solver
The hyperbolic problem is specified by the Riemann solver• Input: Values of q in each grid cell
• Output: Solution to Riemann problem at each interface.• WavesWp ∈ lRm, p = 1, 2, . . . , Mw
• Speeds sp ∈ lR, p = 1, 2, . . . , Mw,
• Fluctuations A−∆Q, A+∆Q ∈ lRm
Note: Number of waves Mw often equal to m (length of q),but could be different (e.g. HLL solver has 2 waves).
Fluctuations:
A−∆Q = Contribution to cell average to left,A+∆Q = Contribution to cell average to right
For conservation law, A−∆Q+A+∆Q = f(Qr)− f(Ql)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 65: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/65.jpg)
CLAWPACK Riemann solver
The hyperbolic problem is specified by the Riemann solver• Input: Values of q in each grid cell
• Output: Solution to Riemann problem at each interface.• WavesWp ∈ lRm, p = 1, 2, . . . , Mw
• Speeds sp ∈ lR, p = 1, 2, . . . , Mw,
• Fluctuations A−∆Q, A+∆Q ∈ lRm
Note: Number of waves Mw often equal to m (length of q),but could be different (e.g. HLL solver has 2 waves).
Fluctuations:
A−∆Q = Contribution to cell average to left,A+∆Q = Contribution to cell average to right
For conservation law, A−∆Q+A+∆Q = f(Qr)− f(Ql)
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 66: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/66.jpg)
CLAWPACK Riemann solver
Inputs to rp1 subroutine:
ql(i,1:m) = Value of q at left edge of ith cell,
qr(i,1:m) = Value of q at right edge of ith cell,
Warning: The Riemann problem at the interface between cellsi− 1 and i has left state qr(i-1,:) and right state ql(i,:).
rp1 is normally called with ql = qr = q,but designed to allow other methods:
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 67: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/67.jpg)
CLAWPACK Riemann solver
Outputs from rp1 subroutine:
for system of m equationswith mw ranging from 1 to Mw =# of waves
s(i,mw) = Speed of wave # mw in ith Riemann solution,
wave(i,1:m,mw) = Jump across wave # mw,
amdq(i,1:m) = Left-going fluctuation, updates Qi−1
apdq(i,1:m) = Right-going fluctuation, updates Qi
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011
![Page 68: Clawpack Tutorial Part I - University of Washingtondepts.washington.edu/clawpack/links/tutorials/clawpack-waves-1.pdf · Randy LeVeque, University of Washington Clawpack Tutorial](https://reader035.fdocuments.us/reader035/viewer/2022062604/5fb93bbd412f302af9642973/html5/thumbnails/68.jpg)
Acoustics examples
• $CLAW/apps/acoustics/1d/example2/README.html
• Acoustics in EagleClaw
Randy LeVeque, University of Washington Clawpack Tutorial #1, WAVES 2011, July 2011