{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "###### Content under Creative Commons Attribution license CC-BY 4.0, code under MIT license (c)2014 L.A. Barba, G.F. Forsyth, C. Cooper. Based on [CFDPython](https://github.com/barbagroup/CFDPython), (c)2013 L.A. Barba, also under CC-BY license." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Space & Time" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Stability and the CFL condition" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Welcome back! This is the second IPython Notebook of the series *Space and Time — Introduction to Finite-difference solutions of PDEs*, the second module of [\"Practical Numerical Methods with Python\"](http://openedx.seas.gwu.edu/courses/GW/MAE6286/2014_fall/about).\n", "\n", "In the first lesson of this series, we studied the numerical solution of the linear and non-linear convection equations, using the finite-difference method. Did you experiment there using different parameter choices? If you did, you probably ran into some unexpected behavior. Did your solution ever blow up (sometimes in a cool way!)? \n", "\n", "In this IPython Notebook, we will explore why changing the discretization parameters can affect your solution in such a drastic way." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "With the solution parameters we initially suggested, the spatial grid had 41 points and the timestep was 0.25. Now, we're going to experiment with the number of points in the grid. The code below corresponds to the linear convection case, but written into a function so that we can easily examine what happens as we adjust just one variable: **the grid size**." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy \n", "from matplotlib import pyplot \n", "%matplotlib inline\n", "from matplotlib import rcParams\n", "rcParams['font.family'] = 'serif'\n", "rcParams['font.size'] = 16" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def linearconv(nx):\n", " \"\"\"Solve the linear convection equation.\n", " \n", " Solves the equation d_t u + c d_x u = 0 where \n", " * the wavespeed c is set to 1\n", " * the domain is x \\in [0, 2]\n", " * 20 timesteps are taken, with \\Delta t = 0.025\n", " * the initial data is the hat function\n", " \n", " Produces a plot of the results\n", " \n", " Parameters\n", " ----------\n", " \n", " nx : integer\n", " number of internal grid points\n", " \n", " Returns\n", " -------\n", " \n", " None : none\n", " \"\"\"\n", " dx = 2/(nx-1)\n", " nt = 20 \n", " dt = .025 \n", " c = 1\n", " \n", " x = numpy.linspace(0,2,nx)\n", "\n", " u = numpy.ones(nx)\n", " lbound = numpy.where(x >= 0.5)\n", " ubound = numpy.where(x <= 1)\n", " u[numpy.intersect1d(lbound, ubound)]=2 \n", "\n", " un = numpy.ones(nx) \n", "\n", " for n in range(nt): \n", " un = u.copy() \n", " u[1:] = un[1:] -c*dt/dx*(un[1:] -un[0:-1]) \n", " u[0] = 1.0\n", " \n", "\n", " pyplot.plot(x, u, color='#003366', ls='--', lw=3)\n", " pyplot.ylim(0,2.5); " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let's examine the results of the linear convection problem with an increasingly fine mesh. We'll try 41, 61 and 71 points ... then we'll shoot for 85. See what happens:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(41) #convection using 41 grid points" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(61)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(71)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "So far so good—as we refine the spatial grid, the wave is more square, indicating that the discretization error is getting smaller. But what happens when we refine the grid even further? Let's try 85 grid points." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(85)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oops. This doesn't look anything like our original hat function. Something has gone awry. It's the same code that we ran each time, so it's not a bug!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### What happened?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To answer that question, we have to think a little bit about what we're actually implementing in code when we solve the linear convection equation with the forward-time/backward-space method. \n", "\n", "In each iteration of the time loop, we use the existing data about the solution at time $n$ to compute the solution in the subsequent time step, $n+1$. In the first few cases, the increase in the number of grid points returned more accurate results. There was less discretization error and the translating wave looked more like a square wave than it did in our first example. \n", "\n", "Each iteration of the time loop advances the solution by a time-step of length $\\Delta t$, which had the value 0.025 in the examples above. During this iteration, we evaluate the solution $u$ at each of the $x_i$ points on the grid. But in the last plot, something has clearly gone wrong. \n", "\n", "What has happened is that over the time period $\\Delta t$, the wave is travelling a distance which is greater than `dx`, and we say that the solution becomes *unstable* in this situation (this statement can be proven formally, see below). The length `dx` of grid spacing is inversely proportional to the number of total points `nx`: we asked for more grid points, so `dx` got smaller. Once `dx` got smaller than the $c\\Delta t$—the distance travelled by the numerical solution in one time step—it's no longer possible for the numerical scheme to solve the equation correctly!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![CFLcondition](figures/CFLcondition.png)\n", "#### Graphical interpretation of the CFL condition." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the illustration above. The green triangle represents the _domain of dependence_ of the numerical scheme. Indeed, for each time step, the variable $u_i^{n+1}$ only depends on the values $u_i^{n}$ and $u_{i-1}^{n}$. \n", "\n", "When the distance $c\\Delta t$ is smaller than $\\Delta x$, the characteristic line traced from the grid coordinate $i, n+1$ lands _between_ the points $i-1,n$ and $i,n$ on the grid. We then say that the _mathematical domain of dependence_ of the solution of the original PDE is contained in the _domain of dependence_ of the numerical scheme. \n", "\n", "On the contrary, if $\\Delta x$ is smaller than $c\\Delta t$, then the information about the solution needed for $u_i^{n+1}$ is not available in the _domain of dependence_ of the numerical scheme, because the characteristic line traced from the grid coordinate $i, n+1$ lands _behind_ the point $i-1,n$ on the grid. \n", "\n", "The following condition thus ensures that the domain of dependence of the differential equation is contained in the _numerical_ domain of dependence: \n", "\n", "\\begin{equation}\\sigma = \\frac{c \\Delta t}{\\Delta x} \\leq 1 \n", "\\end{equation}\n", "\n", "As can be proven formally, stability of the numerical solution requires that step size `dt` is calculated with respect to the size of `dx` to satisfy the condition above. \n", "\n", "The value of $c\\Delta t/\\Delta x$ is called the **Courant-Friedrichs-Lewy number** (CFL number), often denoted by $\\sigma$. The value $\\sigma_{\\text{max}}$ that will ensure stability depends on the discretization used; for the forward-time/backward-space scheme, the condition for stability is $\\sigma<1$.\n", "\n", "In a new version of our code—written _defensively_—, we'll use the CFL number to calculate the appropriate time-step `dt` depending on the size of `dx`. \n", " " ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "def linearconv(nx):\n", " \"\"\"Solve the linear convection equation.\n", " \n", " Solves the equation d_t u + c d_x u = 0 where \n", " * the wavespeed c is set to 1\n", " * the domain is x \\in [0, 2]\n", " * 20 timesteps are taken, with \\Delta t computed using the CFL 0.5\n", " * the initial data is the hat function\n", " \n", " Produces a plot of the results\n", " \n", " Parameters\n", " ----------\n", " \n", " nx : integer\n", " number of internal grid points\n", " \n", " Returns\n", " -------\n", " \n", " None : none\n", " \"\"\"\n", " dx = 2/(nx-1)\n", " nt = 20 \n", " c = 1\n", " sigma = .5\n", " x = numpy.linspace(0,2,nx)\n", " \n", " dt = sigma*dx\n", "\n", " u = numpy.ones(nx) \n", " lbound = numpy.where(x >= 0.5)\n", " ubound = numpy.where(x <= 1)\n", " u[numpy.intersect1d(lbound, ubound)]=2 \n", "\n", " un = numpy.ones(nx)\n", "\n", " for n in range(nt): \n", " un = u.copy() \n", " u[1:] = un[1:] -c*dt/dx*(un[1:] -un[0:-1]) \n", " u[0] = 1.0\n", " \n", " pyplot.plot(x, u, color='#003366', ls='--', lw=3)\n", " pyplot.ylim(0,2.5);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, it doesn't matter how many points we use for the spatial grid: the solution will always be stable!" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(41)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAELCAYAAADZW/HeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHs5JREFUeJzt3Xl8VOXZ//HPlQWQNUoUQVQQBKo/NmlRBDVuFBVFXCru\nC6ItPn0e64K2j2gs1ketrVtFUUS60NrWpYBFtFVSlFpRUQEBLTWIFYGyhwRCluv3xxximEwyWWZy\nJsn3/XrNKzP33OfMlcNhvplzn3OPuTsiIiJpYRcgIiKpQYEgIiKAAkFERAIKBBERARQIIiISUCCI\niAigQBARkUBGTU+a2SDgBmA4UAqkA38Fprj7pjjLrgG2xnjqZnd/o17ViohI0lhNF6aZ2SpgGXCF\nu+8ys27A60Q+WQx09901LJvv7j0TXbCIiCRHvENG5cBt7r4LwN3XAT8FjgTOTHJtIiLSiGo8ZAQM\ncPfSqLavgp9ZSahHRERCUuMnhBhhANAHcGBhvJWb2f1mtsjMPjGzV83s7HrWKSIiSVans4zMLB0Y\nD0x399Vxum8E3nf34cDRwGxgtpndUK9KRUQkqWocVK7S2SwXOAs4ce+4Qp1ezOxl4ATgIHcvruvy\nIiKSPLX+hGBmVwMXAGfUJwwCi4EOwFH1XF5ERJIk3qAyAGZ2OXATcEq86w+C/m2AdHcvjHqqLPiZ\nXs1y+nIGEZE6cndLxHrifkIws8uAScCp7r4xaBttZhMq9eliZpULGgf8LMbqhgC7gRXVvZ6765aA\n21133RV6Dc3ppu2p7Zmqt0SqMRDM7FLgaWAmMNLMLgsC4mygW9BnOLAOeDxq8YvN7JuV1nURMAZ4\nwN2LEvYbiIhIQsQ7ZPQo0IrIxWiVOXB3cH8nkSkq1lV6fh7QHZhqZplErlnYAlzv7tMbWrSIiCRe\njYHg7p3jrcDdPwKyo9o2AvcENwlBTk5O2CU0K9qeiaXtmZrqdNppspmZp1I9IiKpzszwxhpUFhGR\nlkGBICIigAJBREQCCgQREQEUCCIiElAgiIgIoEAQEZGAAkFERAAFgoiIBBQIIiICKBBERCSgQBAR\nEUCBICIiAQWCiIgACgQREQkoEEREBFAgiIhIQIEgIiKAAkFERAIKBBERARQIIiISUCCIiAigQBAR\nkYACQUREAAWCiIgEFAgiIgIoEEREJKBAEBERQIEgIiIBBYKIiAAKBBERCdQYCGY2yMyeNrMVZrbU\nzD42s0fMLDveis0s08ymmNlKM1tmZovMbHjiShcRkUSK9wnhOSALGOLuA4DTgZHAIjNrE2fZx4AL\ngRHu3h+YAbxmZgMbWLOIiCRBvEAoB25z910A7r4O+ClwJHBmdQuZWV9gAnCfu28Oln0GyAd+koC6\nRUQkweIFwgB3/yyq7avgZ1YNy40FDFgQ1b4AGGlmbWtfooiINIYaA8HdS2M09wEcWFjDogOAMmBt\nVHs+kAEcVYcaRUSkEWTUpbOZpQPjgenuvrqGrtlAkbt7VPuO4GfnuryuSKpbv2k7n6/fQklpGeXl\n5RXt3Q7MovehB1Xpv2V7IRu27KBNq0wO6NSOju3aYGaNWbJIFXUKBGAyUAzcmIRaRFJGaWkZH3zy\nBW99uJq/L/0XX2zYyubthVw3dgS3XvHtKv1nzV/MLQ8/X6X9v8edwiO3XFSl/bfzF/P9nz5X8Tgj\nPY0DOrXjyrOG8cD/nJ/YX0aklmodCGZ2NXABkLN3kLkGm4B2ZmZRnxI6Bj83V7dgbm5uxf2cnBxy\ncnJqW6JIwtzyyPM88rs3qrR/sWFrzP6ZGel1Wn9Jadk+j0vLytm4pYDiklhHaWHpP//N397/lEtG\nDaVzVvs6vZY0L3l5eeTl5SVl3bUKBDO7HLgJOMXdN9VikY+AccCh7DuO0BMoAVZUt2DlQBAJy/ED\nesUMhM3bC2P275rdiaFH9yAzI520tK8P/fTqfmDM/lkd9qPv4V0o2r2HLTuKKNxVDEDnTu1i9n9p\nwQfkPvUyuU+/zD3fG8N1Y08gPV3XlbZE0X8o33333Qlbt1U9zB/Vwewy4DbgVHffGLSNBrq6+9PB\n4y7Axr2fBsysD7ASuMbdf1lpXcuBfHc/u5rXijHsIJIcZWXl/POLjfTrcXCV59b9ZxvDrr6fEwb3\nZsTA3vTvfQjZWe3p0rkjWR0Sf5Lc7uIStuworBhTiHb6xIf56+KVFY8H9TmUxyaNY8Sg3gmvRZoW\nM8PdEzIAVWMgmNmlwHTgDmBDpadOANa5+93B1ccLgWnuPrHSsk8AJwPD3X1zcMjpF8Awd19azesp\nEKRRvLM8n/964Hfkf7mJT1+cEvNNOJU8/dKb/N/M+eR/ue8H9L89dTMnHtMnpKokFTRmIGwmcr1B\n9Is5cLe7/zi48vh14GF3v6fSshnAXUSuVi4hcobRJHdfVMPrKRAk6R6a9VdueuiPFY8nXngSj992\nSYgV1c7u4hIe/PVr3PvsK+wqLuG4/j1Z9Mwk0tJ06Kgla7RAaGwKBEm2F99YwvmTplU8bt0qgx9d\nfQZ3ThgdYlV1s3b9Fm55+Hluu/LbDPnG4WGXIyFTIIjUw6o16znm0nvYVVwCwLABR/CbH1/DEdUM\n/Io0BYkMBH3WlBbjyEMP4rrzTgAiZ//M/fkNzS4MysvLKSsrj99RJAZ9QpAW56kXF3LSMX3oG+Ps\noqasaPceLp88g0MOyuLRW8eFXY40Eh0yEpF9bCso4rSJD/H+yshlP7+YNI4bvnNyyFVJY9AhIxHZ\nR8d2bejZ7evvrfqfn/2BV9/+OMSKpClSIEiz9dWm7S3meHpaWhq/vPtqvnVUDyBy0d0ldzzDtoKi\ncAuTJkWBIM2SuzPmpqkMvHgKLy34gJZwKLJtm1bM/vlEDjko8lUlW7YX8vNZfw25KmlKFAjSLM35\n20e8u2INH3+2jov/dzrrN++Iv1Az0DW7E/d//zzS09MYP2Y41547IuySpAmp6/TXIimvvLycyU/O\nqXg88YKT6JrdKcSKGte4kd/i2P/XM+b3MIjURJ8QpNn5/WvvsWz1lwC02681t181KuSKGld6eprC\nQOpFgSDNSklpGXdOm1vx+AeXnMpBB3SsYQkR2UuBIM1Kmhl3jD+THt06k9WhLTdfdnrYJYk0Gbow\nTZqlPSWlfPyvdQzud1jYpaSEJavWsnDJp9x4yWlhlyIJpiuVRaRWiveUcNnkGTz/+hLMjOW/v5Oj\njugWdlmSQLpSWURqpXWrTAp37QEi12bc+eTcOEtIS6ZAEGnm7pk4puL+C28s4f2Vn4dYjaQyBYI0\neXtKSpm78CNKS8vCLiUlHdPvMM4/5ZiKxw/86tUQq5FUpkCQJm/uwqWcc9NUDhv9Qx7SVA0x3Tnh\nrIr7cxcupaBwd4jVSKrSlcrS5E2f/RYQmcxu205N5hbLgCO7c+FpQ+jf+xCuGj2MDu3ahF2SpCCd\nZSRN2tr1W+hx9o9wd8yMz2bfQ49K00CLNHc6y0gk8OycRRUzmZ5+7DcUBiINoECQJqusrJwZc/5e\n8Xj8mOEhViPS9CkQpMlyd+694VxyhvQhO6s9Y04aGHZJIk2axhCkWdhWUERWh7Zhl9FkuDtvfvBP\n3OGkIX3CLkcaQFNXiEi9vbdiDZfeMYNP127guP49efvZ28MuSRpAg8oiUm89umWTv24TAP9Yls/y\n4LsjRBQIIi1MdlZ7xp48qOLxM7MXhViNpBIFgjQ56zdtp3BXcdhlNGnjx3z9Xcu/mvcPiveUhFiN\npAoFgjQ5P3z8JbqOmsT1P/kNq7/YGHY5TdJpQ/txeNfOAGzZXsif8j4MuSJJBQoEaVJ27NzFH/7y\nPgWFu3nqpTfZsr0w7JKapLS0NK4553gG9unOY7eOY+RxR4VdkqSAWp1lZGZdgWeBke6etBDRWUYS\nz9Mvvcl1P/kNAP17H8JHv5uMWUJOsGhxSkrLyEhP0/Zr4hJ5llHcye3M7DzgQWAPUKd3azNbA2yN\n8dTN7v5GXdYlAvCbV96puH/NOcfrzawBMjPSwy5BUkxtZju9GTgFyAXqegWLu/vguhYlEsva9VtY\nuOSfAKSlGeNGfivkikSal9oc/hnh7muSXYhIPIW7ijnnxIFkZqRz2tBvcHB2p7BLEmlWan2lspnN\nBK6oyxiCmeW7e8869NcYgsS1edtONm8vpM/hXcIupVkpKytnzVeb6dX9wLBLkTpo1DGEhjKz+4ER\nQDawBviFu+ubvqXeOme1p3NW+7DLaDa279xF7rS5PPfau2RkpPP53HtJS9MJiC1Rsv/VNwLvu/tw\n4GhgNjDbzG5I8uuKSC21bdOK37zyDus37+DfG7ZWjNNIy5PUQHD3Y939D8H9UnefCswD7jWz1sl8\nbRGpncyMdL5z+pCKx7PmLw6xGglTGJ8LFwMdAF0JI5IiLh11bMX9519foqksWqikjSGYWRsg3d2j\nLyUtC37GPAk6Nze34n5OTg45OTnJKE+akJsf+iNfbtzGpWcM5dvDjqZVZtKHvlqcYQOOoOch2eR/\nuYltBUXMW7ScsSfrjPFUlJeXR15eXlLWXdezjC5395hv5GbWBdi49zQhM7sKOM7dvxvV70VgFJDt\n7kVRz+ksI9nHnpJSuo6aVDFFxcKnb+GEwUeGXFXzdMfUP3Hvs/M56ZgjuWP8mZw69BthlyS1EOZZ\nRjFf1MyGAwuBacDESk9dbGbT3f29oN9FwBhgSnQYiMTy6tsfV4TBYQcfwPCBvUKuqPn6/kWn8N3z\nT6J7l/3DLkVCUpupK6YCZxA5bdTNLJ/IFBZ93X3vgcYCIlNUrKu06DygOzDVzDKBLGALcL27T0/c\nryDN2axXvh7gvGTUUJ0OmURdOncMuwQJmb5CU1JWQeFuuoy8hV3Fkb87lj53J/17HxJyVSKpRV+h\nKS3CB5+srbjfv/chCgORJNMnBElpO4t286e8D2nTKpMLThsSfwGRFiaRnxAUCCKyj/Lyct78YDWz\n5r/Dv/79H15/4qawS5IaNKm5jESkadlRuJtR//0ou4OxmyWr1nJMv8NCrkoag8YQRGQfWR3acsEp\nx1Q8nv6nt0KsRhqTAkFEqrj23BEV92e98g5Fu/eEWI00FgWCpJz7Zs7nt/MXVxyykMZ34jFH0vvQ\ng4DIIaQXXl8SckXSGBQIklK2bC8k96m5XHrHM3QdNYmvNm0Pu6QWycy4dsxwIDIb6pqvNodckTQG\nDSpLSpn1yjsU7ykFoFf3bLrqazJDc+XoYbTKzODys44jW19I1CIoECRluDtPVxrAvHbMiBp6S7Id\nnN2JH1x6WthlSCPSISNJGe+t+Jxlq78EYL/WmVw8amjIFYm0LAoESRm/e/XriewuPG0IndrvF2I1\nIi2PrlSWlFFSWsa8t5bxzOxFTLry24wY1DvskkRSnqauEJFGVVZWzqtvf8wzsxfx8M3f4dCDDwi7\nJAlo6goRaVSXTZ7Bc6+9C8Cgvocy+dqzQq5IkkFjCCIS15iTBlbcf2b2IsrLy0OsRpJFgSAicZ2b\nM4gDOrUD4POvNvPK3z8OuSJJBgWChOrfG7Zy6yPPs2nbzrBLkRq0aZ3JlWcdV/H4rmlz0Hhf86NA\nkFBNmf5nHvz1X+h5zo+YMXtR2OVIDW65fCRtWmcC8J+tO/n3hq0hVySJpkFlCc3qLzYyY04kBHYW\nFXOYzlxJad0OzOKuCaNpv19rJowdQetWmWGXJAmmQJDQ5D41l9KyyOBkzpA+nDq0X8gVSTy3XzUq\n7BIkiXTISEKxfPWX/Hb+uxWPfzLxXMwSciq1iNSTAkFC8Zd3VlYMSp41oj/HD+wVckUioiuVJTQf\nfvIFk5+czY+vP4fB+s7eJqt4T+SLjDSmEA5NXSEioSstLePX8/5B7lMvc+PFp2qq7JAoEEQkdM/O\nWcQ1P/4VAAfu34F//ekeOrRrE3JVLU8iA0FjCCJSL5eMGlpxqvB/thbwyO9eD7kiaSgFgjSaN95d\nRVmZ5sBpLlq3yuSuCaMrHt8zYx5vL/1XiBVJQykQpFG8+MYSTv3eQ5x7y1QKCneHXY4kyBVnHUf/\n3ocAULynlGvv+bUmvmvCFAiSdO+v/JzLJs8A4OU3l3HrIy+EXJEkSkZGOi89+D06d2pHvx4HM+fn\nN5CWpreVpkqDypJUX27cytAr72Pdf7YB0Kv7gbwz83Y6Z7UPuTJJpA9WraVHt87s37Fd2KW0OI0+\nqGxmXc1svpnps6DUWuGuYs7+weMVYZDVoS1/fvi/FAbN0OB+hykMmoG4gWBm5wGLgB5Anf58N7NM\nM5tiZivNbJmZLTKz4fUrVZqaPSWldGy3HwAZ6Wk8f/919O1xcMhViUh14h4yMrNFwKVALnCFu9f6\nAKGZPQnkAMPdfbOZjQceBY53949i9Ncho2ZmT0kp3713FsMGHMGEsSeEXY40InfnvpnzKdq9hx9e\nfQZt27QKu6RmqVEvTLPgXdrMZlKHQDCzvsAKYLy7z6zUvhxY4+6jYyyjQGiG3F0T17UwxXtKuP7e\nWfzy5bcBOOzgA3jopgsZe/Jg7QsJ1qhjCA14hx4LGLAgqn0BMNLM2tZzvZJi3J05f/uI385fHPN5\nvQG0PNsKdrEy/6uKx2vXb+H8SdMYecMjrFqzPsTKpCbJ/D6EAUAZsDaqPT943aOA95L4+pJERbv3\n8M7yfN76cDWv/WMFb324mqwObTn92G9w4P4dwi5PQtalc0fefvY2Zsz5O7c/9iKbtxcC8NfFK1my\nai39NJaUkpIZCNlAUYxPGDuCn52T+NpSR2Vl5ewpKaWktIzSsnJKSsvYUbiLrA5tY77Bn3Tdg7y3\n4vN92rYVFDFl+p959NZxjVW2pLC0tDSuPXcE5508mDufnMMTL/yN4QN7cfG3v1Wl786i3Tzwq9fo\nckAHOndqT+dO7eic1Z6u2Z3omt0phOpbppT7xrTMY7+3z+MfXXMGd19/TpV+P3lmHrlPza3Srv7V\n93fgjmvOJPf6s6v0v/vpl5ky/c9V2h+88QJuvuz0Ku3D+h+xTyCYGdeNPYE7J1QZGpIW7oBO7fjF\nbRczYewIWmVmxDyE+I9l+TH3v3NOHMjsn0+s0r53Yr296zKL7INXjR7G9MlXVOk/c+7fmXDPr6u0\nX9kM+idSMgNhE9DOqo4Udwx+bo61UGnUXDfl5bGHMMrdq/RV//j9y6qZViAjPfZw0ubtO2O2nzj4\nSF5/dxUnDDqSEYN6kTOkL9277B+zrwjAwD6HVvvcWx+ujtmeXc01K3vfUfa+tUR+eLX7t9fx/0NT\n719fyQyEj4BxwKHsO47QEyghcgZSVesqDSt06Ja04mRfbVplsl/rTDIy0slITyMzI512+7Wm/X6t\nY/a/4LQhXHDakEauUpqr4QN78aOrz2Dz9kI2b98Z/CykV/fssEtLPQXrIjfggwUbErrqWk9dEZx2\nerm7p1fzfBdg495PA2bWB1gJXOPuv6zUbzmQ7+5VjluYme8pKd2nLc2M9Bh/vZaVlVMeo3b1r19/\nkabE3ff5dODuOJHTGjMyqr5FlZeXUxbj03Rz6J+ZmZGw007r+gkh5osGVx8vBKYBEwHc/VMzewr4\noZm9HFyYdjWRTwiXVPcCmTE2Rizp6WnUrqf6izQ3Zlan05nT0tKoy5x7Tb1/fcUNBDObCpxB5Kwh\nN7N8IuOTfd29JOhWAGwF1kUt/n3gLmCRmZUQOcNopLsvTVD9IiKSIJrtVESkCdNXaIqISMIpEERE\nBFAgiIhIQIEgIiKAAkFERAIKBBERARQIIiISUCCIiAigQBARkYACQUREAAWCiIgEFAgiIgIoEERE\nJKBAEBERQIEgIiIBBYKIiAAKBBERCSgQREQEUCCIiEhAgSAiIoACQUREAgoEEREBFAgiIhJQIIiI\nCKBAEBGRgAJBREQABYKIiAQUCCIiAigQREQkoEAQERFAgSAiIgEFgoiIAJARr4OZHQQ8BAwJmpYB\nN7r7l7VYdg2wNcZTN7v7G3WoU0REkqzGQDCzVsBfgFXAUUHzDGCBmQ1298I463d3H9zwMkVEJNni\nHTK6EugP3Obu5e5eDtwGHAF8L9nFiYhI44kXCOcDn7v7mr0N7r4BWBE8JyIizUS8QBgA5MdoX0Pk\nk0NcZna/mS0ys0/M7FUzO7uONYqISCOIFwjZQEGM9h1AWzNrHWf5jcD77j4cOBqYDcw2sxvqXKmI\niCRVvEDwhqzc3Y919z8E90vdfSowD7i3FmEiIiKNKN5pp5uADjHaOwKF7l5cj9dcDJxJ5KylD6Kf\nzM3Nrbifk5NDTk5OPV5CRKR5ysvLIy8vLynrNvfqPwSY2StAP3fvGdW+DChw9+NrWLYNkB59aqqZ\n/S8wBRjq7u9FPec11SMiIvsyM9zdErGueIeMXgQON7PDK714F6Af8EJUUV3MrHJR44CfxVjnEGA3\nkTOVREQkRcQLhJlErky+38zSzSwNuA/4DHhibyczGw6sAx6PWv5iM/tmpX4XAWOAB9y9qOHli4hI\notQ4huDuJWZ2OpGpK1YQGWReBpwS9YZeQGSKinWV2uYB3YGpZpYJZAFbgOvdfXrifgUREUmEGscQ\nGpvGEERE6qYxxxBERKSFUCCIiAigQBARkYACQUREAAWCiIgEFAgiIgIoEEREJKBAEBERQIEgIiIB\nBYKIiAAKBBERCSgQREQEUCCIiEhAgSAiIoACQUREAgoEEREBFAgiIhJQIIiICKBAEBGRgAJBREQA\nBYKIiAQUCCIiAigQREQkoEAQERFAgSAiIgEFgoiIAAoEEREJKBBERARQIIiISECBICIigAJBREQC\ncQPBzA4ys1lmtiq4/dHMDqnNys0s08ymmNlKM1tmZovMbHjDyxYRkUSrMRDMrBXwFyADOCq4FQIL\nzKxdLdb/GHAhMMLd+wMzgNfMbGCDqhYRkYQzd6/+SbMJwDTgCHdfE7R1Ab4Ebnf3B2tYti+wAhjv\n7jMrtS8H1rj76BjLeE31iIjIvswMd7dErCveIaPzgc/3hgGAu28g8kZ/fpxlxwIGLIhqXwCMNLO2\ndStVRESSKV4gDADyY7SvAfrXYtkyYG1Uez5fH4KSJMnLywu7hGZF2zOxtD1TU7xAyAYKYrTvANqa\nWes4yxbFOAa0I/jZuXYlSn3oP1xiaXsmlrZnaooXCDqgLyLSQsQLhE1AhxjtHYFCdy+Os2w7M4se\n7OgY/NxcuxJFRKQxxDvL6BWgn7v3jGpfBhS4+/E1LHsb8H9AD3dfW6n9MeA6YH93L4paRp9IRETq\nKFFnGWXEef5FYJqZHe7un0PFaaf9gNsrdwzaN1YaM3gJuBc4Gfhlpa4nA69FhwEk7pcSEZG6i3fI\naCawDLjfzNLNLA24D/gMeGJvp+Dq43XA43vb3P1T4Cngh2bWOeh3NdAT+N8E/g4iIpIANQaCu5cA\npxM5fXRFcGsPnBL1F34BsJVIKFT2feCPwKLgMNO1wEh3X5qY8kVEJFFqHEMQae7MrCvwLJE/VDTZ\nYwNoWzZ9Sf9H0+R4idXA7bnGzD6IcTsl2XWnIjM7D1gE9KCOp1hr39xXA7el9ssoZjbIzJ42sxVm\nttTMPjazR8wsuxbL1n/fdPek3YBWwEfA74mETxqRcYlPgXa1WP5JYBXQOXg8nsjkegOTWXeq3hKw\nPfPD/h1S6cbXb2AzgfI6Lqt9M3HbMj/s+lPtFuxbfwT2Cx53A1YCnwBt4ixb730z2b/UBKCcyKmn\ne9u6AKXALXGW7Utk7OKqqPblwMth/4OFtJPUe3sGffPD/h1S6cbXh0zr9CamfTNx2zJYJj/s+lPt\nRmS89oiotmuC///n1bBcg/bNZB8y0uR4idWQ7SlRPPifUg/aN6M0YFtKbAPc/bOotq+Cn1k1LNeg\nfTPZgaDJ8RKrIdsTADO7Pzim+ImZvWpmZyeywBZC+2aCab/cl7uXxmjuQ2R8ZmENizZo30x2IGhy\nvMRqyPYE2Ai87+7DgaOB2cBsM7shsWU2e9o3E0v7ZRxmlk5kLGC6u6+uoWuD9s1kB4I+RiZWg7an\nux/r7n8I7pe6+1RgHnBvLcJEJCm0X9bKZKAYuDGZL5LsQNDkeInVkO1ZncXBOnWYo/a0byaf9stA\nMMPDBcAZ7r4rTvcG7ZvJDoSlRKaqiNaTyJQYNfmISH2Hxli2hMhAaktT7+1pZm2q+R7ssuBnegNr\na0m0byaI9suamdnlwE1EZofYVItFGrRvJjsQXgQON7PD9zZUmhzvhcodzaxLVKq9ROQQyclR66x2\ncrwWoCHbcxzwsxjrHALsRm9i1R6O075ZZ3XZltovq2FmlwGTgFPdfWPQNtoi33W/t09i980kn0ub\nSSSxniOS9GlELm3/BGhbqd9wIn8RTI1a/gn2vcDiaiIXWAwI+zzhMG4N2Z7AVcB24JuV2i4K+uWG\n/buFvF1nUs2589o3k7sttV9Wux0vBXYBNwOXVbpNA+6qbnsG7fXeN+NNf90g7l5iZqcDDxFJeidy\naKMuk+PdRWRyvBIiI+UtdnK8Bm7PeUB3YKqZZRI5l3kLcL27T2+M+lONmU0FziByZoabWT6RbdrX\nIxM7gvbNWmnAttR+GdujRGYm+GlUuwN3B/d3kuB9U5PbiYgI0AiT24mISNOgQBAREUCBICIiAQWC\niIgACgQREQkoEEREBFAgiIhIQIEgIiKAAkFERAIKBBERAeD/AyP8/cF1ZNBmAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(61)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(81)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(101)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nryJ5oYCK+QAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "linearconv(121)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice that as the number of points `nx` increases, the wave convects a shorter and shorter distance. The number of time iterations we have advanced the solution to is held constant at `nt = 20`, but depending on the value of `nx` and the corresponding values of `dx` and `dt`, a shorter time window is being examined overall. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "\n", "###### The cell below loads the style of the notebook." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML\n", "css_file = '../../styles/numericalmoocstyle.css'\n", "HTML(open(css_file, \"r\").read())" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3" } }, "nbformat": 4, "nbformat_minor": 0 }