{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kussmaul-Martensen quadrature (also often called \"Kress quadrature\")" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as pt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "t = np.linspace(0, 2*np.pi, 300,endpoint=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's make a curve and pick a target point:" ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uncircleness = 1\n", "\n", "path = np.array([\n", " np.cos(t) + uncircleness*0.2*np.sin(3*t),\n", " np.sin(t) + uncircleness*0.1*np.sin(3*t)\n", " ])\n", "\n", "tgt_index = len(t)//2\n", "tgt_t = t[tgt_index]\n", "tgt = path[:, tgt_index]\n", "\n", "pt.gca().set_aspect(\"equal\")\n", "pt.plot(path[0], path[1])\n", "pt.plot(tgt[0], tgt[1], \"o\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get some derivatives of the curve:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nR4ReEATB5/w/ioSXIHNxJOgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import scipy.fftpack as fft\n", "\n", "dpath_dt = np.array([\n", " fft.diff(path[0]),\n", " fft.diff(path[1]),\n", " ])\n", "\n", "dpdt_squared = dpath_dt[0]**2 + dpath_dt[1]**2\n", "pt.plot(dpdt_squared)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Get normals to the curve:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "normals = np.array([\n", " dpath_dt[1],\n", " -dpath_dt[0]\n", " ]) / np.sqrt(dpdt_squared)\n", "\n", "pt.plot(path[0], path[1])\n", "pt.quiver(path[0], path[1], normals[0], normals[1])" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xm81ePax/HPlYrUY4oyRGYpHESG0MZB4SlDHXLMU5Q5\nJxGnkGOe4yRHCKmeeCgpHbIfU5IGpUkIFTqopOEodT9/XKtjy97taa11r/Vb3/frtV977bV//db1\n67f3te91D9dtIQRERCS5asQOQEREMkuJXkQk4ZToRUQSToleRCThlOhFRBJOiV5EJOHKTfRm1sjM\nxpjZNDObamZXlHJMKzNbbGYTUx83ZiZcERGprJoVOOYX4JoQwmQzqwdMMLPRIYSZ6xz3VgihbfpD\nFBGR6ii3RR9C+DaEMDn1eCkwA9iulEMtzbGJiEgaVKqP3sx2BPYFxpXy7YPNbJKZjTCzpmmITURE\n0qAiXTcApLpthgJXplr2JU0AGocQlptZG+AlYPf0hSkiIlVlFal1Y2Y1gVeAkSGEBytw/BygeQhh\n4TrPq7COiEgVhBCq3D1e0a6b/sD0spK8mTUs8bgF/gdkYWnHhhAS+9GzZ8/oMej6dH2Fdm2FcH3V\nVW7XjZm1BP4MTDWzSUAAbgAae94O/YD2ZnYpsApYAZxW7chERCQtyk30IYR3gQ3KOeYR4JF0BSUi\nIumjlbFpVFRUFDuEjNL15a8kXxsk//qqq0KDsWl7MbOQzdcTEUkCMyNkYTBWRETylBK9iEjCKdGL\niCScEr2ISMIp0YuIJJwSvYhIwinRi4gknBK9iEjCKdGLiCScEr2ISMIp0YuIJJwSvYhIwinRi4gk\nnBK9iEjCKdGLiCScEr2ISMIp0YuIJJwSvYhIwinRi4gknBK9iEjCKdGLiCScEr2ISMIp0YuIJFzN\n2AFUxTffwBtvwKRJMGMGLF8Oq1bBNtvArrtCy5bwxz9CnTqxIxURic9CCNl7MbNQ1ddbtQoGDYL+\n/WHyZE/kzZtDs2bwX/8FNWvC/PnwyScwZgxMnAjt2sH118Oee6b5QkREssjMCCFYlf99rif61avh\nqafgtttgxx3h8suhTRvYaKP1/7vvv4d+/eCBB/yPwv33Q8OGVQ5dRCSaRCf6CRPg0kuhdm24807v\nkqmspUuhd2948klP+h07Vv4cIiIxJTLR//IL3Hor9O3rCf7ss6FGNYeNx4+Hs86CY47x1n3NvByd\nEJFClLhEP3cunH461K0LTz/tA6zpsngxnHaaPx4yBDbdNH3nFhHJlOom+pyaXvn223DQQT6IOmpU\nepM8wGabwYgRsNNOcNxxsGRJes8vIpKLcqZF37+/z5AZMMCTcCaFAJdd5tMzR42CTTbJ7OuJiFRH\n3nfdhOAzavr3h5EjYY89shNLCNC5M8ya5cm+du3svK6ISGXldaJfvRquvBLeeceTfLq7asqzejWc\ncgrUrw9PPAFW5f9GEZHMyds++lWr4IwzYNo0+L//y36SB9hgAxg4ED76yGf3iIgkUbmJ3swamdkY\nM5tmZlPN7IoyjnvIzGab2WQz23d95/z5Z+jQAVas8JZ8zNkvdevC8OHw0ENeVkFEJGkq0qL/Bbgm\nhNAMOAToYmZNSh5gZm2AXUIIuwGdgL5lnezf/4ZTT/V58UOHlr/CNRu23Raefdbn2X/9dexoRETS\nq9xEH0L4NoQwOfV4KTAD2G6dw9oBA1LHjAM2NbNSCw6cfLIXGxs8OLcGQI86ylfhduzoffciIklR\nqT56M9sR2BcYt863tgPmlvh6Pr//YwD4XPbnn4datSrzytnRo4f3299zT+xIRETSp8KFAMysHjAU\nuDLVsq+S3XbrRe/e/rioqIiioqKqnirtatTwmjgHHOCF0/bZJ3ZEIlKIiouLKS4uZunS9HRvV2h6\npZnVBF4BRoYQHizl+32BN0MIg1NfzwRahRAWrHNclcsUZ9PaAmgffAAbbhg7GhEpRPPnQ1ER3HEH\ntG+fnemV/YHppSX5lGHA2QBmdjCweN0kn0/OPRd22AHuuit2JCJSiObPhyOPhIsv9skr1VVui97M\nWgJvAVOBkPq4AWgMhBBCv9RxfYDWwDLgvBDCxFLOlRcteoAvv/SNTcaOhd12ix2NiBSK+fN9csh5\n50H37v5cXq+MzXX33AOjR8Nrr2nVrIhk3pdfwtFHQ6dO8Je//Pp83q6MzQdXXgnffutbGIqIZNLn\nn3uf/OWX/zbJp4Na9OUYO9b7yKZP96mhIiLpNnu2t+S7d/dii+tS100WXHKJ70jVp0/sSEQkaaZP\nh2OPhV694MILSz9GiT4LfvgBmjTx4mtNm8aORkSS4r33vILu3Xd7CZayqI8+C+rXhxtugGuvjR2J\niCTF8OG+m95TT60/yaeDEn0Fdeni/WivvRY7EhHJd48/7nPkR4yA1q0z/3rquqmEl17yejgffeR9\n9iIilbFqFVxzjU/bHj4cdt+9Yv9OXTdZ1K4dNGjgf41FRCrj++990PXzz2HcuIon+XRQoq8EM7j/\nfrj5ZliyJHY0IpIv3n0XDjwQDjkEhg3L/lRtdd1UwZlnelmEnj1jRyIiuWzlSm8Y9u8Pfft6r0BV\naHplBJ9/7n+dZ86ErbaKHY2I5KKPP4ZzzvH9sJ94AhqWuhVTxaiPPoKdd4bTT4fbb48diYjkmiVL\nfMD1yCO9Zs3w4dVL8umgRF9FN94ITz8Nc+eWf6yIJN+KFXDffd6tu3gxTJvmUyhzoSCiEn0VbbON\n/7W++ebYkYhITD/8ALfdBrvsAm+/Da+/7n3yDRrEjuxX6qOvhkWLfIrUO+/AHnvEjkZEsmXlSnjj\nDXjmGRg5Ek4+Ga66KnPbj2owNrI77oCJE2HIkNiRiEimrFkDn34Kb74Jo0b55z339NIFp53mZVIy\nSYk+suXLYdddfcClefPY0YhIVYTgv8uLF8OCBb4ByBdf+Ay7yZN9NfwWW8Dhh3vJgmOOyW7XjBJ9\nDnj0UXjlFXj11diRiAjATz95kl6wAL77zlelrv1YvNi7Xdd+Xvu4Zk1fyLTVVrDjjr9+/OEPsO++\nnuhjUaLPAT//7H30zz0HLVvGjkakcKxe7fXcx4+HDz+ESZPgs89g6VLYaSfYdlvYcktP3ltu6V0s\nm2/+68dmm/36ecMNY19N2ZToc0T//vDsszBmTOxIRJJtyRKvIrv2XfQWW/gCxgMPhP339+mNDRvm\nxrTGdFGizxG//OKDM4895ju4i0j6hOAb//zjH57gDz0UTjzRP3bYIXZ0madEn0MGDvTtBt99N1mt\nCZFY1qyBF1/02W3Ll/u2nn/+c+ZnueQaJfocsnq1D9zcdRccf3zsaETy25gx0LUr1K7t+0CceCLU\nKNAlnkr0OebFF6F3b5gwQa16kar45hu47DKf1njHHdC+vX6XVNQsx5x8sn/+3/+NG4dIPnr2WX9X\n3KSJ14rp0EFJPh3Uos+AV1+Fbt18kcUGG8SORiT3LVvm+zJ/8IFPU95vv9gR5Ra16HNQmzawySYw\neHDsSERy32efQYsW/nj8eCX5TFCizwAz76fv2dOnXYpI6d5+2xcZdukCTz0FdevGjiiZlOgz5Kij\nYPvtYcCA2JGI5KYXXoBTT/V9HTp3jh1NsqmPPoPefdfn/M6aldvLq0WybcAAuO46H89SV0351Eef\nw1q2hKZNfb9IEXFPPOHz4seMUZLPFrXoM2zCBGjb1mtZ16kTOxqRuJ5/Hq69FoqLvSaNVIxa9Dmu\neXM46CDo2zd2JCJxDRsGV1/tBcmU5LNLLfosmDrVNyr49FOoVy92NCLZ9+GHPu341Ve9yqRUjlr0\neWDvveHII+Hhh2NHIpJ9c+fCSSfB448rycdSbovezJ4ATgQWhBB+t/WtmbUCXgY+Tz31Ygihdxnn\nKsgWPfjMm8MOg9mzfZMDkULw00++/d6ZZ3rfvFRNxouamdlhwFJgwHoSfdcQQtsKBFuwiR7gvPO8\ndvbNN8eORCTzVq/2lvw22/g+DapZU3UZ77oJIbwDLCovjqoGUEj++levV//997EjEcm8v/0NfvwR\nHnlEST62dPXRH2xmk8xshJk1TdM5E2enneBPf4K7744diUhmvfEGPPooDBoEtWrFjkYqNOvGzBoD\nw8vouqkHrAkhLDezNsCDIYTdyzhPQXfdAMyb52VYp02DrbeOHY1I+n39NRxwgK9+/eMfY0eTDNXt\nuqlZ3QBCCEtLPB5pZo+a2RYhhIWlHd+rV6//PC4qKqKoqKi6IeSVRo3g7LPh9tvhwQdjRyOSXr/8\nAh07QqdOSvLVUVxcTHFxcdrOV9EW/Y54i37vUr7XMISwIPW4BTAkhLBjGecp+BY9wIIFXhph8mQv\nfCaSFL16eY2nUaO0F0M6ZWPWzUCgCKgPLAB6ArWBEELoZ2ZdgEuBVcAK4OoQwrgyzqVEn3L99fDD\nD9CvX+xIRNLjgw/gv/8bJk2CbbeNHU2yaM/YPLVwoW+XNmYM7LVX7GhEqmf5ci9QdsstcNppsaNJ\nHiX6PPbggzBypL/NFclnl13mjZeBA2NHkkwqgZDHOneGOXM82Yvkq9Gj4eWXfb685CYl+ohq1YJ7\n7oGuXWHVqtjRiFTeTz/BhRd6jfnNN48djZRFiT6yE0/0gSsNyko+6tEDjj4ajj02diSyPuqjzwFT\npngZ45kz1SqS/DF2LJxyCnz8MdSvHzuaZNNgbEJ07gwhwN//HjsSkfKtXAn77w833aRZNtmgRJ8Q\nixb5IqqXX4YWLWJHI7J+t94K48bB8OEqWJYNSvQJ8swzcP/9MH68VhVK7po502vMT5jgZbcl8zS9\nMkHOPBM23dSr/onkojVr4KKLoGdPJfl8ohZ9jpkxA444wgdot9kmdjQiv9W/v88Qe/ddvevMJnXd\nJFCPHp7wX3hB/Z+SOxYtgj33hBEjoHnz2NEUFiX6BPr5Z/9Fuv56+POfY0cj4rp08Zlh6lrMPiX6\nhJowAdq08VLGqgQosU2a5D+P06fDFlvEjqbwaDA2oZo397n1F13krSiRWNas8dZ8795K8vlKiT6H\n9egB33zjA2AisTz9NKxeDeefHzsSqSp13eS4qVPhqKN8lsPupe7EK5I5awdgX3nF94GVONRHXwD6\n9vWP99+HjTaKHY0Ukssv98qqffvGjqSwKdEXgBDg9NO9f1S1cCRbJk+G447zAVgVLYtLg7EFwAwe\nfxzeeMP7S0UyreQArJJ8/qsZOwCpmE028YJnrVrBHnvAwQfHjkiS7JlnvMvmggtiRyLpoK6bPPPK\nK9Cpk1cObNQodjSSRIsX+wDssGFw4IGxoxFQH31BuvtuGDAA3npLG5VI+l11FSxfrl3PcokSfQEK\nAa6+GiZO9I2ZNRNH0mXqVN8acPp02HLL2NHIWkr0BWrNGq+Ds3QpDB0KG24YOyLJdyHAkUfCn/7k\nq7Ild2jWTYGqUcNn4NSsCR06+NZuItUxeDD8+KOPAUmyqEWf51au9BbY6tX+i7rxxrEjkny0dCk0\naeI/Qy1bxo5G1qUWfYGrXRuGDPHpl8ccAwsXxo5I8lHv3t43rySfTGrRJ8SaNdCtG7z6qm/YvMsu\nsSOSfDFrFhx2mA/Ebr117GikNGrRC+B99vfcA5ddBoceCv/8Z+yIJB+EAFdcATfcoCSfZEr0CdO5\ns3flnH22b+C8alXsiCSXvfQSzJvnDQRJLnXdJNTXX3v98IUL4dlnVeJYfm/5cmjaFJ580qdVSu5S\n142UatttYeRIb9m3bAl9+vjMHJG17rgDDjpISb4QqEVfAGbMgEsvhSVL4JFH4JBDYkcksc2cCYcf\n7qWIt9sudjRSHrXopVx77glvvgnXXgvt28O558JXX8WOSmIJwRdF9eypJF8olOgLhBmccYa37rfb\nDvbbz3cP+uab2JFJtj31FKxY4e/ypDAo0ReYTTaB227zhF+rFjRr5vPvv/8+dmSSDd99B927e2XK\nDTaIHY1kS7mJ3syeMLMFZjZlPcc8ZGazzWyyme2b3hAlExo0gPvugylT4KeffDOTbt1gwYLYkUkm\nXXstnHUW7Kvf0oJSkRb9k8BxZX3TzNoAu4QQdgM6AdpGOI80auT70E6e7NPt9twTrrlGXTpJNGYM\nFBdDr16xI5FsKzfRhxDeARat55B2wIDUseOATc2sYXrCk2zZfnufgjl1qpdTaNbMV0zOmxc7MkmH\nFSvgkkt81lW9erGjkWxLRx/9dsDcEl/PTz0neWi77eCBB3zjidq1YZ99fLWtZunkt5tugv33hxNP\njB2JxKDBWCnV1lt77ZxZs2DTTX2WzsUXw5w5sSOTynrvPXjuOX/HJoWpZhrOMR/YvsTXjVLPlapX\niQ7CoqIiioqK0hCCZMpWW8Htt/sg3gMP+GbR7dv7zJ369WNHJ+VZscJLYfTpo60B80lxcTHFxcVp\nO1+FVsaa2Y7A8BDC3qV873igSwjhBDM7GHgghHBwGefRytg8t2iRD+Y9/zzccgtcdJGm6eWyv/wF\n5s6FQYNiRyLVkfE9Y81sIFAE1AcWAD2B2kAIIfRLHdMHaA0sA84LIUws41xK9AkxZYovuFq61Lc0\n3Guv2BHJut57D0491e/VVlvFjkaqQ5uDSzQhQP/+vgCne3e46iq17nPFkiU+V/6+++Ckk2JHI9Wl\nRC/Rff45nHOOb37y3HM+N1/iOucc2GgjeOyx2JFIOqiomUS3886+EOe446BFC38s8QwaBO+/7615\nEVCLXtLsn//0JfY33QRdusSOpvB89RUccIDvRdC8eexoJF3UdSM5Z84caNMG2rb1zS1q6H1jVqxa\nBUcdBSec4GMmkhxK9JKTfvgB2rWDxo19Vk7NdKzYkPXq1s1LWIwYoT+uSaM+eslJ9et7N87ChdCx\nozYpz7Rhw2DwYHjmGSV5+T216CWj/v1vX0lbuzYMGaKWfSbMmeN7v778sraJTCq16CWnbbQRvPii\nJ/wLL/TKmJI+K1ZAhw5www1K8lI2teglK5Ytg2OOgUMPhbvv9q0NpXpC8O0hAQYO1P9pklW3Ra83\n0pIVdevCK6/A4Yf7AO3ll8eOKP/dcot327z5ppK8rJ8SvWTNFlt4sj/0UN+68NhjY0eUv55/Hp58\n0hdG1akTOxrJdeq6kax7+20vtvXWW9CkSexo8s/77/sahddf941hJPk0GCt55/DDvZ59+/bedy8V\n9+WXcMop3ppXkpeKUoteogjBC2+ZwVNPqY+5IpYsgZYt4YILvFKoFA6tjJW8tWyZF0Hr2tV3QZKy\nrV7t3TXbbw9//7v+MBYaJXrJa9OnQ6tWMHYs7Lpr7Ghy19VXe3mDkSOhVq3Y0Ui2qY9e8lrTpl7p\n8qyz4JdfYkeTmx57DF59Ff7nf5TkpWrUopfo1qzxWvZHHOFJX371+utw5pk+U2m33WJHI7Go60YS\nYd482G8/37SkWbPY0eSGmTO9W2vIEP8shUtdN5IIjRrBzTfDxRerHg54mecTT/R6/kryUl1K9JIz\nLrnEp10+/njsSOJaudLnyp96Kpx3XuxoJAnUdSM55eOP4cgjYcoU2Gab2NFkXwg+T37hQq/6qdry\nAuq6kYTZay+46CK48srYkcRx770waRI8+6ySvKSPWvSSc1asgL33hj59oHXr2NFkz6hRvnDs/fdh\nhx1iRyO5RC16SZw6dbxl27Vr4cyt/+QTLwkxZIiSvKSfEr3kpLZtYeutoV+/2JFk3o8/+vX27g2H\nHRY7Gkkidd1IzvroI69ZP2sWbLZZ7GgyY/VqaNfON2N55JHY0Uiu0oIpSbSLLoJNNvGunCS64Qav\n8zN6tMobSNmU6CXRFizwlbJjxyavBMCIEXDppTBhAmy1VexoJJcp0Uvi3X47TJzoRb2S4quvvETz\nCy94jXmR9VGil8Rbtsxb8yNGeD2cfLdqlZc1OOkk6NYtdjSSD5TopSA8/DC89ppvLp7vunWDadNg\n+HAtipKKUaKXgvDzz7D77jBoEBxySOxoqm70aC9xMGkSbLll7GgkX2jBlBSEDTf0WvU9esSOpOoW\nLfIk/+STSvKSXWrRS95Ytcp3pOrbF44+OnY0lXfmmbD55t4NJVIZ1W3R10xnMCKZVKuW16y/8UY4\n6qj82iB76FAYP967bESyrUJdN2bW2sxmmtknZnZdKd9vZWaLzWxi6uPG9IcqAqedBosXwxtvxI6k\n4r79Fi67DAYMgI03jh2NFKJyu27MrAbwCXA08DUwHjg9hDCzxDGtgK4hhLblnEtdN1JtAwZ4P/eb\nb8aOpGLat4c99oDbbosdieSrbAzGtgBmhxC+DCGsAgYB7UqLpapBiFRGx47wxRfw3nuxIynfK694\nzR5tei4xVSTRbwfMLfH1vNRz6zrYzCaZ2Qgza5qW6ERKUasWXHdd7reQly3zLpu+fWGjjWJHI4Us\nXYOxE4DGIYTlZtYGeAnYvbQDe/Xq9Z/HRUVFFBUVpSkEKSTnngu33uqDm7m6WrZXLzj88PycISRx\nFRcXU1xcnLbzVaSP/mCgVwihderr7kAIIdy5nn8zB2geQli4zvPqo5e0ue8+774ZOjR2JL83ebKX\nWP74Y2jQIHY0ku+y0Uc/HtjVzBqbWW3gdGDYOkE0LPG4Bf4HZCEiGdSpE7z1FsyYETuS31qzBi65\nBP72NyV5yQ3lJvoQwmrgMmA0MA0YFEKYYWadzOzi1GHtzexjM5sEPACclrGIRVLq1oXOnb1ln0sG\nDvRkf/75sSMRcVoZK3ntX//yqYszZ0LDhuUfn2nLlkGTJjB4MBx6aOxoJClU60YKWoMG0KEDPPpo\n7EjcPff4vq9K8pJL1KKXvDdzJhxxBHz5JdSpEy+OefPgD3/wTVIaN44XhySPWvRS8Jo0gYMO8hWz\nMd1wg28NqCQvuUYtekmE4mKfhTNjRpzNPCZMgLZtYdYsqFcv+68vyaYWvQi+NV+9er7dYAw9eniZ\nAyV5yUVK9JIIZtC1K9x7b/Zf+6234JNPNJ1ScpcSvSRGhw7w+efejZItIXhr/uaboXbt7L2uSGUo\n0Uti1KoFV1yR3Vb9qFGwcCGccUb2XlOksjQYK4myeDHstBNMnw7bbJPZ11qzBg44wPvmTz45s68l\nhU2DsSIlbLaZ70LVr1/mX+uFF2CDDeCkkzL/WiLVoRa9JM7HH3vlyC++yFy/+Zo1vjjqrrugTZvM\nvIbIWmrRi6xjr728/s2LL2buNYYNgw03hNatM/caIumiRC+JdPnl8PDDmTl3CL7pyY03+rROkVyn\nRC+J1LYtzJ3rdWfSbdQoWLnSX0MkHyjRSyLVrOl1Z/r0Se95S7bmY5RaEKkKDcZKYn33Hey+O3z6\nKdSvn55zjhnjf0CmT/cZNyLZoMFYkTJstRW0awf/+Ef6ztm7t1epVJKXfKIWvSTahAlwyileGqG6\nyfnDD/1cn33mq3BFskUtepH1aN4ctt0Whg+v/rnuvReuukpJXvKPWvSSeAMHQv/+8PrrVT/HF1/4\nH405c2CTTdIWmkiFVLdFr0Qvibdype/69MYb0LRp1c5x9dXekr/rrvTGJlIRSvQiFfDXv8KiRVVb\nRLVoEeyyC0yZAo0apT82kfIo0YtUwLx5sM8+8NVXld8F6s47Ydq0+HvSSuHSYKxIBTRqBEVF8Nxz\nlft3K1fCQw/57lUi+UqJXgrGpZfCo4/66taKev55aNbMK1WK5CsleikYRx8NK1bA2LEVOz4EuOce\nuPbazMYlkmlK9FIwatT4tVVfEaNHe3XKY47JbFwimabBWCkoixbBzjvDrFnQoMH6jz3hBDj1VDj/\n/OzEJlIWDcaKVMLmm3sZg/7913/cp5/C+PHQsWN24hLJJLXopeB8+CG0b+81a8qqf3P11b6D1B13\nZDc2kdKoRS9SSQcc4N02o0aV/v2lS33O/KWXZjcukUxRopeC1Llz2YOyzzwDrVp52QSRJFDXjRSk\nFStghx1g3DgfnF0rBN9cvE8fOPLIePGJlKSuG5EqqFMHzjkHHnvst8+PGePTMIuKooQlkhFq0UvB\nmj0bWrb0+jcbbeTPtWsHxx8PnTrFjU2kpKy06M2stZnNNLNPzOy6Mo55yMxmm9lkM9u3qgGJZMtu\nu8F++8HQof71nDnw7rtw5plx4xJJt3ITvZnVAPoAxwHNgI5m1mSdY9oAu4QQdgM6AX0zEGvOKy4u\njh1CRiXx+koOynbvXsy550LdulFDyogk3ruSkn591VWRFn0LYHYI4csQwipgENBunWPaAQMAQgjj\ngE3NrGFaI80DSf9hS+L1nXCClzB+7z0YPryYzp1jR5QZSbx3JSX9+qqrIol+O2Buia/npZ5b3zHz\nSzlGJOfUrOn98R06wPbb/3YGjkhSaNaNFLwLLoDvvoMWLWJHIpIZ5c66MbODgV4hhNapr7sDIYRw\nZ4lj+gJvhhAGp76eCbQKISxY51yaciMiUgXVmXVTswLHjAd2NbPGwDfA6cC6pZ6GAV2Awak/DIvX\nTfLVDVRERKqm3EQfQlhtZpcBo/GunidCCDPMrJN/O/QLIbxqZseb2afAMuC8zIYtIiIVldUFUyIi\nkn1ZG4ytyKKrfGJmX5jZR2Y2ycw+SD23uZmNNrNZZvaamW0aO86KMrMnzGyBmU0p8VyZ12Nm16cW\nyM0ws2PjRF1xZVxfTzObZ2YTUx+tS3wv366vkZmNMbNpZjbVzK5IPZ/397CUa7s89Xwi7p+ZbWhm\n41K5ZKqZ9Uw9n757F0LI+Af+B+VToDFQC5gMNMnGa2fwmj4HNl/nuTuBbqnH1wF3xI6zEtdzGLAv\nMKW86wGaApPwrr8dU/fWYl9DFa6vJ3BNKcfumYfXtzWwb+pxPWAW0CQJ93A915ak+7dx6vMGwPv4\n+qW03btstegrsugq3xi/f0fUDng69fhp4KSsRlQNIYR3gEXrPF3W9bQFBoUQfgkhfAHMxu9xzirj\n+sDv47rakX/X920IYXLq8VJgBtCIBNzDMq5t7TqdpNy/5amHG+IJPJDGe5etRF+RRVf5JgCvmdl4\nM7sw9VzDkJptFEL4FihnV9Kc16CM60nSArkuqfpM/yjx1jivr8/MdsTfvbxP2T+TeXmNJa5tXOqp\nRNw/M6vaCxlFAAAB1UlEQVRhZpOAb4F/hhDGk8Z7pwVTVdcyhHAAcDz+w3Y4nvxLStpId9Ku51G8\nRtO++C/YvZHjqTYzqwcMBa5MtX4T8zNZyrUl5v6FENaEEPbD34W1MLNmpPHeZSvRzwd2KPF1o9Rz\neSuE8E3q83fAS/hbpwVra/yY2dbAv+JFmBZlXc98YPsSx+Xl/QwhfBdSnZ7A4/z69jcvr8/MauKJ\n8JkQwsuppxNxD0u7tqTdP4AQwhKgGGhNGu9dthL9fxZdmVltfNHVsCy9dtqZ2cap1gVmVhc4FpiK\nX9O5qcPOAV4u9QS5y/htn2dZ1zMMON3MapvZTsCuwAfZCrIafnN9qV+etU4BPk49ztfr6w9MDyE8\nWOK5pNzD311bUu6fmW25ttvJzOoAx+DjEOm7d1kcVW6Nj5bPBrrHHuWu5rXshM8cmoQn+O6p57cA\nXk9d52hgs9ixVuKaBgJfAz8DX+GL3jYv63qA6/HR/hnAsbHjr+L1DQCmpO7lS3ifaL5eX0tgdYmf\ny4mp37kyfybz5RrXc22JuH/A3qlrmpy6nh6p59N277RgSkQk4TQYKyKScEr0IiIJp0QvIpJwSvQi\nIgmnRC8iknBK9CIiCadELyKScEr0IiIJ9/+t84kMyue9cQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dist_vec = tgt[:, np.newaxis] - path\n", "\n", "dist = np.sqrt(np.sum(dist_vec**2, axis=0))\n", "\n", "pt.plot(dist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Single-layer potential" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the integrand for the SLP:" ] }, { "cell_type": "code", "execution_count": 25, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "-c:2: RuntimeWarning: divide by zero encountered in true_divide\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "slp_integrand = np.log(1/dist)\n", "pt.plot(slp_integrand)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Even if this is integrable--Gaussian quadrature will do a terrible job. **Why?**" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "-c:4: RuntimeWarning: divide by zero encountered in log\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "near_sing_slice = slice(tgt_index-20, tgt_index+20)\n", "\n", "log_sin_squared = -0.5*np.log(4*np.sin((tgt_t - t)/2)**2)\n", "pt.plot(log_sin_squared[near_sing_slice])\n", "pt.plot(slp_integrand[near_sing_slice])" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "-c:2: RuntimeWarning: invalid value encountered in subtract\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "slp_subtracted = slp_integrand - log_sin_squared\n", "pt.plot(slp_subtracted[near_sing_slice])" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pt.plot(slp_subtracted)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**How does this help?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Double-layer potential" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "collapsed": false }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "-c:2: RuntimeWarning: invalid value encountered in true_divide\n" ] }, { "data": { "text/plain": [ "[]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "grad_slp = dist_vec/dist**2\n", "\n", "dlp_integrand = np.sum(grad_slp * normals, axis=0)\n", "pt.plot(dlp_integrand)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### S'" ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sp_integrand = np.sum(grad_slp * normals[:, tgt_index, np.newaxis], axis=0)\n", "pt.plot(sp_integrand)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Questions\n", "\n", "* How would you apply this for **Helmholtz**?\n", "* Name aspects that make this rule slightly **impractical**\n", "* How would this apply to D'?" ] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }