{ "cells": [ { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "# A quick introduction to PyClaw\n", "PyClaw is a solver for hyperbolic PDEs, based on [Clawpack](www.clawpack.org). You can read more about PyClaw in [this paper](http://epubs.siam.org/doi/abs/10.1137/110856976) (free version [here](http://arxiv.org/abs/1111.6583). \n", "\n", "In this notebook, we explore some basic PyClaw functionality. Before running the notebook, you should [install Clawpack](http://clawpack.github.io/doc/installing.html). The quick way is to just\n", "\n", " pip install clawpack\n", " \n", "If you are viewing this notebook online, you can download it and run it [from here](https://github.com/clawpack/doc/blob/master/doc/pyclaw/intro_notebook.ipynb)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "source": [ "%matplotlib inline\n", "import matplotlib\n", "from clawpack import pyclaw\n", "from clawpack import riemann" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Setting up a problem\n", "To solve a problem, we'll need to create the following:\n", "\n", "- A controller, which handles the running, output, and can be used for plotting (you don't absolutely need a controller, but it makes life simpler)\n", "- A solver, which is responsible for actually evolving the solution in time. Here we'll need to specify the equations to be solved and the boundary conditions.\n", "- A domain over which to solve the problem\n", "- A solution, where we will provide the initial data. After running, the solution will contain -- you guessed it! -- the solution." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Let's start by creating a controller and specifying the simulation end time:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "claw = pyclaw.Controller()\n", "claw.tfinal = 1.0\n", "\n", "claw.keep_copy = True # Keep solution data in memory for plotting\n", "claw.output_format = None # Don't write solution data to file\n", "claw.num_output_times = 50 # Write 50 output frames" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Riemann solvers\n", "\n", "Like many solvers for nonlinear hyperbolic PDEs, PyClaw uses Riemann solvers. By specifying a Riemann solver, we will specify the system of PDEs that we want to solve.\n", "\n", "Place your cursor at the end of the line in the box below and hit 'Tab' (for autocompletion). You'll see a dropdown list of all the Riemann solvers currently available in PyClaw. The ones with 'py' at the end of the name are written in pure Python; the others are Fortran, wrapped with f2py.\n", "\n", "Note that this won't work if you're viewing the notebook online as HTML; you need to actually be running it." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "riemann." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "We'll solve the one-dimensional acoustics equations:\n", "$$\\begin{align}\n", "p_t + K u_x & = 0 \\\\\n", "u_t + \\frac{1}{\\rho} p_x & = 0.\n", "\\end{align}$$\n", "Here $p, u$ are the pressure and velocity as functions of $x,t$, while $\\rho, K$ are constants representing the density and bulk modulus of the material transmitting the waves. We'll specify these constants later.\n", "\n", "We can do this using the first solver in the list. Notice that the solver we create here belongs to the controller that we created above." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "riemann_solver = riemann.acoustics_1D\n", "claw.solver = pyclaw.ClawSolver1D(riemann_solver)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "We also need to specify boundary conditions. We'll use periodic BCs, so that waves that go off one side of the domain come back in at the other:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "claw.solver.all_bcs = pyclaw.BC.periodic" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## The problem domain\n", "Next we need to specify the domain and the grid. We'll solve on the unit line $[0,1]$ using 100 grid cells. Note that each argument to the Domain constructor must be a tuple:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "domain = pyclaw.Domain( (0.,), (1.,), (100,))" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## The initial solution\n", "Next we create a solution object that belongs to the controller and extends over the domain we specified:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "claw.solution = pyclaw.Solution(claw.solver.num_eqn,domain)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "The initial data is specified in an array named $q$. The pressure is contained in `q[0,:]` and the velocity in `q[1,:]`. We'll specify a wavepacket for the pressure and zero velocity." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x=domain.grid.x.centers\n", "bet=100; gam=5; x0=0.75\n", "claw.solution.q[0,:] = np.exp(-bet * (x-x0)**2) * np.cos(gam * (x - x0))\n", "claw.solution.q[1,:] = 0.\n", "\n", "plt.plot(x, claw.solution.q[0,:],'-o')" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Problem-specific parameters\n", "The Riemann solver we've chosen requires some physical parameters to be specified. Press 'Tab' in the box below and you'll see what they are." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": true, "editable": true }, "outputs": [], "source": [ "riemann_solver.cparam." ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Two of these parameters are $\\rho$ and $K$ in the equations above. The other two are the impedance $Z = \\sqrt{\\rho K}$ and sound speed $c = \\sqrt{K/\\rho}$. We specify these parameters in a dictionary that belongs to the solution object:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [ "import numpy as np\n", "\n", "density = 1.0\n", "bulk_modulus = 1.0\n", "impedance = np.sqrt(density*bulk_modulus)\n", "sound_speed = np.sqrt(density/bulk_modulus)\n", "\n", "claw.solution.state.problem_data = {\n", " 'rho' : density,\n", " 'bulk': bulk_modulus,\n", " 'zz' : np.sqrt(density*bulk_modulus),\n", " 'cc' : np.sqrt(bulk_modulus/density)\n", " }" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "Finally, let's run the simulation." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2014-01-09 14:50:12,569 INFO CLAW: Solution 0 computed for time t=0.000000\n", "2014-01-09 14:50:12,572 INFO CLAW: Solution 1 computed for time t=0.020000\n", "2014-01-09 14:50:12,574 INFO CLAW: Solution 2 computed for time t=0.040000\n", "2014-01-09 14:50:12,576 INFO CLAW: Solution 3 computed for time t=0.060000\n", "2014-01-09 14:50:12,578 INFO CLAW: Solution 4 computed for time t=0.080000\n", "2014-01-09 14:50:12,579 INFO CLAW: Solution 5 computed for time t=0.100000\n", "2014-01-09 14:50:12,581 INFO CLAW: Solution 6 computed for time t=0.120000\n", "2014-01-09 14:50:12,583 INFO CLAW: Solution 7 computed for time t=0.140000\n", "2014-01-09 14:50:12,585 INFO CLAW: Solution 8 computed for time t=0.160000\n", "2014-01-09 14:50:12,587 INFO CLAW: Solution 9 computed for time t=0.180000\n", "2014-01-09 14:50:12,589 INFO CLAW: Solution 10 computed for time t=0.200000\n", "2014-01-09 14:50:12,591 INFO CLAW: Solution 11 computed for time t=0.220000\n", "2014-01-09 14:50:12,593 INFO CLAW: Solution 12 computed for time t=0.240000\n", "2014-01-09 14:50:12,595 INFO CLAW: Solution 13 computed for time t=0.260000\n", "2014-01-09 14:50:12,597 INFO CLAW: Solution 14 computed for time t=0.280000\n", "2014-01-09 14:50:12,599 INFO CLAW: Solution 15 computed for time t=0.300000\n", "2014-01-09 14:50:12,601 INFO CLAW: Solution 16 computed for time t=0.320000\n", "2014-01-09 14:50:12,604 INFO CLAW: Solution 17 computed for time t=0.340000\n", "2014-01-09 14:50:12,606 INFO CLAW: Solution 18 computed for time t=0.360000\n", "2014-01-09 14:50:12,608 INFO CLAW: Solution 19 computed for time t=0.380000\n", "2014-01-09 14:50:12,610 INFO CLAW: Solution 20 computed for time t=0.400000\n", "2014-01-09 14:50:12,612 INFO CLAW: Solution 21 computed for time t=0.420000\n", "2014-01-09 14:50:12,614 INFO CLAW: Solution 22 computed for time t=0.440000\n", "2014-01-09 14:50:12,616 INFO CLAW: Solution 23 computed for time t=0.460000\n", "2014-01-09 14:50:12,618 INFO CLAW: Solution 24 computed for time t=0.480000\n", "2014-01-09 14:50:12,620 INFO CLAW: Solution 25 computed for time t=0.500000\n", "2014-01-09 14:50:12,621 INFO CLAW: Solution 26 computed for time t=0.520000\n", "2014-01-09 14:50:12,623 INFO CLAW: Solution 27 computed for time t=0.540000\n", "2014-01-09 14:50:12,625 INFO CLAW: Solution 28 computed for time t=0.560000\n", "2014-01-09 14:50:12,627 INFO CLAW: Solution 29 computed for time t=0.580000\n", "2014-01-09 14:50:12,629 INFO CLAW: Solution 30 computed for time t=0.600000\n", "2014-01-09 14:50:12,632 INFO CLAW: Solution 31 computed for time t=0.620000\n", "2014-01-09 14:50:12,634 INFO CLAW: Solution 32 computed for time t=0.640000\n", "2014-01-09 14:50:12,636 INFO CLAW: Solution 33 computed for time t=0.660000\n", "2014-01-09 14:50:12,638 INFO CLAW: Solution 34 computed for time t=0.680000\n", "2014-01-09 14:50:12,640 INFO CLAW: Solution 35 computed for time t=0.700000\n", "2014-01-09 14:50:12,642 INFO CLAW: Solution 36 computed for time t=0.720000\n", "2014-01-09 14:50:12,644 INFO CLAW: Solution 37 computed for time t=0.740000\n", "2014-01-09 14:50:12,646 INFO CLAW: Solution 38 computed for time t=0.760000\n", "2014-01-09 14:50:12,648 INFO CLAW: Solution 39 computed for time t=0.780000\n", "2014-01-09 14:50:12,650 INFO CLAW: Solution 40 computed for time t=0.800000\n", "2014-01-09 14:50:12,652 INFO CLAW: Solution 41 computed for time t=0.820000\n", "2014-01-09 14:50:12,654 INFO CLAW: Solution 42 computed for time t=0.840000\n", "2014-01-09 14:50:12,656 INFO CLAW: Solution 43 computed for time t=0.860000\n", "2014-01-09 14:50:12,658 INFO CLAW: Solution 44 computed for time t=0.880000\n", "2014-01-09 14:50:12,660 INFO CLAW: Solution 45 computed for time t=0.900000\n", "2014-01-09 14:50:12,662 INFO CLAW: Solution 46 computed for time t=0.920000\n", "2014-01-09 14:50:12,664 INFO CLAW: Solution 47 computed for time t=0.940000\n", "2014-01-09 14:50:12,666 INFO CLAW: Solution 48 computed for time t=0.960000\n", "2014-01-09 14:50:12,668 INFO CLAW: Solution 49 computed for time t=0.980000\n", "2014-01-09 14:50:12,670 INFO CLAW: Solution 50 computed for time t=1.000000\n" ] } ], "source": [ "status = claw.run()" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "## Plotting\n", "Now we'll plot the results, which are contained in `claw.frames[:]`. It's simple to plot a single frame with matplotlib:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pressure = claw.frames[50].q[0,:]\n", "plt.plot(x,pressure,'-o')" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "To examine the evolution more thoroughly, it's nice to see all the frames in sequence. We can do this as follows." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "
\n", " \n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", " \n", " Once \n", " Loop \n", " Reflect \n", "
\n", "
\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from matplotlib import animation\n", "import matplotlib.pyplot as plt\n", "from clawpack.visclaw.JSAnimation import IPython_display\n", "import numpy as np\n", "\n", "fig = plt.figure()\n", "ax = plt.axes(xlim=(0, 1), ylim=(-0.2, 1.2))\n", "\n", "frame = claw.frames[0]\n", "pressure = frame.q[0,:]\n", "line, = ax.plot([], [], lw=2)\n", "\n", "def fplot(frame_number):\n", " frame = claw.frames[frame_number]\n", " pressure = frame.q[0,:]\n", " line.set_data(x,pressure)\n", " return line,\n", "\n", "animation.FuncAnimation(fig, fplot, frames=len(claw.frames), interval=30)" ] }, { "cell_type": "markdown", "metadata": { "deletable": true, "editable": true }, "source": [ "That's it! Here are some things you might try for fun:\n", "\n", "- Change the boundary conditions to reflecting or outflow (hint: type `pyclaw.BC.`+[Tab] to get a list of boundary conditions available).\n", "- Change the grid to use a larger or smaller number of grid cells. How does this affect the final solution?\n", "- Use higher-order methods by instantiating a `SharpClawSolver1D` instead of a `ClawSolver1D`. How does this affect the final solution? You can read more about the methods in SharpClaw in [this paper](http://epubs.siam.org/doi/abs/10.1137/110830320)." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": true, "editable": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.13" } }, "nbformat": 4, "nbformat_minor": 0 }