{
  "metadata": {
    "name": ""
  },
  "nbformat": 3,
  "nbformat_minor": 0,
  "worksheets": [
    {
      "cells": [
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [
            "from __future__ import division\n",
            "import numpy as np\n",
            "import scipy as sp\n",
            "import scipy.special as ss\n",
            "import matplotlib.pyplot as pt\n",
            "import numpy.linalg as la\n",
            "\n",
            "%pylab inline"
          ],
          "language": "python",
          "metadata": {},
          "outputs": [
            {
              "output_type": "stream",
              "stream": "stdout",
              "text": [
                "Populating the interactive namespace from numpy and matplotlib\n"
              ]
            },
            {
              "output_type": "stream",
              "stream": "stderr",
              "text": [
                "WARNING: pylab import has clobbered these variables: ['f']\n",
                "`%pylab --no-import-all` prevents importing * from pylab and numpy\n"
              ]
            }
          ],
          "prompt_number": 8
        },
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [
            "nelements = 5\n",
            "nnodes = 3\n",
            "mesh = np.linspace(-1, 1, nelements+1, endpoint=True)\n",
            "gauss_nodes = ss.legendre(nnodes).weights[:, 0]*0.5 + 0.5\n",
            "\n",
            "widths = np.diff(mesh)\n",
            "nodes = mesh[:-1, np.newaxis] + widths[:, np.newaxis] * gauss_nodes"
          ],
          "language": "python",
          "metadata": {},
          "outputs": [],
          "prompt_number": 21
        },
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [
            "def f(x):\n",
            "    return np.abs(x-0.123812378)\n",
            "\n",
            "pt.plot(nodes.flat, f(nodes).flat)"
          ],
          "language": "python",
          "metadata": {},
          "outputs": [
            {
              "metadata": {},
              "output_type": "pyout",
              "prompt_number": 22,
              "text": [
                "[<matplotlib.lines.Line2D at 0x107b3dc10>]"
              ]
            },
            {
              "metadata": {},
              "output_type": "display_data",
              "png": "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\nRU5ErkJggg==\n",
              "text": [
                "<matplotlib.figure.Figure at 0x107a404d0>"
              ]
            }
          ],
          "prompt_number": 22
        },
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [
            "nmany_nodes = 32\n",
            "\n",
            "many_gauss_nodes = ss.legendre(nmany_nodes).weights[:, 0]*0.5 + 0.5\n",
            "many_nodes = mesh[:-1, np.newaxis] + widths[:, np.newaxis] * many_gauss_nodes\n",
            "\n",
            "def legendre_vdm(nodes, nmodes):\n",
            "    result = np.empty((len(nodes), nmodes))\n",
            "    for i in xrange(nmodes):\n",
            "        result[:, i] = ss.eval_legendre(i, nodes)\n",
            "    return result\n",
            "\n",
            "vdm = legendre_vdm(gauss_nodes, nnodes)\n",
            "many_vdm = legendre_vdm(many_gauss_nodes, nnodes)\n",
            "zero_pad = np.zeros((nmany_nodes, nnodes))\n",
            "zero_pad[:nnodes, :nnodes] = np.eye(nnodes)\n",
            "upterpolate = np.dot(many_vdm, la.inv(vdm))"
          ],
          "language": "python",
          "metadata": {},
          "outputs": [],
          "prompt_number": 23
        },
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [
            "fnodes = f(nodes)\n",
            "fmany_nodes = np.dot(upterpolate, fnodes.T).T\n",
            "pt.plot(many_nodes.flat, fmany_nodes.flat)"
          ],
          "language": "python",
          "metadata": {},
          "outputs": [
            {
              "metadata": {},
              "output_type": "pyout",
              "prompt_number": 24,
              "text": [
                "[<matplotlib.lines.Line2D at 0x107bcc410>]"
              ]
            },
            {
              "metadata": {},
              "output_type": "display_data",
              "png": "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\n",
              "text": [
                "<matplotlib.figure.Figure at 0x107a2df50>"
              ]
            }
          ],
          "prompt_number": 24
        },
        {
          "cell_type": "code",
          "collapsed": false,
          "input": [],
          "language": "python",
          "metadata": {},
          "outputs": []
        }
      ],
      "metadata": {}
    }
  ]
}