{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Airy stress functions method" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The method of Airy stress functions is a method to find the stress distribution in an\n", "elastic solid. The method uses a Airy stress function $\\varphi$, a\n", "[scalar potential](https://en.wikipedia.org/wiki/Potential_theory), and can be used\n", "when:\n", "\n", "- The problem is two dimensional.\n", "- The body forces are derivable from a potential function $V$, i.e.,\n", "\n", "$$\\mathbf{b} = -\\nabla V\\, .$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computation of stresses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The stresses are computed from the Airy functions as\n", "\n", "\\begin{align}\n", "\\sigma_{xx} &= \\frac{\\partial^2 \\varphi}{\\partial y^2}\\\\\n", "\\sigma_{yy} &= \\frac{\\partial^2 \\varphi}{\\partial x^2}\\\\\n", "\\sigma_{xy} &= -\\frac{\\partial^2 \\varphi}{\\partial x \\partial y}\\, ,\n", "\\end{align}\n", "\n", "in Cartesian coordinates, and\n", "\n", "\\begin{align}\n", "\\sigma_{rr} &= \\frac{1}{r}\\frac{\\partial \\varphi}{\\partial r} + \\frac{1}{r^2}\\frac{\\partial^2 \\varphi}{\\partial r^2}\\\\\n", "\\sigma_{\\theta\\theta} &= \\frac{\\partial^2 \\varphi}{\\partial r^2}\\\\\n", "\\sigma_{r\\theta} &= -\\frac{\\partial}{\\partial r}\\left(\\frac{1}{r}\\frac{\\partial \\varphi}{\\partial \\theta}\\right)\\, ,\n", "\\end{align}\n", "\n", "in polar coordinates.\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Airy stress functions are biharmonic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In 2D, the compatibility equations and equilibrium imply\n", "\n", "$$\\nabla^2 \\sigma_v = \\frac{4}{1 + \\kappa} \\nabla^2 V\\, ,$$\n", "\n", "where $\\sigma_v = \\mathrm{Tr}\\,(\\sigma)$ is the volumetric component of the\n", "stress tensor, and\n", "\n", "$$\\kappa =\n", "\\begin{cases}\n", "3 - 4\\nu\\quad \\text{plane strain}\\\\\n", "\\frac{3 - \\nu}{1 + \\nu}\\quad \\text{plane strain}\n", "\\end{cases}$$\n", "\n", "Then, plugging the Airy stress function into this equation leads to\n", "\n", "$$\\nabla^2 \\nabla^2 \\varphi = -\\frac{2(\\kappa - 1)}{(1 + \\kappa)} \\nabla^2 V$$\n", "\n", "or, just\n", "\n", "$$\\nabla^4 \\varphi = -\\frac{2(\\kappa - 1)}{(1 + \\kappa)} \\nabla^2 V$$\n", "\n", "for short.\n", "\n", "This means that the Airy stress functions are biharmonic, that is,\n", "they satisfy the above equation." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from sympy import *\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from matplotlib import rcParams" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "x, y, z, t = symbols('x y z t')\n", "f, g, h = symbols('f g h', cls=Function)\n", "init_printing()" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%matplotlib notebook\n", "plt.style.use(\"seaborn-notebook\")\n", "plt.rcParams[\"image.cmap\"] = \"RdYlBu_r\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following cell contains the routines that we will use in the remaining\n", "part of the notebook." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def poly_airy(x, y, order, coeff=\"c\"):\n", " \"\"\"Return a polynomial of a given order in x and y\n", " \n", " The coefficients of the polynomial are returned as a set in the\n", " variable ``c``.\n", " \"\"\"\n", " num = (order**2 + 3*order + 2)/2\n", " c = symbols('%s0:%d' % (coeff, num))\n", " terms = [x**(order - k - j) * y**k\n", " for j in range(0, order - 1)\n", " for k in range(0, order + 1 - j)]\n", " phi = sum(c[k]*term for k, term in enumerate(terms))\n", " return phi, c\n", "\n", "\n", "def airy_stress(phi, x, y):\n", " \"\"\"Return stresses from the Airy stress function\n", " \n", " The coordinate system is Cartesian\n", " \"\"\"\n", " return diff(phi, y, 2), diff(phi, x, 2), -diff(phi, y, 1, x, 1)\n", "\n", "\n", "def conds2eqs(conds, var=(x, y)):\n", " \"\"\"Turn the list of boundary conditions into equations to be solved\n", " \n", " In general, the final list can have repeated equations. Thus, we\n", " are removing those before returning it.\n", " \"\"\"\n", " eqlist = [coef for cond in conds for coef in Poly(cond, var).coeffs()]\n", " return list(set(eqlist))\n", "\n", "\n", "def plot_contours(x_coord, y_coord, field, fig=None, figsize=(7, 2), lines=True):\n", " \"\"\"Plot the contours for a solution\"\"\"\n", " if fig is None:\n", " fig = plt.figure(figsize=figsize)\n", " f_max = max(np.max(field), -np.min(field))\n", " plt.contourf(x_coord, y_coord, field, vmin=-f_max, vmax=f_max)\n", " plt.colorbar()\n", " if lines:\n", " plt.contour(x_coord, y_coord, field, colors=\"k\")\n", " plt.axis(\"image\")\n", " return fig" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solutions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cantilever beam with load at the end\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A cantilever beam is a beam that is *anchored* at one end. In this case,\n", "the beam has length $L$ and height $h$. The force $F$ is applied at\n", "$x=L$." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "L, h, F = symbols(\"L h F\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To choose the Airy polynomial we need to fix the maximum power. This\n", "seem to be arbitrary, but we can use the intuition that we have grasped\n", "in the study of resistance of materials. Taking that into account,\n", "we should have stresses with powers of two, then the Airy stress functions\n", "should have at least powers of 4.\n", "\n", "Picking 4 as maximum power will let us recover the desired\n", "solution, but in general we don't know this beforehand, and we should\n", "use a trial and error procedure. You could try with a maximum power of\n", "10 for this example and it should still give you the same answer. \n", "It will take a while, though." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle c_{0} x^{4} + c_{1} x^{3} y + c_{10} x y + c_{11} y^{2} + c_{2} x^{2} y^{2} + c_{3} x y^{3} + c_{4} y^{4} + c_{5} x^{3} + c_{6} x^{2} y + c_{7} x y^{2} + c_{8} y^{3} + c_{9} x^{2}$" ], "text/plain": [ " 4 3 2 2 2 3 4 3 \n", "c₀⋅x + c₁⋅x ⋅y + c₁₀⋅x⋅y + c₁₁⋅y + c₂⋅x ⋅y + c₃⋅x⋅y + c₄⋅y + c₅⋅x + c₆⋅x\n", "\n", "2 2 3 2\n", " ⋅y + c₇⋅x⋅y + c₈⋅y + c₉⋅x " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi, c = poly_airy(x, y, 4)\n", "\n", "phi" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 \\left(c_{11} + c_{2} x^{2} + 3 c_{3} x y + 6 c_{4} y^{2} + c_{7} x + 3 c_{8} y\\right)$" ], "text/plain": [ " ⎛ 2 2 ⎞\n", "2⋅⎝c₁₁ + c₂⋅x + 3⋅c₃⋅x⋅y + 6⋅c₄⋅y + c₇⋅x + 3⋅c₈⋅y⎠" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 \\left(6 c_{0} x^{2} + 3 c_{1} x y + c_{2} y^{2} + 3 c_{5} x + c_{6} y + c_{9}\\right)$" ], "text/plain": [ " ⎛ 2 2 ⎞\n", "2⋅⎝6⋅c₀⋅x + 3⋅c₁⋅x⋅y + c₂⋅y + 3⋅c₅⋅x + c₆⋅y + c₉⎠" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 3 c_{1} x^{2} - c_{10} - 4 c_{2} x y - 3 c_{3} y^{2} - 2 c_{6} x - 2 c_{7} y$" ], "text/plain": [ " 2 2 \n", "- 3⋅c₁⋅x - c₁₀ - 4⋅c₂⋅x⋅y - 3⋅c₃⋅y - 2⋅c₆⋅x - 2⋅c₇⋅y" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s11, s22, s12 = airy_stress(phi, x, y)\n", "display(s11, s22, s12)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " The stress\n", "boundary conditions for this problem are:\n", "\n", "\\begin{align}\n", "&\\sigma_{22}(x, y=h/2) = 0\\\\\n", "&\\sigma_{12}(x, y=h/2) = 0\\\\\n", "&\\sigma_{22}(x, y=-h/2) = 0\\\\\n", "&\\sigma_{12}(x, y=-h/2) = 0\n", "\\end{align}\n", "\n", "Additionally, we have weak boundary conditions. That means, that\n", "we are not satisfying a distribution of tractions point-wise but\n", "in an average sense, namely\n", "\n", "\\begin{align}\n", "&\\int_{-h/2}^{h/2} \\sigma_{11} \\mathrm{d}y = 0\\\\\n", "&\\int_{-h/2}^{h/2} \\sigma_{12} \\mathrm{d}y = F\\\\\n", "&\\int_{-h/2}^{h/2} y\\sigma_{11} \\mathrm{d}y = 0\\, .\n", "\\end{align}\n", "\n", "With the weak conditions we are imposing that the system satisfy\n", "global equilibrium" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "t1 = s22.subs(y, h/2)\n", "t2 = s12.subs(y, h/2)\n", "t3 = s22.subs(y, -h/2)\n", "t4 = s12.subs(y, -h/2)\n", "t5 = s11.subs(x, L)\n", "t6 = s12.subs(x, L)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "conds = [t1, t2, t3, t4,\n", " integrate(t5, (y, -h/2, h/2)),\n", " integrate(t6, (y, -h/2, h/2)) - F,\n", " integrate(y*t5, (y, -h/2, h/2)),\n", " diff(phi, x, 4) + diff(phi, y, 4) + 2*diff(phi, x, 2, y, 2)]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACO8AAAA1CAYAAAATFl21AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4Ae2djdHVttaFA0MBhFvBBx1AUgFJB+GmgpAOYFIBAx1AKkigg0AFgXQQbgWBtwO+tfxKjqwjW5It2bK9NONjW9bP3s/Wn2Ud+8aXL1++khMBERABERABERABEbgmcOPGjec4+gfbPWx3sP2E8dIV9qd24nJq82cpb8rKbUS6i+0jtqeqQ1kImwssmzZnEgkkAiIgAiLQKAGNmRs1jMQSAREQAREQARE4JQHNZ5zS7IdSWmX4UOZMUuaGFu8kcVIgERABERABERCBExDAYPgl1PyA8dErqmvO7+L8+xOoP6qiuIyi0QWPgLmhfIk6w0U7rEOvsWMdeuAF1elOCMimOzGUxBQBERABEdicgMbMm5tAAoiACIiACIiACIhAT0DzGT0KHeyUgMrwTg23UOybC+MrugiIgAiIgAiIgAgcjQDfuGPdBxx8Z09OvheXkxeARPV/8MI9w/l93GzyLTxy+yQgm+7TbpJaBERABERgGwIaM2/DXbmKgAiIgAiIgAiIgE9A8xk+EZ3vjYDK8N4sVkDem5hI/4zti7fxcxFyIiACIiACIiACInAqAng7yM/YnjpK820hb53zUx6KyynNvkRpd6GO/eSc67ckbcXdhoBrP9l0GxsoVxEQAREQgcYJaMzcuIEkngiIgAiIgAiIwBkJaD7jjFY/ls4qw8eyZ68N1uY899bncL3O51smxCPsu1fbm3P3uE9EByIgAiIgAiIgAiJwFgIYKN2Grv/F9vAsOqfoKS4plM4bBg+t3H+bE8R9Q+P9eansW3PZdN/2k/QiIAIiIALbENCYeRvuylUEREAEREAEREAELAHNZ1gS2u+VgMrwXi2XLDffWP+bE5oLtX61i3c+ogD85VzUoQiIgAiIgAiIgAgUJYAJ7MdI8Hts9nWPHHtwwfAfGIe8wr6KMxPnr5H4N9g+BQa9F/kizhN4/ojt2VHHSOJyYfbdeMB2HMj/7AjMBTIvUVbfOH7FDueUFSdzvtHzKWSzb2txLulwKwKy6Vbkla8IiIAIiMDeCMzpMxHn8PcSe7Oj5BUBERABERABEShPAGOeVeenqMGcsZmjueaoHBg63IaAyvA23FvM1cyX9+tzUDY6Mfn7GdvDoz6YatEYkkkEREAEREAEzkwAg5Av0J8Lh/03dFTFgnw/IIP3yNdd9DCZJ+K8RIC7iMNFR4d04rIvs8JenBjhYpi+HMOPC+K4QI2ffau5EC6rDkEuTorcdmXFuVxDBHLrv2zakPEkigiIgAiIwKoEcvtMCoc4h7+XWNUIykwEREAEREAERKAZAhjnbDY/RQi5YzOE1xxVM6VHgqgMqwyECKCd4h90390MXZSfCIiACIiACIiACNQggAHIdybdKm8IicjMwc8fkTD+Zd7YfQe57duC/OtHOBeXfVmRZfGxWyaxOMbWp6eVVUkuK5CPb9rSwp3KBimQvGxaAKKSEAEREAEROAWB5D7ToXGGewlHXR2KgAiIgAiIgAiciMCW81PEnDw20xzViUrlvlRVGd6XvVaTVot3VkOtjERABERABERABEDAvsEmdxHNIni4SbOLht6OJYQwt7F9xsaBs+/u+B5HOBeXXVqRr9LkJ6j6z1Cx7BpNer/SmqWUFZunCXvPvnGH59hC9cpG0X4DArLpBtCVpQiIgAiIwC4JpPSZCHO6e4ldGlNCi4AIiIAIiIAIlCKwyfwUhU8Zm1klTVjNUVkg2jdBQGW4CTM0K8StZiWTYCIgAiIgAiIgAkck0C2iwUP90UU0lZTmoiF+qmt0cQOvYeD8CeHcMPwXCc9/x3ZEJy47s6qpO197YtvFafw0Qy0XLSvMGHWIi3T4L/NnOLZvrOInvh5hk2uLgGzalj0kjQiIgAiIQLsEon3mSe8l2rWYJBMBERABERABEahKYMP5KeoVHZsxkOaoSEGuUQIqw40apgWxbkCIz9geoqHlKkk5ERABERABERABEahGADdNX5D4Xxh3PEjNBHG4EOAfJ/zb3HEL0viA+O+x8Y0/fIvObWwcJP+MtD5i3zlzU/cjTpjff7DZ7zf3YbqADfyISwNGaEAElAOWZZbvNyjLwc9mrVxWeG9BmQYOsvG+Q64AgRL2pBhIJ7VdlE0L2E1JiIAIiIAIbEOgRL+Z0WdyEfMu7iW2sYZyFQEREAEREAEROCoBjJdWmZ8iv4yxmeYzjlrgNtRr5fsLleENbb121ihbvJ98p8U7a5NXfiIgAiIgAiJwUgIYfPDtIFw882JskYGLBuG5cIbhnyL8G16DHx82f4XzbvEPzu3Cnnvw5qKcn3DtimGsQxjePHKgy4XKj3C9W4gD/9cMg/NdvREEcqdweQzVyISLkLgnw0NzgY6ncqYc8I02fLsN32QVsnFKWTldHdprQUms+7Qn2zzanm3dRbmAH9vSQ7WL1ElOBERABERABFwCGf2mHS+f4l7CZaRjERABERABERABEVhKYM35Kcqq+YylFlP8uQQy7i8m5+VUhuda4PjxUDa6xTs3j6+qNBQBERABERABEWiEAN90Q8cFOSmOC3X4NpFu4Y6JwIfRz3iMwQw/EfQ3rnMxEBcx8JNX3YIc7F1nPynEhT3uG3Q4kOa2NxfjwoU776ErH9q/wDHfxnIGLnuz4yJ5WZaNjbk46wrb/1AnbFm3acfKylnrkOWzt33Mnly48xLlgm8UY3vLh5DvRpS0ZeUo7eKImvIWAREQARE4MYFYv6lx0IkLh1QXAREQAREQAREoQ2Dl+SkKrfmMMqZTKvkEYvcXqfNyKsP57E8VQ4t3KpobD1Ce88Eitj/Mfo8PCCsSUtIisH8Cpp4/MXX8Nfaq5/s3qzSoR6AbmOKmjm8JCTpbh1inEID1qVuoYwMjLt+c4y7m4cIF6ziAtoNf68c9H2LzU13+J0K/gX/qQiKms7lL5MI3CXExR+egN4/5EN93h+HiK3a2c9jYfi6r74cSywpRnaoO7bVsJNqTb2FyHdvP+4jLt/D4TvXfJ6JzEWiAAOqr5hAasINE2D+BxH6TimoctH9zSwMREAEREAEREIFGCKwwP0VNNZ/RiL3PJEbi/UXqvJzK8JkKzwxdtXhnBrSUKJx0Q7jUf76mJKkwIiACjREwHXbKWz8ak1ziiMBmBPjav6mFO3xjjF1k8l+GNQtPggLjGt8uYRctMAw/pRVKnwt6Bv6ov3yYzcVBA3+ct+6iXKAA3y70ATp2C5mwJ3f3jUNWxyNxsTodfs+ya8qvr+t7eLBM2wVs0bJy0jrkc9vLedSeRhF3oY5dxOf6WX1V/y0J7UWgEQJo2zWH0IgtJMYhCET7TY2DDmFnKSECIiACIiACIrARgY3mp6it5jM2svnJs43eXxg+7hzc2LycyvDJC1NM/VuxALo+mwBX2PGtAdbxn698kHYXEwShB2g2nPYiIAL7IuD/U4+LD+REQAQ8Auj/OCilm3rTzQP0ka8QlgsQuPlvymH8oDNxOIh+6AYw/hw0+/nyM1tXyC85DzfdLY4zuHBBE3nzzX9cnMTPK/FtPL07EpdeqfMc/E1VYcOvYVd7EzjQPqOs9PFMnEPXoV7ZnR2k2hPlwR2TUEsu3KPjwq7emfQO0S72SulABI5BQHMIx7CjtNiYQGq/6YqpcZBLQ8ciIAIiIAIiIAIikERg1fkpSqT5jCS7KFBhAqn3FynzcirDhY1z0ORuHlSvVtRKWWHXiqySQwREIJMAOuPUt35kpqzgInBIAnwdJF3wTTcYuD7BNX726itnQUJ3E0g/1yHs4BWUJu47hHmGuP5iHC5GYJp+vlxo94rXEP8xNi4WatqlcjHh+O99LuzgIp7voJ87JqGeh+FCZU7maNfQW6msjfmJOLuoR3XoAIUj156OymwHnjrx7SXVf0tCexFoj4BtyymZbctdv/YklkQi0BgBp9/TOKgx20gcERABERABERCBQxFYe36K8DSfcagitA9lcu8vHK1C83Iqww4gHYYJ3Ax7y3cpAVTme9jcB4XBf74uzUfxRUAE2iBgHvyz43U/4dOGcJJCBNog0C24Qd/oL67h4hkOZLn97ojKhTV2wU/nzXqGjW+1G7zBDmm+wMZPZt3Ddf8NO903ZLsEhj+3cWrDss+2D8iGodo7i3IxPKnT1xCfb9zhp8j49j/qbN3RuFi9zrBnP/PaVRS2Zf3iw10u1LD1I1pWbBqIc6Y6ZNXe2z7ZnlTMtANc5PUioKjqfwCKvERgawKor5pD2NoIyv9IBJL7TY2DjmR26SICIiACIiACIrAigbXnp6ia5jNWNLCyGhBIvr9grIl5OZXhAVadhAjcgOdnbA9xs3rxMC0UQX7zCKCi8h8/L0cm0OclqlgiIAJNEED9fgJBfsT2m+p4EyaREI0QQN3gYpFfsXFRgV3E+sYRb+CP+uN/2okLeujsv2ZvT9Ux5Mf0GPYRwnX5wI8LdF7jnAPs3sHfpv3PVJp9hIYOHNkvuOAamX+ATv3nc6wf/Lmw47BcGjJRdVFgU75Rya0vLPvPYV934bi9UaQ8F2WFnr5DuqeoQ77eezmHfWy7NWlPhOObxfgZQn4e8MLh+uHaxQsl5SECByCAusq6rjmEA9hSKmxDILXftNIhvMZBFob2IiACIiACIiACIpBAAOOn1eanKA7y03xGgl0UpA6B1PsLhBudl1MZrmObo6SK8sFnaO+KLd5BgrzJtW+c4DEdHxI1uygoV2aEZ4Xjqjj7uQ7qxn83/wE9Bw8F4dc7xONEOx84BifQ+4ALD5APH9jxn9jfYPuE/PoHdwuTXhR9Lc6LhETko/BbyiElfqusUmSPhVmiG+LyjSB3UffYThR1SHtWG4t4bOz5ea+q7U9RZQOJGbuwDab7D7auvYNegwfV3dUd/ZzdrktMZcrE/5BGvwDZ8OSDLpb50X55Sb6txzUM+KBv0A7Bn4sMP8LfXTzVujqSryIB1aH5cA275sbc1AiyceLse9T17r7MnPO+oNl7svmWKBOzRXtCplnjvjJEtk0FurO/Yh/GskzHsd5Vd3T9wzEg73e553xD6O1S1yEr/BrbuONqjrXZ7wb7V4TXHEKmHXLL/1zGmWIFgyPv7p4EF5uagwkKW8Fzz/ob2XUvgXIBFqv3OS2WnS04LK2WRubkPmlpfozfou2sXpDNLnT/B36cN+If7A45BpbtrdWv93uyvbHdas/QkF+TY5W1OQxLjM5aI2DKqcZlMwzTah0fU8XU/VXHLmOy1PKHjpqXy4Dbahk2ZXW1/toiQ77d4h2e88079zGY/WpqQxguWGFYLkIZhKUfNv6rvffHOQfMX7B95/q3cgy5Zsts9Po7RReE5WQdJ/N6NrWPkd+HtfMc0wlyrMJ5LP85/kfhN0f33DgtscqVPRZ+jm6Iw0kvtns/xNLPuY70ltQjLmTgAsPV2qAaeUGHi3YUfnxwWpR1DdnH0oTsp7frGJtUfzBk+eaCua5845gP/IJjFRvmDHsw4Dig50Kd4VhfLsZwZ+AhHcfbf5QJ1aEF/SP4NTPmNvWcN3iUifdtduO/0lT3E+xs2F2MN9ZuQ2gvbLu6t67BCAzYefFNcsExLK6xbD8eu17DH/lxrD8oIzhnXaOsk7KYMJpDGLGntRc4zS7/OYxtfqX2yLup/qCUXqnp7FV/yH36cRAYzK5zqeVjKlwrZWdrDlOMxq5B5tl90liaOf6t2I4yG/uxHe6fQeCYf64bHUfk6NpaWOgl25vxBFiwDduN7Y28m4zzDafBOHarsr0lh610Vr7hezqXC8rF6cdlLo/c45bq+JjskHHT/mtMrpL+0FHzcpF7/jHeLZVhyLLZPZIpQ58n37xjVjz9isCfsN3BxomprwH3CvveIRwfCP0U8OcDNE62fd0HbuRgrsyIx1VznCh8Ab3sqqugVibs6v98Rb68c+k/GRIULsMT6dHufAiY/a9GxJ1VNgy7JM4ZqiQFPQK/JEULBCrJCmnNLmcFVLlIIqYbrrMB/x+26m/9QF5z6xEXMvyC7T3q7+AtHPBb1S2xr4l7BzoM3qQCfw74eNP7YFVlnMwW6rV7uzooNjkEfw6If8T2Dzb+s45lgv/C51vxmnNLykuOMsiH7RMXUXO8ZtlwkqZJLjm6KWxZAnurQ2W1X54a+BUdcy+VCPJ0ixf9dFD3ec/XnIO8uxr75QKcqx/izRof5MrXcngwiN5zIwz/JMM3yq32FkbkybE1+9fBvTb82RZQluCbb1P0QfzOmbC7n0Ow+uTuof+s8p/DOFemlPDIv6n+IEXmkmH2qj/k3tW9REmb2bTAYFads/GX7lspO1tzmMMRMs/qk+bkFYpT0nZIa9GYEPE5f8x+uP8nv/HjM4lN58JC7Jb6QTfZ3kDcm+0h72ZtLvJuZqyyJYel9U/x6xFAudjVuAzyLuq7SpNsqY6P6QYZN+2/xuQq6Q8ddzUvV1L3pWmVLsNIb3YdRdwt+2u2he9uTQHFAJcPfR4xDIRlxaKyIcfJNa5y9ierOJH2A+LyzT6tvaZyrsx20M8bg1FHnXGRE3vPcGy58Sai4zkaceEF5EW96FabxLzObvS3KufRXGdeOBC/mQTSozXIKl34SMgU3dg+IhwXNrKdtI51nee/W49C++x6BNm4iIGyHOFh/bfQg23qYPEOzsn/Nra9urPbdbHdzNiitfHFYr2WJmDGb/3E5dL0FP+4BFSH5ts2ZawwP/V5MWHP5v4wMU+T9WM1Zs/s8cH6xKrnaO+5/5zIieNAbms6jjk4vubWOZQdOxbt/ew1Z2/10RyCA2XkcG75T2I8kuci78baj0W6zIm8Z/01DuosPrfOzSkugziNlZ3NOAyg5J3M7ZPycgmEbsl2Rhbab/BMAvXb9gsBDXbvJdvDhDu1/SZtTUt11tS+TTjsvuYfXAGNy+YbuME6PqbMZv3XmECl/TUvN49og2V4837q1jyUF7H4cPg+APOV7FOTVhcRN/SYKzONxpX7scUx7xCME3lcodW7Ffjw5oT/NmjFDrU592wLHRyFXyEck8m0xmpS2MyLqbpxMd7PaPvsmy24YOZBhfo3px79DDmeQrYjPMDng44n0IV7/tPZtm98qxAXSe7Vnd2ue7Wb5BYBERABEkgdK4jWPgi0ZM8544N9UE6XsrvnRvDBPTfGgnwbLPlY5x5bv2p75E15/EVyVlZ+nmPMaQ5hjMyl/9zyn8r4MsflPi21H8u1yU/h7PrnE2srxtw6V0KLlsrOlhxmsVzQJ83Kz4vUku34Vvwrb3zgiXusU9m+t+cebb9VW9NSnaUBt+LQFx4diMDBCLRWx4N4N+6/gjLJsxkCrZXhzfupWyVMg0o39skSvimBjooOHCbe+MCVD7yte4t0uPJuFTdHZiMYdYrKifT9Sb2oXoWYcNLqLdLiG0DuYOMCIhZ8Psi/sAP8q7ranF3hxe+aRiEOLtqx46bKmhWykP5JuqF8sy2ItgdWtrn73HoEBvyMwNQDhF6UQrz69GocQH+2aW+QNtu1zzjmgiT+q+pvXPPfxgPv7h84m/YxnRCRn7PbNYJHl0WgGIE9tHPFlFVCUQIFy0PSWCEqkAIsJlDIps3YM3d8QICFGCy2RcEEeM89+EMKdOQiedqpG/uBE8eGmzrIxHttjjn5Se3gmNQIqDmEREvNKf85jF0xCtabZtqPSvq5yYaOm9Q/JKj8LgnMqXNHrDsbc7g0zAyflD7piLYDKrZBf0E39rX2k9qcL+In1geLgOHXuYIcbJKb7mX7/dh+w7amqb56Qw6b1lWb+dHaIKuX9vMIFCoPTdXxVBIr91+pYilcJoEjluFW+il+g42fteLbZEY3hOFns/htTL5dZzScvYZwbDAY/rn14x6Ok25/Y/vB+uOYn9z64Jzbb991e+tfew8ZgjLbfGPXbbjcPdJNYcJJQT6M55snuL+wA/2wETJ58l+JnZ1wzLf/8KYlardQGMTlA/MnoWtz/JBWUc5Ib5IfrpMddSCffvNlN9d2yw/yT3Kw+iIcb2j7+mb97T52neHgipc1pLmonCF+kv6Onn/YY3dfQzc3/VLHkDNYj4z8fX3FOduDC13hF+WFMMXaYqS1yL7kBse6zANbT0PtYIpe0fY01U6QZbFebl5Ir7pdvfwuyoZ7Xcfz+s0xbqXLy1g+8u/HP9H2gKzgRvtFXCvWDsouZetTLk/YcrI84HrSeNGUmeLjoFx9jhAezBf1oTGbWkbGtrQv6/Nj62/38KtiT6S7SD8rH/dwY+ODyXJt4lIO3j+SweDe3M2jlWNH15euTPDnPW1/j+teW/uYcmAjT85rBO/NrUy4HrSdvT53j3SjtmfacKN9nLlepfzP1SsUL8Ywdt1PE+FT2XV1BuGDbUer/DL0Gy0bRmfbbo62GwjXfPnx7a/z+HgMdg22WyllC2FYbibnLlutO37ZWMLB6BhtQ/w855wbuzCv0T7JhJmcizcyj7YLVjakVbzeI81ZYyZPlsEYD9f4vKN/9mD0m2z/EZ76c7zBPcPyj3GDdC2HFvZGRtnesxG47Mr2kLdqm4v0i9fZGuV/CQdTv1dpc5foDh0n2yCbNsKNtsW4pjkq3ONYVlvuYYtZfZeVOVYecJ1lmnmwDvebjW/35pp9VtLfL8N/0TNhm36NPWRjXVit/6qhg9Ls5hpS27TJ9rlWGUa6i+qob2Okt6S/pixJ83IIxz6AY5nup8biHd4UXCwYMfkNbv4ZDls3oMaeA+P+Ov2xXaTjgytxjnyCMtu0KRc2lsrvrF+JPdKjIXqdmSacy4T5+g3vxeILhCErRh7YE+dc8DP7AS3ili7kRTlDvhg/siQXfxswMXrull8CB1Z6NhDkwTeWDAY68Ju87oZH2OJlzaTZLzpx80s5RvzJcuCm4cgfWvxRXDc371LH0CFYj+DvtyVji3cmeSGdom2xYb7EvrQLyy47SerOukodBu2x8fMZZLenqXZCfqu0j8jH12mWXV29jOzkeFEP3HA6HraVS3iULi9LZDlDXPCOtXOT/R7iF20Hz8C8ZR0TykPSeJE6wu1irNCyPRyOS8YGk3Xc5MH+shsrYM+Jhc8+l1r2NOnO1s+VE2mNjfsmGSAeJ3f7e2lzPlgU4+bTwjFktPfctB3rJTfqeWG7huSlfIMxqZUN/laf4HUbLndvmPjjQ3fMO9nH2fyQTvPtGWQMln9HhyzGMXZMFy7adphwzfGL6Yfrk2UD15PHPwjbnP62XGg//x4Gdg3WOfjH+pykuctW645fZuZyMPoltSF+nkvPITNtcNEnJdhusl1w5UJaxeu9STN7zIR4dlHCxbwGrnH+kyz6+Q5zPtV32ocyTI9bP4ZyGbR4DFllezPPDRa7sj3krdrmIv3idbZGHZjLgbLAbdLm5nKAnLF+dLItRvzkMVqubAqfP26CPVi3svsuyzqhPCTNURk5WBGKPhO2ctbeQ+7q/VdtHc6afqwMkwtctH1GmCr9lEl3dh317Yr05vbXWfNyyId9wecb/MH2EIJMfvoFrz6yqzq/RtgrxBl1CMtBEhcG8NMmvTP+7GRG00AYAuAnnvpXW8KPVh6N02ew4GBMZjdJhGFBYyNIbkGHMLwpmOTjRjT5pjD5Hul2n71CHBqPstyzfkzTpPUN/AafMYM/bfwM/i8YbswhHBtK3qj4jjdDd7CFPrvF15k/8iOMnRsZL8qGGx5hkjmb9GL82NF1ZdLJh9/FfQTZe1uZtHbJL4WD1R1h2RjyZpWvkb1wseuMsIQV4hYvZ0aeyXJgFUVYludfsLFNu2hXluhm86i9NzJe1CP407ask317Dj/Wp0/w4+fzOmfiT/JCmFltMeLVsC9lZRvYtzXIx/ZJrMP/h2tXGXpF29NrUv/+1tDr39Svj4z8Ve1q80Rek/XAhlu6Rz7dKG1pOq3FR3kbHQdQ1lrlpXWeMS45djRl9B3isKymOLYFP0GGrv1DfPb7k+2cTRRhg/0i/Oe2g5R5tuxWrtAeMh2iTsXKCvQsyhDpRcsDwiSNF2kXk97sMWPItlN+yK9puyfYs8bYIMWmHCt8C/m68QM4slzx39ODe6Kl9kT84vq55cHIFxofpDBg2eG4p7u3Rlr2n1EXY2A3z9xjpFusziKt7l4QMvQymvR/tbZMka+kTLH8kBfvt+m6Men14fWv1Qeyj44dKCuuX7nxpo4RPmp7Gx9hg32cc51pzW7PKDviV+nzKKPR9aL885p1CFN6/iCp7WD+Rr5m+Bl5Vhv/tKa/UyZ23W9aPVL2sEHROmhselHnUsoWwnDsnHSvbdKbVXcQt6jOIc5GvrkcktuQUN5L/SD7oE8yuixqF1yZTHpzbVd8zAR5WN85DzaY44Q/dWYf142DUjggDOfEWb44/z34fCfOiznkU6UMI13ZHlYCh2Zt7xciyMoyOretSWpzTR6z6ixlQ/wq5ZVpW7eQwypt7lIORsdFbTHSoM2zn5suld3ayd8j3abHW768Y+dT92mMAz1r9F3R+znkmzRHhXCL7ufGuIT8kVeV9gDpVu2/Qrrk+kHGpsv7VDmuYTekmVKGk9pnk9aSfqp4HfXLh5Fxbn/NspM8L4e8uP6Dcyzd4p3BqjwYmkIMNoQjaGbSr1j3w/DchAv+mw/XWAkHbztx08A1Vn4mMpAH54z3gxu25DHSpm5Bmd18EIayTcnPDrh/Q44bd+wY4SeZMB4cO+b+n3o45qQrL/R+Tjj/HwQ27IDpmDwhf+TDCb/FK9SYBrainJFeCr9B2UEc6jNgt3d+KRysbY3+F2/eSb1ei5WRa1Y5y9Sf5dC2NRftGa6xvhWvR5bv0j1kC9Yjo9NAbmMrTmYP2i2cT9Ybk1bRthhpzm5HjLwXbSv82ZFRzq6Om3ADXX3eCJPUnvrxxs6ZN7ZZ5dZNk2lgu2gf4ceyWsSugfxG64EbVsfD8dASHrBlkfKyRIazxAXryXbO5WDsMugX4Wfrx2D8ZNIdjCvctHRcrjcl0vQAABWeSURBVL6UZJlSHlgO3Dx5ju1ivMgwcE2PFVw9Wj42jGf1oYgbreMmzMCuIR617LlEPysn0giOD3gdbpIBrgfvA+HPyMGybfPdcm/kC7XJUVvWltswDY1J+abbfkzqymH8R8enuF5lDsHKgPTZlg142mvc8xq2wVgT58Gy48Zb4xhyjJZ/N3+EoyJJjBFust4YJgyTVN4Qril+KfpZdtSR8ttzo3vW+Kc1/V1ddJw/JoM9R+scrqXUneR77ZbLTgEOyW3IknIKOdlWR/skhInazsqBsBftgr1m9whTvN0z+c4dE1Ke0Nvp2b+yf+g+e4V9lAPCcPFOs2Mkxway/b9jmN3aHmVtlTYX+RSvs7YsltgX4LBKm7tUV+gZbYNsHgh70RbDL2uMZtPSPn88lMrM2Glu3xUtD0zflcXkd9FHwb/pOu7psEn/5cqg4zJ1AuUupQwntc+1yrCpM7PqqFtOkM7s/hpxg3Mr8OcY9aI+M184PvP8fItHpRxWBLFj4dtg+jfuwI/C0X3Cxk6mfyMEPT1nw155/ozLN78Ud1MyQ4/+TTMIZ99Iw4m5MfcAcV6NXfT9kSZ5xJhwEdXg3wOIQ+PRvb/e9augyc+Xj7a4QhpT3G0y1fY1OGfwe2MVM3H4D1y+ead3xn+X/KBESt3qdV160Bqr1HJAvRGWdaev1z6L1nQLyDfVxlK3u9CBq7JdR3++lYb+f2JjGxVrd1ZviyFT0BmbcJHVhd3YruE66/cdGw7Hk20d4kTb06AgFT0h+1p27bRAfpP1oKKqSloEViGQ2h5EhGmmHYzIqcsRAqnlAf1DdLzIrEx6zY4ZIzgOcTnVplCW4x3ajDfadBwDPIWtr7oz/LRsT8g2NT5IGf8zzJjr2Ixd3MofOtt77r4+UhZjs4HfRjJyYpTlpn8r0JQcjj7+PbobrcocgpvB2DHkYzlosj2DbKPlH+Whvy/IYWz0pc6T9wu43tUPhB9tO8jUpNcMvwz9KP6YSx7/tKb/mELyTyMAe47WOaSQ0uckzV1SmpbLTgkOUDGpDSGLhS7aJxnWKe1ekiiN2o5tuh0/hPT4mMnhEcJzzoTuYux47b35r2x/bYLd2h5lbJU2t9E621egEhyQ2Fptbi937oGxw9K2OHmMliufwq9LILU8pMxRtV7HA2RX778CMshrIYHUMoxsou1z62UY8i3tr3kfNeY6PmMXb45dyPWHEhzY8tU//cIdkwaVsxNuPOwqKA9cZyBYr5BCk4rYiDn7mMxeWvaTM/3nvNzrSIsTO3zDRbIzk5AMn8LETZevgRpMPOP8vwyANH35+E+DbkERZHyMrThH5jvlanGeye9XyPosIO9u+c3kEECQ7NUUq0z9f0T4qYn/pnRzLRKrR9QLGz8FN9iQxhW298b/BfY8p0tpd1Zpi6/FCf8aebn4yN6k+AHZpr3N1MtNI9SeuterHm9k11g9qKqzEheB2gQWtAch0TZvB0NCyS+dwMzyMDZeZMbNjhXSqew7ZIpNnXED7085/uGnsriQ2b9fa9KeCeOD6HjOcGK4fgxl0mUBuMOfBp29555a7LKl2OTpjjutLJbxX9bD7K0+/j16dxn2eIIDv0x6SQxPU8r/MMbk2S7Lv6dRMuMUdhltB8Voil+Kfh67qdOU8U9T+k8po2vTBEr0OSM5jN1rN1l2SnDIbENGsCV7R/ukwu0CBWvRdpzjvQ32tz1yD3DOP7O6/XZsHoyLQ18jjh07so/2/yDnZbPJqWx/jX2Xti/R1oyUulCb22Kd7cQvwWHlNncEe9y7cFucMkaLC6UQmxGYWR7G5qiareMjgLfov0ZEkfdcAillOKN9brYMl+inDCuWeztnxD8y2EXik/NyN+cayI1nDMHBLB+wPjfbS+zpx+8w2n9GcRGJnVzpkkAYDrD5fTQbhv6+0P55908NxPuCLWuyq8sUP4hHWCky2yh2EZI/Ice0ODji9rsNnLFPZdIlafLijQcnoF1HrheywY83L3byk29FYkFZza3AOZkfZGGl4Bs8Qgz2zi+ZQwHjt8gqqj/sz4VsbGumXBXdkDfbuTXbK1dHtgG+i/IyEfy21z/30611/ggJvyZHNwNjU74i3/YfqXp1ySA+2+1Qe+pmU+0Y+ef2Q64sAxbmQlR/wyxWDxb3sa6gOj4nAZS1Re1eAWrR+pCYh9/u+eeJySjYxgSSywPK7n3IOjZepBpZY4UG6sLG6KtlH7OpndS090H2Tw58S6H77+wse1bTxkkY8qWOD2IMmOpP2Nw/11jd7dipy7mhcmrvuYOLXTpht/3h21sHD/HAjjLTZvxzzYAr/Kw+F/fpiLfaHALkGHN7Lv9Wp1zGsXqT2nYw/+b4QaaYfpZbbO+Pd/xzxm9R/5hezV3fuv1F/iX7nJ6vaePG7rWbKzsFOSS3IQVsn9onlWoXaN/mbIe+l30s/6T3CwWkI1vs+DDoJ54bF+XAfhybOwZ5j7jfmfJh02lhvkS2hzX2aPuCbU1fHnmAdMfmN5urs0beUn1PUpvLNgHb7Hn5Aez5J9E2KDFpf0zmnycmo2AbE0guDyi79yHr2BxVVh1voC6s3n81oPPGRa1a9rEynNQ+Q7qsMlxNGy9hlJtS/RRT5ng0Oi/nifDVLd/DP4eQfMjHTsBO9L2DHyel+MCUBqLjBBaVecITz/UTWAj/M+J2i3sQxq52Z8PTCY5r9mGk3dukeM7BeO8Q58rIwc53rPHqwwcOojIbebiqkbpx42DInayjHxtPOr714ur6MP03xsRNCXlz8UHPy71Gf2yhB7Jc5PM94t5HXmwc13ZVOefwg+I/YuvLowdit/yoRyYHT/Xs0+ZYxfQ3dZl1Z8z+FkIV3ZBv9fbKKmD30Jk3brZ94mQD62LXbifyYlLk4TqeD9pi92KtY8j7FvKzk/sVe3b8V9goC/8R1U+sxPRC+N4hnan2tA9X+SDaPvr5Q+6ldk2pB2xTlpZZX3Sdn4zA1mUopz0YMY3tL5poB0dklHcigczyMDVeZI4sE8lj7q3rQiKi3QVLsSn6TOrFMYPvuvs645llTz+hSudJ44MUBgjzBhz4uQh7n27HTbaN61TYspxCNtogdM/NMd9zyDaQtRLzpGQhyyvIy3G12wawPPENTx3bCX1sHqvOIdhMR/a7LP9LGMNOk3NS5IT0uYu1HQzTHL8U/Sj4hLP1jbq5juf+fWBz+rsC7+UYNtv6vqtYn2OZow7F7rVbLDvFOKS2IUttj/jRPok2KdAuWNNy36LtqCM/dcXnDbZ/5nOMh/Dv260UDojPcvATwl5RWTjbJrLvtsebz5dAPtm+M09Xvvdm+2JtjUHAcctUm9tknYXsxThAf6KwddZi4b6/52OdRjjW4dvYz3mO6KY76zilDYokbNsg2tR1PO/bOveCjtslkFkepuaosur41nUB+a/ef22tc7ulcJlkKWU4pX2GFFlleJnUWbGL9VNglTQv50vH3u0ztsGA1g+05jkMykU9fFuPnVjkIOQL/ILflcc1/tPqL4S3Hdia4q6WF/Tk4ilOCnYLcMz5J5xX75wN47vIy3/bz2r6l8gIevAtTfznT8ewRJopabTGz8jDiXB+u/nCxa5fRCjkUZOTSZurOF3HmxsuQPwAFnYhonu9+LGRYxftFWTNaotjsGraN5a3fx2yFGtPW9LL19M/N7Jm1QMTp8kyC9l4I27bc3tTzn+9V+8Xfbap51uXly2YtVyGrN2MjBf9IvyLtoM2v9b30JsLPzkWd/8V0LrYxeSD/lXGi6acbdaeIv/m2kzDpNo9hrHlS3ecBz/eV/YLLYoVnEBCtfULZHnhBRkGk9M45xiIfaU/HujiGpk3K6cXCshjMQFj04s+bnHCB04AzNgPbNZ2rIV2rGzA/5TjnynuYFJ9bGTssfv2F3oUu9eesknL18Agqw1pyfZGltX7DJNvtTFhanmBHHxG8gDjpO4ZA845fmabePhnErL9Pm0Pu6nNzWhzTTlvvq8dq4/wP+UYDXpXH4el9hNuOGOn6n0X8ik+R2Vkb74uuLzHjo0u0bHL1joj/+bm5MaYlvKHzllj4lL52nSMzavXUZvf2B5y5M7Lsc17d3MswQ39uUqen0jpnAE89Vabb+2g2sY52h4MaCy+beFP8jBM+MByrQVLXEjFV5Du3dmbrrX1aJHfnQiE2PVI9FmXq3FCG8E2pHsQyT2kY32i48OLVRbuXGf31Z7aq9y22Kg4uqtm39EcAxcqtKdN6BVQ9cJrZj1osszCjlyVzYG5rdd8CMlFOx9wjZMXrbrNysuGzJosQ4ECEur3SreDgWyb9LL/LmhSuBWEqjVe3KwubFj/Y+aq3Sbyfsm/r+QEFfNdw9XWL0UHfnbUvnWH4cnELnwNxd+snIaEkV8xAqE+rljiB0xo67ZjTaShsnHW8c8U9zXGRrtvf9Hf3AfELecup2y45rXcNqQ124fahdr8WhgzUUfOD35ylOX84SuMHa8cP/ewNdu5ss05lu3/pda87dXm9sbKaXP3VGdD9fGsY7Q1xmF9gco4WKvvqjFHtae6kGKSUH3x422mc8Nzcj6j0uc57XPpvJneWnU0JnvuvFyX3q1Yqmtfx4D4BQqzfdUlB8d8QPdTSA5T6P8JXTuY3zvoQw7sqHo3cfPQhylxYPIZu1EpkcVaafAGbK0FT71OrfBDfWFHzwaTD7b5mkiWpz9Z57DnG64mrzNMTbcWJ+jJN+7YBzn8DNNvyLv64jTkwzq8m/aK5QIyJ7XFKeViLfsmyFK0PW1IrwTV/w2SUg8aL7P8vMZgbABbPDV6sW37+l9t2znauLyszqzxMhTt92Cvou1gOyVxXBLYjA/5edO7+nhpXKrVrxQfLzZQF1av/ylWq90mIn1+dvMuNk5y8l6GY7GHKbKVCFNbv0QZu89tmrrNt25y0WuwfjdQThNVUrAUAiz7CDd675eSxlnDbN121OYeKxvQ/3Tjnynmpv2sOjY6UPtb9F57yi4tX8tpQ1qxfaxdqM0bzDhO47apgxycU+A8GOXguPEKfsG3kbZiu6XAZPtrgju1vdpcmA+2S7rn20OdjdVH6Hq6MRqYNDtHBXus1XcVnaPaQ11I6dti9cVNowGdm5yTcxnVOE5tn2vkzTRXrKMxFZLn5dyEmvtslitc7BiV7jEMsOZbM2Ii6boIiIAIBAmovQpikWfDBFous5CNr7P+hDHA4PN/8OfCHX5Ok6+6/qthvKuLtgWzlsvQ6gbYQYawFx/0coEvJ6hZv4Kf1dmBKs2JuHVd2KL+N2cECRQlsHU5jQqoACIgAiKwMoG1xkZqf1c2bEPZyfYNGSNTFNkuE9iBgsv2+zSm7LY/u8FmmqOqYLYz1oWtdUb+eo5RoSwfNUmUl/vQrcnPZiUz18KdZFQKKAIisDEBtVcbG0DZZxNovMzyrQF8mwL/DSeXRmB1Zo2XoTRq5wrFN3JoUXwFmzfAdfX6XwGjkqxMoIFyWllDJS8CIiAC2QRWGRup/c22y2EiyPb7NaVst1/bLZVctl9KcJv4sts23Bfmuso4bKGMu4t+xrrQgM6ak9tdTdle4OY+m7U9EkkgAiIgAiIgAiLQMgEMuh+MyMeVyXQcFMs5BMTMgaHDCwL8Fwo8+WkhuQMSUP0/oFGlkgiIgAiIQFUCGhtVxavERUAEREAEREAERGCUgMZho2h0YYcENCe3Q6M1IPLNBmSQCCIgAiIgAiIgAiKwiABu7Pi5H75S9QUGxfzusFyEgJhFAJ3kMsoB32B1G/VGi95OYnOqqfp/ImNLVREQAREQgSwCGhtl4VJgERABERABERABEShGQOOwYiiVUMMENCfXsHEaEU2LdxoxhMQQAREQAREQARFYRIBvDXmDBQhPF6Vyrshidi57j2n7C+rNi7GL8j8sAdX/w5pWiomACIiACCwkoLHRQoCKLgIiIAIiIAIiIAIzCWgcNhOcou2KgObkdmWu9YXV4p31mStHERABERABERCBggSwWp0D3rdYgPCoYLKHTkrMDm3eZOVQDn5A4N+SIyjgIQio/h/CjFJCBERABESgAgGNjSpAVZIiIAIiIAIiIAIikEBA47AESAqyewKak9u9CVdRQIt3VsGsTERABERABERABGoQwID3CdPFwp2fa6R/xDTF7IhWzdcJ5YCfy/oWdeev/NiKsVcCqv97tZzkFgEREAERqE1AY6PahJW+CIiACIiACIiACIQJaBwW5iLfYxHQnNyx7FlTm1s1E1faIiACIiACIiACIlCLAAa8fGvIPXfhDvzuMj/4fayV757TFbM9W6+47N8hxbsoE6+9lO/j/Mr4/4m6pE9qeYD2eqr6v1fLSW4REAEREIGVCGhstBJoZSMCIiACIiACIiACHgGNwzwgOj0WAc3JHcuetbXR4p3ahJW+CIiACIiACIhAcQIY8HKBwffuwh2TCRf0vCme4QESFLMDGLGgCqg7rCcXdQXl5DP83+O6PkNXkPfWSan+b20B5S8CIiACItA6AY2NWreQ5BMBERABERABETgqAY3DjmpZ6UUCmpNTOcglcAMROEH/EI2jXpmfS0/hRUAEREAEREAEVieAAS/frvMHNnfhAT8BdAfbfYxp7mEv5xAQMweGDicJoKx8QYC3qEffTwbUxd0QUP3fjakkqAiIgAiIQIMENDZq0CgSSQREQAREQARE4BQENA47hZkPraTm5A5t3uLKobzwD+vvtHinOFolKAIiIAIiIAIiUJMABjEfkD4HMiH3UYt3LrGI2SUT+QwJoIw8hw/rFV9VTMfFcX+gPr3qzvSzWwKq/7s1nQQXAREQARHYkIDGRhvCV9YiIAIiIAIiIAKnJqBx2KnNfyjlNSd3KHNWVwblRYt3qlNWBiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIQIGAX79wMXJOXCIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIjACgS0eGcFyMpCBERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABERABEIEtHgnREV+IiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIrACgVsmj7v4jpab3ccvX75cuR46FgEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERmEcAa3NuI+ZdJ3Z3zBU7n7HxouteYPHOU9dDxyIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAvMIYPHOc8R84sW++n//FIVEIZ1OqQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[ 12 c_{0}, \\ 2 L^{2} c_{2} h + 2 L c_{7} h + 2 c_{11} h + c_{4} h^{3}, \\ 24 c_{0} + 8 c_{2} + 24 c_{4}, \\ \\frac{L c_{3} h^{3}}{2} + \\frac{c_{8} h^{3}}{2}, \\ - c_{10} - \\frac{3 c_{3} h^{2}}{4} - c_{7} h, \\ \\frac{c_{2} h^{2}}{2} + c_{6} h + 2 c_{9}, \\ - F - 3 L^{2} c_{1} h - 2 L c_{6} h - c_{10} h - \\frac{c_{3} h^{3}}{4}, \\ - 2 c_{2} h - 2 c_{6}, \\ 3 c_{1} h + 6 c_{5}, \\ - 3 c_{1} h + 6 c_{5}, \\ 2 c_{2} h - 2 c_{6}, \\ - c_{10} - \\frac{3 c_{3} h^{2}}{4} + c_{7} h, \\ - 3 c_{1}, \\ \\frac{c_{2} h^{2}}{2} - c_{6} h + 2 c_{9}\\right]$" ], "text/plain": [ "⎡ 3 \n", "⎢ 2 3 L⋅c₃⋅h \n", "⎢12⋅c₀, 2⋅L ⋅c₂⋅h + 2⋅L⋅c₇⋅h + 2⋅c₁₁⋅h + c₄⋅h , 24⋅c₀ + 8⋅c₂ + 24⋅c₄, ─────── \n", "⎣ 2 \n", "\n", " 3 2 2 \n", " c₈⋅h 3⋅c₃⋅h c₂⋅h 2 \n", "+ ─────, -c₁₀ - ─────── - c₇⋅h, ───── + c₆⋅h + 2⋅c₉, -F - 3⋅L ⋅c₁⋅h - 2⋅L⋅c₆⋅h\n", " 2 4 2 \n", "\n", " 3 \n", " c₃⋅h \n", " - c₁₀⋅h - ─────, -2⋅c₂⋅h - 2⋅c₆, 3⋅c₁⋅h + 6⋅c₅, -3⋅c₁⋅h + 6⋅c₅, 2⋅c₂⋅h - 2⋅c₆\n", " 4 \n", "\n", " 2 2 ⎤\n", " 3⋅c₃⋅h c₂⋅h ⎥\n", ", -c₁₀ - ─────── + c₇⋅h, -3⋅c₁, ───── - c₆⋅h + 2⋅c₉⎥\n", " 4 2 ⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqlist = conds2eqs(conds, (x, y))\n", "eqlist" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "sol = solve(eqlist, c)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ c_{0} : 0, \\ c_{1} : 0, \\ c_{10} : - \\frac{3 F}{2 h}, \\ c_{11} : 0, \\ c_{2} : 0, \\ c_{3} : \\frac{2 F}{h^{3}}, \\ c_{4} : 0, \\ c_{5} : 0, \\ c_{6} : 0, \\ c_{7} : 0, \\ c_{8} : - \\frac{2 F L}{h^{3}}, \\ c_{9} : 0\\right\\}$" ], "text/plain": [ "⎧ -3⋅F 2⋅F \n", "⎪c₀: 0, c₁: 0, c₁₀: ─────, c₁₁: 0, c₂: 0, c₃: ───, c₄: 0, c₅: 0, c₆: 0, c₇: 0,\n", "⎨ 2⋅h 3 \n", "⎪ h \n", "⎩ \n", "\n", " -2⋅F⋅L ⎫\n", " c₈: ───────, c₉: 0⎪\n", " 3 ⎬\n", " h ⎪\n", " ⎭" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{12 F L y}{h^{3}} + \\frac{12 F x y}{h^{3}}$" ], "text/plain": [ " 12⋅F⋅L⋅y 12⋅F⋅x⋅y\n", "- ──────── + ────────\n", " 3 3 \n", " h h " ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s11.subs(sol)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{3 F}{2 h} - \\frac{6 F y^{2}}{h^{3}}$" ], "text/plain": [ " 2\n", "3⋅F 6⋅F⋅y \n", "─── - ──────\n", "2⋅h 3 \n", " h " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s12.subs(sol)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s22.subs(sol)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "x_vec, y_vec = np.mgrid[0:10:100j, -1:1:100j]\n", "s11_fun = lambdify((x, y, h, L, F), s11.subs(sol), \"numpy\")\n", "s12_fun = lambdify((x, y, h, L, F), s12.subs(sol), \"numpy\")" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s12_vec = s12_fun(x_vec, y_vec, 2, 10, 1)\n", "plot_contours(x_vec, y_vec, s12_vec, lines=False);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Beam under pure bending" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "L, h, S = symbols(\"L h S\")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle c_{0} x^{3} + c_{1} x^{2} y + c_{2} x y^{2} + c_{3} y^{3} + c_{4} x^{2} + c_{5} x y + c_{6} y^{2}$" ], "text/plain": [ " 3 2 2 3 2 2\n", "c₀⋅x + c₁⋅x ⋅y + c₂⋅x⋅y + c₃⋅y + c₄⋅x + c₅⋅x⋅y + c₆⋅y " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi, c = poly_airy(x, y, 3)\n", "\n", "phi" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "s11, s22, s12 = airy_stress(phi, x, y)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ 6 c_{0} x + c_{1} h + 2 c_{4}, \\ - 2 c_{1} x - c_{2} h - c_{5}, \\ 6 c_{0} x - c_{1} h + 2 c_{4}, \\ - 2 c_{1} x + c_{2} h - c_{5}, \\ L c_{2} - S y + 6 c_{3} y + 2 c_{6}, \\ - L c_{1} - 2 c_{2} y - c_{5}, \\ - L c_{2} - S y + 6 c_{3} y + 2 c_{6}, \\ L c_{1} - 2 c_{2} y - c_{5}\\right]$" ], "text/plain": [ "[6⋅c₀⋅x + c₁⋅h + 2⋅c₄, -2⋅c₁⋅x - c₂⋅h - c₅, 6⋅c₀⋅x - c₁⋅h + 2⋅c₄, -2⋅c₁⋅x + c₂\n", "⋅h - c₅, L⋅c₂ - S⋅y + 6⋅c₃⋅y + 2⋅c₆, -L⋅c₁ - 2⋅c₂⋅y - c₅, -L⋅c₂ - S⋅y + 6⋅c₃⋅y\n", " + 2⋅c₆, L⋅c₁ - 2⋅c₂⋅y - c₅]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conds = [s22.subs(y, h/2),\n", " s12.subs(y, h/2),\n", " s22.subs(y, -h/2),\n", " s12.subs(y, -h/2),\n", " s11.subs(x, L/2) - S*y,\n", " s12.subs(x, L/2),\n", " s11.subs(x, -L/2) - S*y,\n", " s12.subs(x, -L/2)]\n", "\n", "conds" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ - c_{1} h + 2 c_{4}, \\ - L c_{1} - c_{5}, \\ c_{2} h - c_{5}, \\ - 2 c_{2}, \\ - S + 6 c_{3}, \\ - L c_{2} + 2 c_{6}, \\ c_{1} h + 2 c_{4}, \\ - c_{2} h - c_{5}, \\ - 2 c_{1}, \\ L c_{2} + 2 c_{6}, \\ 6 c_{0}, \\ L c_{1} - c_{5}\\right]$" ], "text/plain": [ "[-c₁⋅h + 2⋅c₄, -L⋅c₁ - c₅, c₂⋅h - c₅, -2⋅c₂, -S + 6⋅c₃, -L⋅c₂ + 2⋅c₆, c₁⋅h + 2\n", "⋅c₄, -c₂⋅h - c₅, -2⋅c₁, L⋅c₂ + 2⋅c₆, 6⋅c₀, L⋅c₁ - c₅]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqlist = conds2eqs(conds)\n", "\n", "eqlist" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "sol = solve(eqlist, c)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ c_{0} : 0, \\ c_{1} : 0, \\ c_{2} : 0, \\ c_{3} : \\frac{S}{6}, \\ c_{4} : 0, \\ c_{5} : 0, \\ c_{6} : 0\\right\\}$" ], "text/plain": [ "⎧ S ⎫\n", "⎨c₀: 0, c₁: 0, c₂: 0, c₃: ─, c₄: 0, c₅: 0, c₆: 0⎬\n", "⎩ 6 ⎭" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABgAAAASCAYAAABB7B6eAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABs0lEQVQ4Ea2UgW3CQAxFCWIAxAiwAWUEugFdgW4AM9ANaCdAHYGuUDYoGxSyAX3ftYOJkoJQLTnn+/Z93/l8KU6nU6cuRVHMwB4dLzUStwSfY+6xP9x3fVCCrKzYovMa1ncc+DL+2ryXt8AO18y1w9eMMy/xvYMNMn6LXSWAQLtUCR5aFu7BNy2+VribPBO3Y0wuMw98b699rI4aMtcJdOPSFToOX9OIX/ELVGVd5BjmQ/SI9usXrAWRJEbVfpgJZCMrH9Vxx+xnbjzmzw5fEHch4khiu4lYcO1w5vE6wWf4HFMnbs3OjiabQBEokRE6QT9iwZW8XiLFG2YlYmLHjUV5xBd3UyUIP74pKrKccOyY3WHX21NHbpPwNXXQE4t2JCzTYiUtwXbCuqgAaZs843ipkUSskut9ZNEvptqMEgg4+CvOgR0wtesA8uWF4zwRuUpoQnxsVpds0tMXgpGcqDpHDyp+CZs/yLVUid98I9/YI4FIdYICgl/oH74kUsdN4Dz/bpTgHoVIp636Hzu6bZr57iIXAfKFVr91bNX94j0o7u4S6c4gVM9LVPs1hNaahvjnB3Tu5/sirAy7AAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle S y$" ], "text/plain": [ "S⋅y" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s11.subs(sol)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s12.subs(sol)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "s22.subs(sol)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "s11_fun = lambdify((x, y, S), s11.subs(sol), \"numpy\")" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s11_vec = s11_fun(x_vec, y_vec, 10, 2, 1)\n", "plot_contours(x_vec, y_vec, s11_vec);" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s22_vec = s22_fun(x_vec, y_vec, 10, 2, 1)\n", "plot_contours(x_vec, y_vec, s22_vec);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simply supported beam with triangular force" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [], "source": [ "L, h, q = symbols(\"L h q\")" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle c_{0} x^{6} + c_{1} x^{5} y + c_{10} x^{2} y^{3} + c_{11} x y^{4} + c_{12} y^{5} + c_{13} x^{4} + c_{14} x^{3} y + c_{15} x^{2} y^{2} + c_{16} x y^{3} + c_{17} y^{4} + c_{18} x^{3} + c_{19} x^{2} y + c_{2} x^{4} y^{2} + c_{20} x y^{2} + c_{21} y^{3} + c_{22} x^{2} + c_{23} x y + c_{24} y^{2} + c_{3} x^{3} y^{3} + c_{4} x^{2} y^{4} + c_{5} x y^{5} + c_{6} y^{6} + c_{7} x^{5} + c_{8} x^{4} y + c_{9} x^{3} y^{2}$" ], "text/plain": [ " 6 5 2 3 4 5 4 3 2 \n", "c₀⋅x + c₁⋅x ⋅y + c₁₀⋅x ⋅y + c₁₁⋅x⋅y + c₁₂⋅y + c₁₃⋅x + c₁₄⋅x ⋅y + c₁₅⋅x ⋅y\n", "\n", "2 3 4 3 2 4 2 2 3 \n", " + c₁₆⋅x⋅y + c₁₇⋅y + c₁₈⋅x + c₁₉⋅x ⋅y + c₂⋅x ⋅y + c₂₀⋅x⋅y + c₂₁⋅y + c₂₂\n", "\n", " 2 2 3 3 2 4 5 6 5 4\n", "⋅x + c₂₃⋅x⋅y + c₂₄⋅y + c₃⋅x ⋅y + c₄⋅x ⋅y + c₅⋅x⋅y + c₆⋅y + c₇⋅x + c₈⋅x \n", "\n", " 3 2\n", "⋅y + c₉⋅x ⋅y " ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "phi, d = poly_airy(x, y, 6)\n", "\n", "phi" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 \\left(3 c_{10} x^{2} y + 6 c_{11} x y^{2} + 10 c_{12} y^{3} + c_{15} x^{2} + 3 c_{16} x y + 6 c_{17} y^{2} + c_{2} x^{4} + c_{20} x + 3 c_{21} y + c_{24} + 3 c_{3} x^{3} y + 6 c_{4} x^{2} y^{2} + 10 c_{5} x y^{3} + 15 c_{6} y^{4} + c_{9} x^{3}\\right)$" ], "text/plain": [ " ⎛ 2 2 3 2 2 4\n", "2⋅⎝3⋅c₁₀⋅x ⋅y + 6⋅c₁₁⋅x⋅y + 10⋅c₁₂⋅y + c₁₅⋅x + 3⋅c₁₆⋅x⋅y + 6⋅c₁₇⋅y + c₂⋅x \n", "\n", " 3 2 2 3 4 \n", " + c₂₀⋅x + 3⋅c₂₁⋅y + c₂₄ + 3⋅c₃⋅x ⋅y + 6⋅c₄⋅x ⋅y + 10⋅c₅⋅x⋅y + 15⋅c₆⋅y + c₉\n", "\n", " 3⎞\n", "⋅x ⎠" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle 2 \\left(15 c_{0} x^{4} + 10 c_{1} x^{3} y + c_{10} y^{3} + 6 c_{13} x^{2} + 3 c_{14} x y + c_{15} y^{2} + 3 c_{18} x + c_{19} y + 6 c_{2} x^{2} y^{2} + c_{22} + 3 c_{3} x y^{3} + c_{4} y^{4} + 10 c_{7} x^{3} + 6 c_{8} x^{2} y + 3 c_{9} x y^{2}\\right)$" ], "text/plain": [ " ⎛ 4 3 3 2 2 \n", "2⋅⎝15⋅c₀⋅x + 10⋅c₁⋅x ⋅y + c₁₀⋅y + 6⋅c₁₃⋅x + 3⋅c₁₄⋅x⋅y + c₁₅⋅y + 3⋅c₁₈⋅x + \n", "\n", " 2 2 3 4 3 2 \n", "c₁₉⋅y + 6⋅c₂⋅x ⋅y + c₂₂ + 3⋅c₃⋅x⋅y + c₄⋅y + 10⋅c₇⋅x + 6⋅c₈⋅x ⋅y + 3⋅c₉⋅x⋅y\n", "\n", "2⎞\n", " ⎠" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - 5 c_{1} x^{4} - 6 c_{10} x y^{2} - 4 c_{11} y^{3} - 3 c_{14} x^{2} - 4 c_{15} x y - 3 c_{16} y^{2} - 2 c_{19} x - 8 c_{2} x^{3} y - 2 c_{20} y - c_{23} - 9 c_{3} x^{2} y^{2} - 8 c_{4} x y^{3} - 5 c_{5} y^{4} - 4 c_{8} x^{3} - 6 c_{9} x^{2} y$" ], "text/plain": [ " 4 2 3 2 2 \n", "- 5⋅c₁⋅x - 6⋅c₁₀⋅x⋅y - 4⋅c₁₁⋅y - 3⋅c₁₄⋅x - 4⋅c₁₅⋅x⋅y - 3⋅c₁₆⋅y - 2⋅c₁₉⋅x \n", "\n", " 3 2 2 3 4 3 \n", "- 8⋅c₂⋅x ⋅y - 2⋅c₂₀⋅y - c₂₃ - 9⋅c₃⋅x ⋅y - 8⋅c₄⋅x⋅y - 5⋅c₅⋅y - 4⋅c₈⋅x - 6⋅c\n", "\n", " 2 \n", "₉⋅x ⋅y" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s11, s22, s12 = airy_stress(phi, x, y)\n", "display(s11, s22, s12)" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "image/png": "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gAACCCCAQDmBx+WCJmQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBIws8PnLmyBsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAOYHH5YImZAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEjCzw+cubIGwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEA5gcflgiZkBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgSMLPD5y5sgbAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDmBx+WCJmQEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBIws8PnLmyBsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAOYHH5YImZAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEjC7zXydwvjx496ny8zL747bffnt4v5DMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIDA8QUePXr0q3L54VBO39OK13o9H9jg1cByFiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggcX+BbZfHJUDb/P1zeGA1cn0xaAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ 30 c_{0} x^{4} + 10 c_{1} h x^{3} + \\frac{c_{10} h^{3}}{4} + 12 c_{13} x^{2} + 3 c_{14} h x + \\frac{c_{15} h^{2}}{2} + 6 c_{18} x + c_{19} h + 3 c_{2} h^{2} x^{2} + 2 c_{22} + \\frac{3 c_{3} h^{3} x}{4} + \\frac{c_{4} h^{4}}{8} + 20 c_{7} x^{3} + 6 c_{8} h x^{2} + \\frac{3 c_{9} h^{2} x}{2} + \\frac{q \\left(\\frac{L}{2} + x\\right)}{L}, \\ - 5 c_{1} x^{4} - \\frac{3 c_{10} h^{2} x}{2} - \\frac{c_{11} h^{3}}{2} - 3 c_{14} x^{2} - 2 c_{15} h x - \\frac{3 c_{16} h^{2}}{4} - 2 c_{19} x - 4 c_{2} h x^{3} - c_{20} h - c_{23} - \\frac{9 c_{3} h^{2} x^{2}}{4} - c_{4} h^{3} x - \\frac{5 c_{5} h^{4}}{16} - 4 c_{8} x^{3} - 3 c_{9} h x^{2}, \\ 30 c_{0} x^{4} - 10 c_{1} h x^{3} - \\frac{c_{10} h^{3}}{4} + 12 c_{13} x^{2} - 3 c_{14} h x + \\frac{c_{15} h^{2}}{2} + 6 c_{18} x - c_{19} h + 3 c_{2} h^{2} x^{2} + 2 c_{22} - \\frac{3 c_{3} h^{3} x}{4} + \\frac{c_{4} h^{4}}{8} + 20 c_{7} x^{3} - 6 c_{8} h x^{2} + \\frac{3 c_{9} h^{2} x}{2}, \\ - 5 c_{1} x^{4} - \\frac{3 c_{10} h^{2} x}{2} + \\frac{c_{11} h^{3}}{2} - 3 c_{14} x^{2} + 2 c_{15} h x - \\frac{3 c_{16} h^{2}}{4} - 2 c_{19} x + 4 c_{2} h x^{3} + c_{20} h - c_{23} - \\frac{9 c_{3} h^{2} x^{2}}{4} + c_{4} h^{3} x - \\frac{5 c_{5} h^{4}}{16} - 4 c_{8} x^{3} + 3 c_{9} h x^{2}, \\ \\frac{3 c_{6} h^{5}}{8} + \\frac{h^{3} \\left(L^{2} c_{4} + 2 L c_{11} + 4 c_{17}\\right)}{4} + h \\left(\\frac{L^{4} c_{2}}{8} + \\frac{L^{3} c_{9}}{4} + \\frac{L^{2} c_{15}}{2} + L c_{20} + 2 c_{24}\\right), \\ - \\frac{L q}{2} - \\frac{c_{5} h^{5}}{16} + \\frac{h^{3} \\left(- \\frac{3 L^{2} c_{3}}{4} - L c_{10} - c_{16}\\right)}{4} + h \\left(- \\frac{5 L^{4} c_{1}}{16} - \\frac{L^{3} c_{8}}{2} - \\frac{3 L^{2} c_{14}}{4} - L c_{19} - c_{23}\\right), \\ \\frac{h^{5} \\left(2 L c_{5} + 4 c_{12}\\right)}{16} + \\frac{h^{3} \\left(\\frac{L^{3} c_{3}}{4} + \\frac{L^{2} c_{10}}{2} + L c_{16} + 2 c_{21}\\right)}{4}, \\ 24 \\left(15 c_{0} x^{2} + 5 c_{1} x y + c_{13} + c_{2} y^{2} + 5 c_{7} x + c_{8} y\\right) + 8 \\left(3 c_{10} y + c_{15} + 6 c_{2} x^{2} + 9 c_{3} x y + 6 c_{4} y^{2} + 3 c_{9} x\\right) + 24 \\left(c_{11} x + 5 c_{12} y + c_{17} + c_{4} x^{2} + 5 c_{5} x y + 15 c_{6} y^{2}\\right)\\right]$" ], "text/plain": [ "⎡ \n", "⎢ \n", "⎢ 3 2 \n", "⎢ 4 3 c₁₀⋅h 2 c₁₅⋅h \n", "⎢30⋅c₀⋅x + 10⋅c₁⋅h⋅x + ────── + 12⋅c₁₃⋅x + 3⋅c₁₄⋅h⋅x + ────── + 6⋅c₁₈⋅x + c\n", "⎣ 4 2 \n", "\n", " \n", " \n", " 3 4 2\n", " 2 2 3⋅c₃⋅h ⋅x c₄⋅h 3 2 3⋅c₉⋅h \n", "₁₉⋅h + 3⋅c₂⋅h ⋅x + 2⋅c₂₂ + ───────── + ───── + 20⋅c₇⋅x + 6⋅c₈⋅h⋅x + ───────\n", " 4 8 2 \n", "\n", " \n", " ⎛L ⎞ \n", " q⋅⎜─ + x⎟ 2 3 \n", "⋅x ⎝2 ⎠ 4 3⋅c₁₀⋅h ⋅x c₁₁⋅h 2 3⋅c₁₆\n", "── + ─────────, - 5⋅c₁⋅x - ────────── - ────── - 3⋅c₁₄⋅x - 2⋅c₁₅⋅h⋅x - ─────\n", " L 2 2 4 \n", "\n", " \n", " \n", " 2 2 2 4 \n", "⋅h 3 9⋅c₃⋅h ⋅x 3 5⋅c₅⋅h \n", "─── - 2⋅c₁₉⋅x - 4⋅c₂⋅h⋅x - c₂₀⋅h - c₂₃ - ────────── - c₄⋅h ⋅x - ─────── - 4⋅c\n", " 4 16 \n", "\n", " \n", " \n", " 3 \n", " 3 2 4 3 c₁₀⋅h 2 c₁₅\n", "₈⋅x - 3⋅c₉⋅h⋅x , 30⋅c₀⋅x - 10⋅c₁⋅h⋅x - ────── + 12⋅c₁₃⋅x - 3⋅c₁₄⋅h⋅x + ───\n", " 4 2\n", "\n", " \n", " \n", " 2 3 4 \n", "⋅h 2 2 3⋅c₃⋅h ⋅x c₄⋅h 3 \n", "─── + 6⋅c₁₈⋅x - c₁₉⋅h + 3⋅c₂⋅h ⋅x + 2⋅c₂₂ - ───────── + ───── + 20⋅c₇⋅x - 6⋅\n", " 4 8 \n", "\n", " \n", " \n", " 2 2 3 \n", " 2 3⋅c₉⋅h ⋅x 4 3⋅c₁₀⋅h ⋅x c₁₁⋅h 2 \n", "c₈⋅h⋅x + ─────────, - 5⋅c₁⋅x - ────────── + ────── - 3⋅c₁₄⋅x + 2⋅c₁₅⋅h⋅x - \n", " 2 2 2 \n", "\n", " \n", " \n", " 2 2 2 4 \n", "3⋅c₁₆⋅h 3 9⋅c₃⋅h ⋅x 3 5⋅c₅⋅h \n", "──────── - 2⋅c₁₉⋅x + 4⋅c₂⋅h⋅x + c₂₀⋅h - c₂₃ - ────────── + c₄⋅h ⋅x - ─────── \n", " 4 4 16 \n", "\n", " \n", " \n", " 5 3 ⎛ 2 ⎞ ⎛ 4 3 \n", " 3 2 3⋅c₆⋅h h ⋅⎝L ⋅c₄ + 2⋅L⋅c₁₁ + 4⋅c₁₇⎠ ⎜L ⋅c₂ L ⋅\n", "- 4⋅c₈⋅x + 3⋅c₉⋅h⋅x , ─────── + ──────────────────────────── + h⋅⎜───── + ───\n", " 8 4 ⎝ 8 4\n", "\n", " ⎛ 2 ⎞ \n", " 3 ⎜ 3⋅L ⋅c₃ ⎟ \n", " 2 ⎞ 5 h ⋅⎜- ─────── - L⋅c₁₀ - c₁₆⎟ \n", "c₉ L ⋅c₁₅ ⎟ L⋅q c₅⋅h ⎝ 4 ⎠ \n", "── + ────── + L⋅c₂₀ + 2⋅c₂₄⎟, - ─── - ───── + ──────────────────────────── + h\n", " 2 ⎠ 2 16 4 \n", "\n", " ⎛ 3 \n", " 3 ⎜L ⋅c₃\n", " ⎛ 4 3 2 ⎞ 5 h ⋅⎜─────\n", " ⎜ 5⋅L ⋅c₁ L ⋅c₈ 3⋅L ⋅c₁₄ ⎟ h ⋅(2⋅L⋅c₅ + 4⋅c₁₂) ⎝ 4 \n", "⋅⎜- ─────── - ───── - ──────── - L⋅c₁₉ - c₂₃⎟, ─────────────────── + ─────────\n", " ⎝ 16 2 4 ⎠ 16 \n", "\n", " 2 ⎞ \n", " L ⋅c₁₀ ⎟ \n", " + ────── + L⋅c₁₆ + 2⋅c₂₁⎟ \n", " 2 ⎠ ⎛ 2 2 \n", "──────────────────────────, 24⋅⎝15⋅c₀⋅x + 5⋅c₁⋅x⋅y + c₁₃ + c₂⋅y + 5⋅c₇⋅x + c\n", " 4 \n", "\n", " \n", " \n", " \n", " ⎞ ⎛ 2 2 ⎞ ⎛ \n", "₈⋅y⎠ + 8⋅⎝3⋅c₁₀⋅y + c₁₅ + 6⋅c₂⋅x + 9⋅c₃⋅x⋅y + 6⋅c₄⋅y + 3⋅c₉⋅x⎠ + 24⋅⎝c₁₁⋅x +\n", " \n", "\n", " ⎤\n", " ⎥\n", " ⎥\n", " 2 2⎞⎥\n", " 5⋅c₁₂⋅y + c₁₇ + c₄⋅x + 5⋅c₅⋅x⋅y + 15⋅c₆⋅y ⎠⎥\n", " ⎦" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conds = [s22.subs(y, h/2) + (x + L/2)*q/L,\n", " s12.subs(y, h/2),\n", " s22.subs(y, -h/2),\n", " s12.subs(y, -h/2),\n", " integrate(s11.subs(x, L/2), (y,-h/2, h/2)),\n", " integrate(s12.subs(x, L/2), (y,-h/2, h/2)) - q*L/2,\n", " integrate(y*s11.subs(x, L/2), (y,-h/2, h/2)),\n", " diff(phi, x, 4) + diff(phi, y, 4) + 2*diff(phi, x, 2, y, 2)]\n", "conds" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "image/png": "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m4C6tbYcPb/0KGP98ySs/N+X/lxCNigQdcQz5Q3muyQT2BXQVu5qlJ3WZyvrKbblCUQd8DzOTNnm3D4TvN0SIECAQFWBrv517PT3GH+N8SLGdJ0jDemdQtthb3k885tewGUgQGCBAvq5dTKt6/zqvWx1vMV6fgJRB1y/OL9scUQECHQI6A91wFhMgECWgP5QFl+1jSNfPM9TTXdYxJEX3mc+jKx3aOW8N9XJgMrpSaLrAGHlmeJrDRMECBDoL6Ct6W+1G1K7s6thmgABAgQI5Anoj/T30wfpbyVkmwJRR1Z7/T23/m9s/jH7B1zbLJpSTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBATYHtB1y/qbkTcRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQGBOAR9wnVPfvgkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqCrgA65VeUVOgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCcAvc2O7+4e/fu7nF8+vLly9XuAtMECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBA4V4H4Puv9OLaLneP7Op2+2vo5xrRyd3gTH3B9ubvANAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBM5VID7g+jqO7cXB8V39H01y3zOmbxiyAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ \\frac{L^{4} c_{2} h}{8} + \\frac{L^{3} c_{9} h}{4} + \\frac{L^{2} c_{15} h}{2} + \\frac{L^{2} c_{4} h^{3}}{4} + \\frac{L c_{11} h^{3}}{2} + L c_{20} h + c_{17} h^{3} + 2 c_{24} h + \\frac{3 c_{6} h^{5}}{8}, \\ 10 c_{1} h + 20 c_{7}, \\ 12 c_{13} + 3 c_{2} h^{2} - 6 c_{8} h, \\ 120 c_{1} + 72 c_{3} + 120 c_{5}, \\ 24 c_{10} + 120 c_{12} + 24 c_{8}, \\ - 5 c_{1}, \\ - 4 c_{2} h - 4 c_{8}, \\ 24 c_{13} + 8 c_{15} + 24 c_{17}, \\ - \\frac{5 L^{4} c_{1} h}{16} - \\frac{L^{3} c_{8} h}{2} - \\frac{3 L^{2} c_{14} h}{4} - \\frac{3 L^{2} c_{3} h^{3}}{16} - \\frac{L c_{10} h^{3}}{4} - L c_{19} h - \\frac{L q}{2} - \\frac{c_{16} h^{3}}{4} - c_{23} h - \\frac{c_{5} h^{5}}{16}, \\ 24 c_{11} + 120 c_{7} + 24 c_{9}, \\ - 3 c_{14} - \\frac{9 c_{3} h^{2}}{4} + 3 c_{9} h, \\ - 3 c_{14} - \\frac{9 c_{3} h^{2}}{4} - 3 c_{9} h, \\ - \\frac{c_{10} h^{3}}{4} + \\frac{c_{15} h^{2}}{2} - c_{19} h + 2 c_{22} + \\frac{c_{4} h^{4}}{8}, \\ 24 c_{2} + 48 c_{4} + 360 c_{6}, \\ \\frac{c_{11} h^{3}}{2} - \\frac{3 c_{16} h^{2}}{4} + c_{20} h - c_{23} - \\frac{5 c_{5} h^{4}}{16}, \\ - \\frac{3 c_{10} h^{2}}{2} - 2 c_{15} h - 2 c_{19} - c_{4} h^{3}, \\ \\frac{12 L c_{14} h + 24 L c_{18} + 3 L c_{3} h^{3} + 6 L c_{9} h^{2} + 4 q}{4 L}, \\ - \\frac{c_{11} h^{3}}{2} - \\frac{3 c_{16} h^{2}}{4} - c_{20} h - c_{23} - \\frac{5 c_{5} h^{4}}{16}, \\ 12 c_{13} + 3 c_{2} h^{2} + 6 c_{8} h, \\ - \\frac{3 c_{10} h^{2}}{2} + 2 c_{15} h - 2 c_{19} + c_{4} h^{3}, \\ \\frac{L^{3} c_{3} h^{3}}{16} + \\frac{L^{2} c_{10} h^{3}}{8} + \\frac{L c_{16} h^{3}}{4} + \\frac{L c_{5} h^{5}}{8} + \\frac{c_{12} h^{5}}{4} + \\frac{c_{21} h^{3}}{2}, \\ 4 c_{2} h - 4 c_{8}, \\ - 3 c_{14} h + 6 c_{18} - \\frac{3 c_{3} h^{3}}{4} + \\frac{3 c_{9} h^{2}}{2}, \\ 360 c_{0} + 48 c_{2} + 24 c_{4}, \\ - 10 c_{1} h + 20 c_{7}, \\ 30 c_{0}, \\ \\frac{c_{10} h^{3}}{4} + \\frac{c_{15} h^{2}}{2} + c_{19} h + 2 c_{22} + \\frac{c_{4} h^{4}}{8} + \\frac{q}{2}\\right]$" ], "text/plain": [ "⎡ 4 3 2 2 3 3 \n", "⎢L ⋅c₂⋅h L ⋅c₉⋅h L ⋅c₁₅⋅h L ⋅c₄⋅h L⋅c₁₁⋅h 3 \n", "⎢─────── + ─────── + ──────── + ──────── + ──────── + L⋅c₂₀⋅h + c₁₇⋅h + 2⋅c₂₄\n", "⎣ 8 4 2 4 2 \n", "\n", " 5 \n", " 3⋅c₆⋅h 2 \n", "⋅h + ───────, 10⋅c₁⋅h + 20⋅c₇, 12⋅c₁₃ + 3⋅c₂⋅h - 6⋅c₈⋅h, 120⋅c₁ + 72⋅c₃ + 120\n", " 8 \n", "\n", " \n", " \n", "⋅c₅, 24⋅c₁₀ + 120⋅c₁₂ + 24⋅c₈, -5⋅c₁, -4⋅c₂⋅h - 4⋅c₈, 24⋅c₁₃ + 8⋅c₁₅ + 24⋅c₁₇,\n", " \n", "\n", " 4 3 2 2 3 3 \n", " 5⋅L ⋅c₁⋅h L ⋅c₈⋅h 3⋅L ⋅c₁₄⋅h 3⋅L ⋅c₃⋅h L⋅c₁₀⋅h L⋅q \n", " - ───────── - ─────── - ────────── - ────────── - ──────── - L⋅c₁₉⋅h - ─── - \n", " 16 2 4 16 4 2 \n", "\n", " 3 5 2 \n", "c₁₆⋅h c₅⋅h 9⋅c₃⋅h \n", "────── - c₂₃⋅h - ─────, 24⋅c₁₁ + 120⋅c₇ + 24⋅c₉, -3⋅c₁₄ - ─────── + 3⋅c₉⋅h, -3\n", " 4 16 4 \n", "\n", " 2 3 2 4 \n", " 9⋅c₃⋅h c₁₀⋅h c₁₅⋅h c₄⋅h \n", "⋅c₁₄ - ─────── - 3⋅c₉⋅h, - ────── + ────── - c₁₉⋅h + 2⋅c₂₂ + ─────, 24⋅c₂ + 48\n", " 4 4 2 8 \n", "\n", " 3 2 4 2 \n", " c₁₁⋅h 3⋅c₁₆⋅h 5⋅c₅⋅h 3⋅c₁₀⋅h \n", "⋅c₄ + 360⋅c₆, ────── - ──────── + c₂₀⋅h - c₂₃ - ───────, - ──────── - 2⋅c₁₅⋅h \n", " 2 4 16 2 \n", "\n", " 3 2 3\n", " 3 12⋅L⋅c₁₄⋅h + 24⋅L⋅c₁₈ + 3⋅L⋅c₃⋅h + 6⋅L⋅c₉⋅h + 4⋅q c₁₁⋅h \n", "- 2⋅c₁₉ - c₄⋅h , ───────────────────────────────────────────────────, - ──────\n", " 4⋅L 2 \n", "\n", " 2 4 2 \n", " 3⋅c₁₆⋅h 5⋅c₅⋅h 2 3⋅c₁₀⋅h \n", " - ──────── - c₂₀⋅h - c₂₃ - ───────, 12⋅c₁₃ + 3⋅c₂⋅h + 6⋅c₈⋅h, - ──────── + 2\n", " 4 16 2 \n", "\n", " 3 3 2 3 3 5 5 \n", " 3 L ⋅c₃⋅h L ⋅c₁₀⋅h L⋅c₁₆⋅h L⋅c₅⋅h c₁₂⋅h c\n", "⋅c₁₅⋅h - 2⋅c₁₉ + c₄⋅h , ──────── + ───────── + ──────── + ─────── + ────── + ─\n", " 16 8 4 8 4 \n", "\n", " 3 3 2 \n", "₂₁⋅h 3⋅c₃⋅h 3⋅c₉⋅h \n", "─────, 4⋅c₂⋅h - 4⋅c₈, -3⋅c₁₄⋅h + 6⋅c₁₈ - ─────── + ───────, 360⋅c₀ + 48⋅c₂ + 2\n", " 2 4 2 \n", "\n", " 3 2 4 ⎤\n", " c₁₀⋅h c₁₅⋅h c₄⋅h q⎥\n", "4⋅c₄, -10⋅c₁⋅h + 20⋅c₇, 30⋅c₀, ────── + ────── + c₁₉⋅h + 2⋅c₂₂ + ───── + ─⎥\n", " 4 2 8 2⎦" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "eqlist = conds2eqs(conds)\n", "\n", "eqlist" ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [], "source": [ "sol = solve(eqlist, d)" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ c_{0} : 0, \\ c_{1} : 0, \\ c_{10} : \\frac{q}{2 h^{3}}, \\ c_{11} : 0, \\ c_{12} : - \\frac{q}{10 h^{3}}, \\ c_{13} : 0, \\ c_{14} : - \\frac{q}{4 L h}, \\ c_{15} : 0, \\ c_{16} : \\frac{L q}{4 h^{3}} + \\frac{q}{10 L h}, \\ c_{17} : 0, \\ c_{18} : - \\frac{q}{12 L}, \\ c_{19} : - \\frac{3 q}{8 h}, \\ c_{2} : 0, \\ c_{20} : 0, \\ c_{21} : \\frac{q \\left(- 35 L^{2} + 6 h^{2}\\right)}{120 h^{3}}, \\ c_{22} : - \\frac{q}{8}, \\ c_{23} : - \\frac{q \\left(15 L^{2} + h^{2}\\right)}{80 L h}, \\ c_{24} : 0, \\ c_{3} : \\frac{q}{3 L h^{3}}, \\ c_{4} : 0, \\ c_{5} : - \\frac{q}{5 L h^{3}}, \\ c_{6} : 0, \\ c_{7} : 0, \\ c_{8} : 0, \\ c_{9} : 0\\right\\}$" ], "text/plain": [ "⎧ \n", "⎪ q -q -q \n", "⎨c₀: 0, c₁: 0, c₁₀: ────, c₁₁: 0, c₁₂: ─────, c₁₃: 0, c₁₄: ─────, c₁₅: 0, c₁₆:\n", "⎪ 3 3 4⋅L⋅h \n", "⎩ 2⋅h 10⋅h \n", "\n", " ⎛ 2 \n", " L⋅q q -q -3⋅q q⋅⎝- 35⋅L \n", " ──── + ──────, c₁₇: 0, c₁₈: ────, c₁₉: ─────, c₂: 0, c₂₀: 0, c₂₁: ───────────\n", " 3 10⋅L⋅h 12⋅L 8⋅h \n", " 4⋅h 120⋅h\n", "\n", " 2⎞ ⎛ 2 2⎞ \n", "+ 6⋅h ⎠ -q -q⋅⎝15⋅L + h ⎠ q -q \n", "───────, c₂₂: ───, c₂₃: ────────────────, c₂₄: 0, c₃: ──────, c₄: 0, c₅: ─────\n", "3 8 80⋅L⋅h 3 \n", " 3⋅L⋅h 5⋅L⋅h\n", "\n", " ⎫\n", " ⎪\n", "─, c₆: 0, c₇: 0, c₈: 0, c₉: 0⎬\n", "3 ⎪\n", " ⎭" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{q y \\left(- 35 L^{3} + 30 L^{2} x + 6 L h^{2} + 60 L x^{2} - 40 L y^{2} + 12 h^{2} x + 40 x^{3} - 80 x y^{2}\\right)}{20 L h^{3}}$" ], "text/plain": [ " ⎛ 3 2 2 2 2 2 3 \n", "q⋅y⋅⎝- 35⋅L + 30⋅L ⋅x + 6⋅L⋅h + 60⋅L⋅x - 40⋅L⋅y + 12⋅h ⋅x + 40⋅x - 80⋅x⋅y\n", "──────────────────────────────────────────────────────────────────────────────\n", " 3 \n", " 20⋅L⋅h \n", "\n", "2⎞\n", " ⎠\n", "──\n", " \n", " " ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(s11.subs(sol))" ] }, { "cell_type": "code", "execution_count": 53, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{q \\left(- h + 2 y\\right) \\left(h + 2 y\\right) \\left(15 L^{2} + 60 L x + h^{2} + 60 x^{2} - 20 y^{2}\\right)}{80 L h^{3}}$" ], "text/plain": [ " ⎛ 2 2 2 2⎞ \n", "-q⋅(-h + 2⋅y)⋅(h + 2⋅y)⋅⎝15⋅L + 60⋅L⋅x + h + 60⋅x - 20⋅y ⎠ \n", "──────────────────────────────────────────────────────────────\n", " 3 \n", " 80⋅L⋅h " ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(s12.subs(sol))" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{q \\left(L + 2 x\\right) \\left(- h + y\\right) \\left(h + 2 y\\right)^{2}}{4 L h^{3}}$" ], "text/plain": [ " 2\n", "q⋅(L + 2⋅x)⋅(-h + y)⋅(h + 2⋅y) \n", "───────────────────────────────\n", " 3 \n", " 4⋅L⋅h " ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ "factor(s22.subs(sol))" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "x_vec, y_vec = np.mgrid[-5:5:100j, -1:1:100j]\n", "s11_fun = lambdify((x, y, L, h, q), s11.subs(sol), \"numpy\")\n", "s12_fun = lambdify((x, y, L, h, q), s12.subs(sol), \"numpy\")\n", "s22_fun = lambdify((x, y, L, h, q), s22.subs(sol), \"numpy\")" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s12_vec = s12_fun(x_vec, y_vec, 10, 2, 1)\n", "plot_contours(x_vec, y_vec, s12_vec);" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s11_vec = s11_fun(x_vec, y_vec, 10, 2, 1)\n", "plot_contours(x_vec, y_vec, s11_vec);" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s22_vec = s22_fun(x_vec, y_vec, 10, 2, 1)\n", "plot_contours(x_vec, y_vec, s22_vec);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Cantilever beam with uniform force and triangular shape\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We want to check that the stress function\n", "\n", "$$\\phi = C\\left[r^2(\\alpha - \\theta) + \\frac{1}{2}r^2 \\sin(2\\theta) - r^2\\cos^2\\theta \\tan \\alpha\\right]$$\n", "\n", "satisfy the boundary conditions for this problem." ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle C \\left(r^{2} \\left(\\alpha - \\theta\\right) + \\frac{r^{2} \\sin{\\left(2 \\theta \\right)}}{2} - r^{2} \\cos^{2}{\\left(\\theta \\right)} \\tan{\\left(\\alpha \\right)}\\right)$" ], "text/plain": [ " ⎛ 2 ⎞\n", " ⎜ 2 r ⋅sin(2⋅θ) 2 2 ⎟\n", "C⋅⎜r ⋅(α - θ) + ─────────── - r ⋅cos (θ)⋅tan(α)⎟\n", " ⎝ 2 ⎠" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ "r, theta, C, alpha, q = symbols(\"r theta C alpha q\")\n", "phi = C*(r**2*(alpha - theta) + r**2*sin(2*theta)/2 - r**2*cos(theta)**2*tan(alpha))\n", "phi" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle C \\left(2 \\alpha - 2 \\theta - 2 \\sin^{2}{\\left(\\theta \\right)} \\tan{\\left(\\alpha \\right)} - \\sin{\\left(2 \\theta \\right)}\\right)$" ], "text/plain": [ " ⎛ 2 ⎞\n", "C⋅⎝2⋅α - 2⋅θ - 2⋅sin (θ)⋅tan(α) - sin(2⋅θ)⎠" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Srr = simplify(1/r**2*diff(phi, theta, 2) + 1/r*diff(phi, r))\n", "Srr" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle C \\left(2 \\alpha - 2 \\theta + \\sin{\\left(2 \\theta \\right)} - 2 \\cos^{2}{\\left(\\theta \\right)} \\tan{\\left(\\alpha \\right)}\\right)$" ], "text/plain": [ " ⎛ 2 ⎞\n", "C⋅⎝2⋅α - 2⋅θ + sin(2⋅θ) - 2⋅cos (θ)⋅tan(α)⎠" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Stt = simplify(diff(phi, r, 2))\n", "Stt" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - C \\left(\\sin{\\left(2 \\theta \\right)} \\tan{\\left(\\alpha \\right)} + \\cos{\\left(2 \\theta \\right)} - 1\\right)$" ], "text/plain": [ "-C⋅(sin(2⋅θ)⋅tan(α) + cos(2⋅θ) - 1)" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Srt = -simplify(diff(1/r*diff(phi, theta), r))\n", "Srt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the upper edge we have that\n", "\n", "\\begin{align}\n", " \\sigma_{\\theta\\theta} &= -q\\\\\n", " \\sigma_{r\\theta} &= 0\n", "\\end{align}\n", "\n", "and in the lower one\n", "\n", "\\begin{align}\n", " \\sigma_{\\theta\\theta} &= 0\\\\\n", " \\sigma_{r\\theta} &= 0\n", "\\end{align}\n", "\n", "\n", "The constant $C$ can be inferred from the first boundary condition, i.e." ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ - \\frac{q}{2 \\alpha - 2 \\tan{\\left(\\alpha \\right)}}\\right]$" ], "text/plain": [ "⎡ -q ⎤\n", "⎢──────────────⎥\n", "⎣2⋅α - 2⋅tan(α)⎦" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sol = solve(Stt.subs(theta, 0) + q, C)\n", "sol" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And the solution is then" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{q \\left(2 \\alpha - 2 \\theta - 2 \\sin^{2}{\\left(\\theta \\right)} \\tan{\\left(\\alpha \\right)} - \\sin{\\left(2 \\theta \\right)}\\right)}{2 \\alpha - 2 \\tan{\\left(\\alpha \\right)}}$" ], "text/plain": [ " ⎛ 2 ⎞ \n", "-q⋅⎝2⋅α - 2⋅θ - 2⋅sin (θ)⋅tan(α) - sin(2⋅θ)⎠ \n", "─────────────────────────────────────────────\n", " 2⋅α - 2⋅tan(α) " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle - \\frac{q \\left(2 \\alpha - 2 \\theta + \\sin{\\left(2 \\theta \\right)} - 2 \\cos^{2}{\\left(\\theta \\right)} \\tan{\\left(\\alpha \\right)}\\right)}{2 \\alpha - 2 \\tan{\\left(\\alpha \\right)}}$" ], "text/plain": [ " ⎛ 2 ⎞ \n", "-q⋅⎝2⋅α - 2⋅θ + sin(2⋅θ) - 2⋅cos (θ)⋅tan(α)⎠ \n", "─────────────────────────────────────────────\n", " 2⋅α - 2⋅tan(α) " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{q \\left(\\sin{\\left(2 \\theta \\right)} \\tan{\\left(\\alpha \\right)} + \\cos{\\left(2 \\theta \\right)} - 1\\right)}{2 \\alpha - 2 \\tan{\\left(\\alpha \\right)}}$" ], "text/plain": [ "q⋅(sin(2⋅θ)⋅tan(α) + cos(2⋅θ) - 1)\n", "──────────────────────────────────\n", " 2⋅α - 2⋅tan(α) " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "Srr2 = Srr.subs(C, sol[0])\n", "Stt2 = Stt.subs(C, sol[0])\n", "Srt2 = Srt.subs(C, sol[0])\n", "\n", "display(Srr2)\n", "display(Stt2)\n", "display(Srt2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And we need to check that the other boundary conditions are satisfied." ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Srt.subs(theta, 0)" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "trigsimp(Stt.subs(theta, alpha))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "SymPy does not detect that the other expression is zero,\n", "but we can help rewriting the expression" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAoAAAAOCAYAAAAWo42rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAyUlEQVQoFXVSiQ3CMBBLIgaoYIOwAc8EdITOwA6MwCioI9AV2g1gAygbFDucpRPQky5ufHYvX5ymKTBijBXgjHwhb8g18oL6AAyBQhP3mDZuTiMNudRNdAQxSiQExw69F15BtBIIwTVIrq1KGBj1B35GrpdRJ9sEJ08OM5H5x6UV5fZamVdqzSJ3ORsUyvVPpG6PhB2qpUhvUJe7WneoivRCmTsJW1R3XmHfW+BQurrD5XV9X+EIbkPNwpwEuk8412zcHniAqDyKNz6nat0C44eNAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0$" ], "text/plain": [ "0" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "simplify((Srt.subs(theta, alpha)).rewrite(sin))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want to write the solution in Cartesian coordinates we can change the frame\n", "by\n", "\n", "$$ [\\sigma'] = [Q^T] [\\sigma] [Q]$$\n", "\n", "with\n", "\n", "$$Q = \\begin{bmatrix}\n", "\\cos(\\theta) &\\sin(\\theta)\\\\\n", "-\\sin(\\theta) &\\cos(\\theta)\n", "\\end{bmatrix}$$" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [], "source": [ "Q = Matrix([\n", " [cos(theta), sin(theta)],\n", " [-sin(theta), cos(theta)]])\n", "S_polar = Matrix([\n", " [Srr2, Srt2],\n", " [Srt2, Stt2]])" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAABFCAYAAAAMyDLcAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAX6ElEQVR4Ae2dj9HcttHGJY0LUOQOlA4cfRXE6cCyKpDVgTyqwJN0YLsCTdKBkgrsqAO7AylvB/6eHwRQIAiAIAney+MtZnjE393Fg12AAHjEwz/++OOBOUPAEDAEjobAw4cPv5JML7xc+F+pv/r9aHKaPOsReGgD0HrwrKQhYAjsh4AGoHfqn/4GB/m/1u1Hhf+8H0ejfGkEHu3JUErzdE/6RnsbAj3bR7R4Qp24Uvwko0UYAlMEnkRRv8r/VPr0OIorepfotuloEcbdE3YbgNSof986XYaGrh91vfP3JuXrhVoLf+V57GVD1te9eOfoiP53un7LpS2NE51R+xDWVcVa6bW60jnwlJq6Unyaz8InRkC6sVh31X/8JYIE3fpdcXdRXNYrXiPdDpkq+ms6GkC6hzsNy0ZQev1Xjf1gzSVa/9T1dE3ZUEbl/x7T8DRXyxTott5b+SvfO12PoSv33+Bv5bMkn2jTVv9cUiaXFxq6hvaRvwlr5avWVek/xnQD71J8SLf7Oju7JtykA6t1V2V58MS2Bp0t1V15Rrod51NaUX+VltXduLz51+mpxz0dXwh/E8+Anisivr5XeLHTUwZLMTypbN0s/CZh/oPCX4l+l2U90UFRa26Wv2igtKxTh6eyjwpjaEXXwLdYVnz+rYs2Wu3EP9c+veqKzjCYpa4Un+az8EkRWKu70lcGn591/VU0qn1KQbcdokqbs1XT0f10jz4hHluGPuyLwFON+6/g33h/o/IMFj0cg01QutDJx3FbeKDYcy7mNeLvDeM7EfhTRIT88bp1lDR4W/gOmWOP58lT4Ps4fqG/1D6b6yq57iQjyxnIGNqNWXQ2fqHclv2KEViju74MnZd7GFaYpTXnL0CR1W1Pp2qrpqMFRDtEC9t/p2TUJq4/HQagNEMpHClF2IugM2QJKgxgX8m/pYN0rEUjfduFJ3ccm5GDQykV+KDrS13I8YpE5JQ/DBpELXIN/FHo9wmPuBNfxC9kltxhHwnZweCDePzD486sjRnWQ13UEX5uyUH3v+oiDRwYAIanDIVjN2mfznV9K2bI8VPMVP5SfJLNgkdDwOsedlayeSfyDrrrlt1EHFvD8VBTG4Amuu1KfSrfYqumox6wS97oLNQHza/vKR9P7yghDa3bAwYFPG5tlruu31poLc0DXV2v43I+7usQpzCdscujO09LxT0spbN0VkxP05R/xF9hjIOLqT0XvMHC7Qel5UNY6UW+SqMtBrnlB884DP4i9Vlun8etp4Z4xSHXNyEc7j7vbPso3+q6wlfXZJ+qFB9ks/vnNj0SFmq3qs0HWZVvV90NfEp38S/2PUprslXly+puiafFr9dZYf0/8P5CP0scT0HsQ8QznDuFw3ILShD8S+hW8+rJKvD9R8ioODp99pri6R2bjK+Uhnz4u7gcfxGmri/F3838lIenNAZmZi5rHdi9Fi2MHvmpW+tyZowDdJAvdbPt06Gu1B/5U1eKT/NZ+FgIBNsr2XyQdm/dDXxK95put9qq6WgJ3Z3ilw5A30qOl5EsPPXEHR9JNOLIqVPjycItjY0SpoHnaQfuO/ZhaS0qkspCUuh4oTPwE42wTBUVd/8p4Mkodm9VbhjkSKjwp5ONjZIlL4x1cEv5ivfvKsMf71hmQGYc4RRjlxD/pLjFaYl/0j4hfUtdAw3dP+rK7YOV4qOi5j0gAqmd5WyeafkldHcOnpJuz9qqJ2w6Oodw5/TmAUidE42YNiSdYzzToAHJM3JSTmYJYY9olFYLiCfK/meVD/s6hD8q/F73VBZIBf6jdWLln+yHiPbwL2sK5twMf2d0lFM+nrCeiQ94DG4pX9FhSZNZnaOjMAM3M710P2zgsdAT8JkU21rXiCCDDw8CqSvFp/ksfBAEpBMtNu+kvYDuzqFS1G0KyqacTkrOrK164qajcyh3Tn/USk8NeKe8XCglnS6dZfo0FGYgZNnkPH1mFL/I/w2X/AwsoXNjEEKZnFM6cr0ggKw+7NLW/Kg89avyV57An0GClwC2OugNg6fqwaAd6ruVNuWz7dO5rtQhJ3Mpvke9jMYOCDTafOC8t+4GPqV7Vrd95veNtmo6WkJ3p/jmGZDnz0zijRrzF91524rOnoHAOd/xMzhtegPNk/uP7gwqYSlq4OHTkeV733m6gVH8CfNvfTdwKH3xrMvT5jbH/6XywI+8vCgw4EDEBsfgGd6EA+Mw+wOLn6GrdL6JxV4XcQx+xLHx/9yX5cGA/0wxmxowkB/aufbpWde/iPeozZBPrhT/KdV+j4pA1eYToXfT3YTPJFjRbfK22qrp6ATZfSPoPemsWI5yPWkrO3VkbLrzdVoabXC+Axx1fEPigTySc3YJbg9x74tvqMve7SP6fK1ipBPwLsUHuex+fATUhlmbP4rkW3XbdPRyLSmseQvu5aMNLNmnmGyOq/NhE394AWADfSu6AwJ7to+UKuxZjSQvxY8yWeAaEMja/FEE36LbpqP304qrBiA1Fss+dDZfy89eSer4qGX481iadpTwfQ2S98U3xr17+6i9WQ78mzqB0R9QS/GxMOY/PgJqxzmbP0olFuu26ej9Nd3qJbg5kdWoDFD8+zi3IT1X3NJ3RqB3+4ge+1Y/qb3ZjxtcKX7IYB5DoDMCS3XbdLRzAzSQE+ZuCa55AFIB9+mDBtqWxRBoQkCD1aJ9xyailmkVAmbf7bCZ3rZjVcoZBqDmt+CODLoqM/r4ZanS1xy/to4ql/0+Vin+mjEy2dcjcGT7Xl+rTyV7285Weaz8ZwRW7QF9Lr6fT0oze0Aa3Mkn4zn1Mt/GOpYO2yrF79eoRtkQuDACO9nOhWtxXnaHHIBQGkHu/uuiwYU3b/iHMv9VGTnl4/8m7n8wo4SdA+J7MZ5b6yj8+B8Q/w96GsNSio/zmN8Q6I3AGWynNya3TO+QA5AahBcYYveDAqPD6KTIvH3H/43uY/bzLBZuL3/HOvJ1BQb11JXi03wWNgR6IXAW2+mFx03TOeoARKPET+zhzao47o3yvL1062lQoCOP5dhThC511CANfu6guFjYUnycx/yGQC8EzmQ7vTC5dTrNLyFcEih1jOnHN8N/jX6N5Mhurod0r+wfFP5S1/A1bcWv/kyQyjIzY/Dhcz9hGe57OnKF+aIEy4W/6eJLAHwRwP0nRmmUYbmQe+vBccrqjncofuJHdBkMW+vIYI2Mo//pKFyKV5K5W0RgoV41QSSaZ7SdprpbpjoCdErqK9cfLrR3WclHpz4cRic/HXnxYDWff9VBdXN1EW0Gw/+l+RTH/2BiGTnqIZYBmZsOjoO2XNc6ih4dgB0Ud2A9T3XqPsLSEWwt1lsenJoOeZyTV3ROZTtz9bX08pgiXVh1IJ3KXdb5pzEOwYvP6aFzzu79KD8zE/aG4s8EcWRE94PqYiSQT7zZpwofEuXLABhcLAdF4jB1oC4517uOLMMhU+pK8Wk+C58cAbOd4kGWZiM76f4hl+BCXWUQfM5nWD4L8f6OUuTct4p8mSSEjj49qI5ZQcuncSYH5SX03evgimPAcXkl+/+leQhroCrJncteyttcx4joR/mfROHgLcWHdLvfDgLNeiX9Ntu5Hb3YraaHHYCk4CwNlg6jo9N8XECF+HTfJOQfztqhrAYDXlEejisgbqmTnCxPMDtj5oO8YdBw8mGons9S0kHmXLnmOkaFGXxys8ZSfFTUvDeCQLNeme3ciEbsXM1HO9NfRV6dNjMJNthLh9GFGU2OPoPPsKwlWhjVCzIyOPgwwbUO3mFwQU6OInbhEO8JBxnC3Uc333rXETlyA1ApvllQy3gaBMx2Ptty3KhmIzEaHf1HnQHxp1M69dHBZmF24QeS3MFqQLPrQXWeN/s9yMbx4G4JT2Hu4bC+IAcHyL31A5R7a45yKlM9OI7CO9SRN/NGeMJHrhT/KdV+bwkBsx099KrB01URs5GdrKD5Y6Q78V9NVh05S16HP/hudQVVsGcdRcsOitvSGFb2qhC4hO1cFSAHE1bts/lAunutkmYIpz/4rlcd1dhsGIf/LQ3tVoofMpjHELhSBPa2nSuF5XBiPzqcRMsEWnz41DLyy3OrU+dVbD6kyvVOF+vHW9ymOoo/S5l2UNyWFrCy14rALrZzrWAcUe6rHoD0lMNa7ccOnXzPtuHr3HwdIXxnjf8grXYd6sir7KO3/7wwpfjVslpBQ+BICOxoO0eq5lXLcrV7QEdFXYPhsNfiZx+sdf5JxnB3VJlNLkPAEDAELomA+sbr3gO6JFhLeGmg4Y2Z4PgvEy9KNA0+S2Zyyssr4OZ2QGBJO+zA3kjOINCzfW7RjtbgV8OpljbTlA+ueglurnJb0wXsd7r4NtZip3LsvbzRxQdKZ53yZw/Wg44u1rLZU+LNv+DsQLmARMc7OOuBIfd/qWYuvq1oM/YAuaMLF3Mt/JHJy5bqVVc5xWO1DeUEoW5x+xD29ShirfRaXbvaUYs8uXpdKg75YvwW8K3hVEubZcFTumQqfzjuVtOEC9hMPuA5h4fK0OHwnxs+IwS41cvn5VjxST6lsYfk6OjOB04HmvLzZlu2XI6WxU3xjTERlrTZJjxVnj9QDzQ8TZZlJ227R1wrf+Ur6lVPucRnlQ3lZPBYxtg2YT1XV6V3sSPRaZIn1A2+wX+Ju/ht0u8aTrW0XN2U332M1GZAQqLkBBwfQeXPec2Opy1lRhHdxj9PHLXCSndfUxCfyVO30jCMd0q78zT4PA8GHVx40SGE7b4SgVo7LCTJK++xmxymGCcu9UtOOpGam+XfoFc1+ovS1thQjkGhfXrVtcmOemCf1O1ZEt4tWMBvKb8aTrW0Ih8bgIrQuD+CMnVfutfCLIU3zFi6c6N8hQVJLNO9TfOILwMZdOLze54q/CTk9QMT01/izW1DINsOK0nG7REeHuK4lWRdMfRizsW8Rvxb9GqO+JJ0+OlaakM5FqX22VzXBXa0Cfu4UsLEzZbiuJ39Jfya2dZwqqXVGHxRS7zmNG9oNHLYw+E7VyxfjT6zoXxhXwVD5SC8D8rDp3ZQNp42mXHwtiBfJkDZ3TRW9+zBciqbHqZH0ZorHazH4PPeN2woD/90psTghYzxQBXy210INOpCqR0WYZhp/9D5/hoTkkzoZuthgnHRqr+Bf6teVfnEiapLVxuKaUf+Sft0rutmO2qQx1VHeDFzw5bd3pSv454HW8Jigp/ni30s0cUaTrW0wG5yp/MSdpdZo74EH9WHwYOBB9B1c8ck4BnWj308dWdTzq3Pk56EoaPkz9j4PM0Hy8VlU7+nlT1YT2nMpLh+9BcDH3yHPSDoyaHMi/epUlnOGgYvXVVdUDrtnm2Hrbh43sNBhb7NkGfVoW8qx5Js835Syl/hJr1q5UE9dO1qQ6Lf1D7KB64D1vI311V5Z+1IeTZhH2MqWjyY7H6wpde3In6SYZEuKn8Rp1paXHcvk1sd+kKFzugY0dm/YdYT3J3C6eyB8Gs9AdBJsSnLYXGs2be41oPlarRQjFSmkJ+0l5LZzdgkI0+uDKh3IYO/E0Z+c3kEWnSh1g55qg2x/slydJii4niguMiBiTn+4t2qVw01dFkuYUOz7dOhrl3tqCDPLKay794HW8Izi99KXazhVEvL1v2sA9C3qm18KB1PafGA4cBgQFIj8Jo0G2hhc5fwJK8rEP1kBoIodZGXRsu5x4qMB1BehqAzTR0vJgz7QmmihR806YJwmrSDdIOnPfe18xkcJwcWqiwPDMxW0/KpPJCmE6eTSA9MDMu95AmOPT+e7GP3lo4rjqjwr+rV0jpf0IYm7RPqu7auoby/j+xINPfAPmE5DYovNs7sqOfBljDK4desixDwboRTiGxIS7J+Cp5uAFIDYmCpkTGoTD6Jo7w0NE+jpLMWSofDE+rSfRyKr3E0JrJmHcZNguSic3oW5EwyM/iUZlFJ1tsKLtCFbDsIb2afoz3DFgTFlwee0mGKqW5CMvDnQWhw4j95A1O0WQZy+jpkTDwz/Fm+K+rV0jqL1yVsKOCT1NTZRg3ral0TYiM72gv7hOcQFI57HWwJjxJ+zbo4CPrpYbfU34wwjMoUvY+KKVeaIMW5k+hcgEvnjYFkZ0CKp2MfjN4bXwlcZe3u4IUMOfdesoc0BkVeesg58lxS5pwMh4xboAu1dlhUN69vPMWWDlN8r7TQrugnevoCJsjrwwRXuRb+yhP41/SqlT+09rahbPt0rutmO2qQJ8aUOsV91F4HW8Izi5/i1+hiDadaGnJM3OlmQL6GPDm+kUL8ovuXxMm4ATvnMPrXPoG8bslEcSjHz8TLzx/GXvk4jJa4poPlyFtyvsNxnRD+JN9Lhb8XH6LZ5C3Jb4dlJcAlwVldmGmHhNxs8D/Kge6EJV1XIGpf5KFdeTCizVmmI8wbUW7gUtziWZfKBDfHv1WvAr2W+642VGmfnnXtYUdz8gxY+jrtfrAlDCv4rdHFGk61tKHusef0HyOVUbMW/0qNADiHc5KPwW/1wXoqP3z89HCVO5hANV3Y2g6XqqrknF2Cu5Qsl+Szd/uI/qwdXTP2vfCr4VRLS3VFeW/mY6Ssl8++VJACdKmwBsbVB+upEcOe1aXEvXY+RV3Y0g7XDso1yL9n+9yCHfXAr4ZTLa2mX49qideeJlBYLqOT/lp+ljyO6vhgJTO1Zqf8LPNMDpprJnBjGRt1YXE73AOM6Vt19yDCvbHs3j4L7ejasV+NXw2nWtqcppx+CW4OgKOkqxEZKPnyARuGs075Wbr7SfnTvaPZspahjMDSdihTspQ9EOjdPrdmR2vxq+FUSyvpgMq4JbirHoBUCfcpgFIlLf4zAhqo3NsMn2PO7zP9OH8bWw2PicBcfxMGoKt+C26uksdsmjap1EB8NqhpNhRTVLniN5/ifLfgP7N+7NV+a/VuL3n2oLu2jiXbKsXvIfvZaJ56D+haG0sKzWvXiwcfX99Nh0NdK2YmdxkB9EkX6//FQ9sovVHvygIcKGVjHUu2VYo/UM2PKYoNQA3tgvE2ZOuSRbz4/8hqfhq4+A/Jc9HhT2HmbhwBOlxB4P7HJt3gLUD+rc7/VUZuq96NiC0IiO9qXV/AxmXdWseSbZXil8p3i/ltAGpr9Wdt2bblkoHwph7/CVo7+wkC8M90Oh5zhgAvt8TuBwW+kq4NDygd9S7m0+o/i22ZzbW2eJTPBqAIjJxXxklHPhhrLk/HuDei9XYrPQ1gvBnHssCl5N4qspXfF4FYD8Jbk3FcF71bWoUz2ZbZ3NLW/5T/ql9CiKvslfmD4r7UNXyFWPH4g9HFRWb9KsvTI4bKZ1LCUsGeB0dVXyBYWEcGMr6BZwfVCYRbddL99MO64f9wv0aY9NS7iGzZe1LbMpsrN3kxhU5Ketp+yNXR8kr+33StOuBrri6ii8HufnCUeDDQFQ9FI01Xcx2Vl8HTDqq7Yr2e08016V6P4kPbuurdEpkky6lsy2yufQwRVuc4kM7PTC5ywJdAG5wMrffBUXQE2b2flXVk1vd4ENg8N4+An0GPDsgTKL31bjPOV2xbZnMLW/8MS3DNhyr5aX/L5zQmB4yluHpj5gmu58FRpaXC5jpGcn6U/0kUNu8NIyB9LR2QByqb9c5syymX2dxCGzvDAMRTfnpUAYpA/HBOCbjoyYpXlLd86p7/Sux1cFSQGVFT11zHqCCDT3ZGFeUx7w0gIJ1lmb10QF4XvTPbcopkNrfQnh4tzH/E7Aw+LCM4J2Ojs35BQEbBOSWEtzg6cUdDtJjx7HVwFHyGeiQCr6ljcWkloW3BEyPgdZY3OUsH5PXWuyVons22zOaWtL7ynmEGtOZQpWaY/CC2+8FRnk/pcLo1dVx8OFQzKJbxmhCoHpK2g941Y3NC2zKba279TxmHj5FmyvFl5kMe4paR9RRRelrddDhdDIJozR6wFec3/+0i0FPvjopizzqWbKsUf1RMLiWXcHknXiwDp+45AxDLS7nEOw1Ahz3ILa3JWcI0lnDnkymrnWjwCvYT0bH/AK1G8bYK9tC7oyPWo44l2yrFHx2TS8gnbBhfclsh7x+qk7qEDMajEYGtiqzyNDQfM215269RKst2dgS26t014LO1jiXbKsVfAyb3LeOj+xbA+I8R0MDBW3ofpdSlFxLGBaYhXrcdvf03zWIxhsAYgQ56NyZ4wFCHOpZsqxR/QBSOJdL/AxX/9KYhj+lBAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{q \\left(- 2 \\alpha + 2 \\theta + \\sin{\\left(2 \\theta \\right)}\\right)}{2 \\left(\\alpha - \\tan{\\left(\\alpha \\right)}\\right)} & \\frac{q \\sin^{2}{\\left(\\theta \\right)}}{\\alpha - \\tan{\\left(\\alpha \\right)}}\\\\\\frac{q \\sin^{2}{\\left(\\theta \\right)}}{\\alpha - \\tan{\\left(\\alpha \\right)}} & \\frac{q \\left(- 2 \\alpha + 2 \\theta - \\sin{\\left(2 \\theta \\right)} + 2 \\tan{\\left(\\alpha \\right)}\\right)}{2 \\left(\\alpha - \\tan{\\left(\\alpha \\right)}\\right)}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 2 ⎤\n", "⎢q⋅(-2⋅α + 2⋅θ + sin(2⋅θ)) q⋅sin (θ) ⎥\n", "⎢───────────────────────── ────────── ⎥\n", "⎢ 2⋅(α - tan(α)) α - tan(α) ⎥\n", "⎢ ⎥\n", "⎢ 2 ⎥\n", "⎢ q⋅sin (θ) q⋅(-2⋅α + 2⋅θ - sin(2⋅θ) + 2⋅tan(α))⎥\n", "⎢ ────────── ────────────────────────────────────⎥\n", "⎣ α - tan(α) 2⋅(α - tan(α)) ⎦" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ "S_cart = simplify(Q.T * S_polar * Q)\n", "S_cart" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [], "source": [ "angle = np.pi/10\n", "t_vec, r_vec = np.mgrid[0:angle:100j, 0:5:100j]\n", "x_vec = r_vec * np.cos(t_vec)\n", "y_vec = r_vec * np.sin(t_vec)\n", "s11_fun = lambdify((r, theta, alpha, q), S_cart[0, 0], \"numpy\")\n", "s12_fun = lambdify((r, theta, alpha, q), S_cart[0, 1], \"numpy\")\n", "s22_fun = lambdify((r, theta, alpha, q), S_cart[1, 1], \"numpy\")" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('');\n", " button.click(method_name, toolbar_event);\n", " button.mouseover(tooltip, toolbar_mouse_event);\n", " nav_element.append(button);\n", " }\n", "\n", " // Add the status bar.\n", " var status_bar = $('');\n", " nav_element.append(status_bar);\n", " this.message = status_bar[0];\n", "\n", " // Add the close button to the window.\n", " var buttongrp = $('
');\n", " var button = $('');\n", " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", " buttongrp.append(button);\n", " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", " titlebar.prepend(buttongrp);\n", "}\n", "\n", "mpl.figure.prototype._root_extra_style = function(el){\n", " var fig = this\n", " el.on(\"remove\", function(){\n", "\tfig.close_ws(fig, {});\n", " });\n", "}\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(el){\n", " // this is important to make the div 'focusable\n", " el.attr('tabindex', 0)\n", " // reach out to IPython and tell the keyboard manager to turn it's self\n", " // off when our div gets focus\n", "\n", " // location in version 3\n", " if (IPython.notebook.keyboard_manager) {\n", " IPython.notebook.keyboard_manager.register_events(el);\n", " }\n", " else {\n", " // location in version 2\n", " IPython.keyboard_manager.register_events(el);\n", " }\n", "\n", "}\n", "\n", "mpl.figure.prototype._key_event_extra = function(event, name) {\n", " var manager = IPython.notebook.keyboard_manager;\n", " if (!manager)\n", " manager = IPython.keyboard_manager;\n", "\n", " // Check for shift+enter\n", " if (event.shiftKey && event.which == 13) {\n", " this.canvas_div.blur();\n", " event.shiftKey = false;\n", " // Send a \"J\" for go to next cell\n", " event.which = 74;\n", " event.keyCode = 74;\n", " manager.command_mode();\n", " manager.handle_keydown(event);\n", " }\n", "}\n", "\n", "mpl.figure.prototype.handle_save = function(fig, msg) {\n", " fig.ondownload(fig, null);\n", "}\n", "\n", "\n", "mpl.find_output_cell = function(html_output) {\n", " // Return the cell and output element which can be found *uniquely* in the notebook.\n", " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", " // IPython event is triggered only after the cells have been serialised, which for\n", " // our purposes (turning an active figure into a static one), is too late.\n", " var cells = IPython.notebook.get_cells();\n", " var ncells = cells.length;\n", " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", " data = data.data;\n", " }\n", " if (data['text/html'] == html_output) {\n", " return [cell, data, j];\n", " }\n", " }\n", " }\n", " }\n", "}\n", "\n", "// Register the function which deals with the matplotlib target/channel.\n", "// The kernel may be null if the page has been refreshed.\n", "if (IPython.notebook.kernel != null) {\n", " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", "}\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s12_vec = s12_fun(r_vec, t_vec, angle, 1)\n", "plot_contours(x_vec, y_vec, s12_vec)\n", "plt.gca().invert_yaxis();" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "application/javascript": [ "/* Put everything inside the global mpl namespace */\n", "window.mpl = {};\n", "\n", "\n", "mpl.get_websocket_type = function() {\n", " if (typeof(WebSocket) !== 'undefined') {\n", " return WebSocket;\n", " } else if (typeof(MozWebSocket) !== 'undefined') {\n", " return MozWebSocket;\n", " } else {\n", " alert('Your browser does not have WebSocket support. ' +\n", " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", " 'Firefox 4 and 5 are also supported but you ' +\n", " 'have to enable WebSockets in about:config.');\n", " };\n", "}\n", "\n", "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", " this.id = figure_id;\n", "\n", " this.ws = websocket;\n", "\n", " this.supports_binary = (this.ws.binaryType != undefined);\n", "\n", " if (!this.supports_binary) {\n", " var warnings = document.getElementById(\"mpl-warnings\");\n", " if (warnings) {\n", " warnings.style.display = 'block';\n", " warnings.textContent = (\n", " \"This browser does not support binary websocket messages. \" +\n", " \"Performance may be slow.\");\n", " }\n", " }\n", "\n", " this.imageObj = new Image();\n", "\n", " this.context = undefined;\n", " this.message = undefined;\n", " this.canvas = undefined;\n", " this.rubberband_canvas = undefined;\n", " this.rubberband_context = undefined;\n", " this.format_dropdown = undefined;\n", "\n", " this.image_mode = 'full';\n", "\n", " this.root = $('
');\n", " this._root_extra_style(this.root)\n", " this.root.attr('style', 'display: inline-block');\n", "\n", " $(parent_element).append(this.root);\n", "\n", " this._init_header(this);\n", " this._init_canvas(this);\n", " this._init_toolbar(this);\n", "\n", " var fig = this;\n", "\n", " this.waiting = false;\n", "\n", " this.ws.onopen = function () {\n", " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", " fig.send_message(\"send_image_mode\", {});\n", " if (mpl.ratio != 1) {\n", " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", " }\n", " fig.send_message(\"refresh\", {});\n", " }\n", "\n", " this.imageObj.onload = function() {\n", " if (fig.image_mode == 'full') {\n", " // Full images could contain transparency (where diff images\n", " // almost always do), so we need to clear the canvas so that\n", " // there is no ghosting.\n", " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", " }\n", " fig.context.drawImage(fig.imageObj, 0, 0);\n", " };\n", "\n", " this.imageObj.onunload = function() {\n", " fig.ws.close();\n", " }\n", "\n", " this.ws.onmessage = this._make_on_message_function(this);\n", "\n", " this.ondownload = ondownload;\n", "}\n", "\n", "mpl.figure.prototype._init_header = function() {\n", " var titlebar = $(\n", " '
');\n", " var titletext = $(\n", " '
');\n", " titlebar.append(titletext)\n", " this.root.append(titlebar);\n", " this.header = titletext[0];\n", "}\n", "\n", "\n", "\n", "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "\n", "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", "\n", "}\n", "\n", "mpl.figure.prototype._init_canvas = function() {\n", " var fig = this;\n", "\n", " var canvas_div = $('
');\n", "\n", " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", "\n", " function canvas_keyboard_event(event) {\n", " return fig.key_event(event, event['data']);\n", " }\n", "\n", " canvas_div.keydown('key_press', canvas_keyboard_event);\n", " canvas_div.keyup('key_release', canvas_keyboard_event);\n", " this.canvas_div = canvas_div\n", " this._canvas_extra_style(canvas_div)\n", " this.root.append(canvas_div);\n", "\n", " var canvas = $('');\n", " canvas.addClass('mpl-canvas');\n", " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", "\n", " this.canvas = canvas[0];\n", " this.context = canvas[0].getContext(\"2d\");\n", "\n", " var backingStore = this.context.backingStorePixelRatio ||\n", "\tthis.context.webkitBackingStorePixelRatio ||\n", "\tthis.context.mozBackingStorePixelRatio ||\n", "\tthis.context.msBackingStorePixelRatio ||\n", "\tthis.context.oBackingStorePixelRatio ||\n", "\tthis.context.backingStorePixelRatio || 1;\n", "\n", " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", "\n", " var rubberband = $('');\n", " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", "\n", " var pass_mouse_events = true;\n", "\n", " canvas_div.resizable({\n", " start: function(event, ui) {\n", " pass_mouse_events = false;\n", " },\n", " resize: function(event, ui) {\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " stop: function(event, ui) {\n", " pass_mouse_events = true;\n", " fig.request_resize(ui.size.width, ui.size.height);\n", " },\n", " });\n", "\n", " function mouse_event_fn(event) {\n", " if (pass_mouse_events)\n", " return fig.mouse_event(event, event['data']);\n", " }\n", "\n", " rubberband.mousedown('button_press', mouse_event_fn);\n", " rubberband.mouseup('button_release', mouse_event_fn);\n", " // Throttle sequential mouse events to 1 every 20ms.\n", " rubberband.mousemove('motion_notify', mouse_event_fn);\n", "\n", " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", "\n", " canvas_div.on(\"wheel\", function (event) {\n", " event = event.originalEvent;\n", " event['data'] = 'scroll'\n", " if (event.deltaY < 0) {\n", " event.step = 1;\n", " } else {\n", " event.step = -1;\n", " }\n", " mouse_event_fn(event);\n", " });\n", "\n", " canvas_div.append(canvas);\n", " canvas_div.append(rubberband);\n", "\n", " this.rubberband = rubberband;\n", " this.rubberband_canvas = rubberband[0];\n", " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", " this.rubberband_context.strokeStyle = \"#000000\";\n", "\n", " this._resize_canvas = function(width, height) {\n", " // Keep the size of the canvas, canvas container, and rubber band\n", " // canvas in synch.\n", " canvas_div.css('width', width)\n", " canvas_div.css('height', height)\n", "\n", " canvas.attr('width', width * mpl.ratio);\n", " canvas.attr('height', height * mpl.ratio);\n", " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", "\n", " rubberband.attr('width', width);\n", " rubberband.attr('height', height);\n", " }\n", "\n", " // Set the figure to an initial 600x600px, this will subsequently be updated\n", " // upon first draw.\n", " this._resize_canvas(600, 600);\n", "\n", " // Disable right mouse context menu.\n", " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", " return false;\n", " });\n", "\n", " function set_focus () {\n", " canvas.focus();\n", " canvas_div.focus();\n", " }\n", "\n", " window.setTimeout(set_focus, 100);\n", "}\n", "\n", "mpl.figure.prototype._init_toolbar = function() {\n", " var fig = this;\n", "\n", " var nav_element = $('
');\n", " nav_element.attr('style', 'width: 100%');\n", " this.root.append(nav_element);\n", "\n", " // Define a callback function for later on.\n", " function toolbar_event(event) {\n", " return fig.toolbar_button_onclick(event['data']);\n", " }\n", " function toolbar_mouse_event(event) {\n", " return fig.toolbar_button_onmouseover(event['data']);\n", " }\n", "\n", " for(var toolbar_ind in mpl.toolbar_items) {\n", " var name = mpl.toolbar_items[toolbar_ind][0];\n", " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", " var image = mpl.toolbar_items[toolbar_ind][2];\n", " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", "\n", " if (!name) {\n", " // put a spacer in here.\n", " continue;\n", " }\n", " var button = $('