diff --git a/.ipynb_checkpoints/04_Elliptical_PDEs-checkpoint.ipynb b/.ipynb_checkpoints/04_Elliptical_PDEs-checkpoint.ipynb index 0dd1084..bdcda24 100644 --- a/.ipynb_checkpoints/04_Elliptical_PDEs-checkpoint.ipynb +++ b/.ipynb_checkpoints/04_Elliptical_PDEs-checkpoint.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -317,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -350,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -388,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -444,11 +444,6 @@ " by[-1] = U1[ii,-1]\n", " U[ii,:] = np.linalg.solve(Ay,by)\n", " \n", - " ## . .Force boundary conditions\n", - "# U[: ,0] = U1[: ,0]\n", - "# U[0 ,:] = U1[0 ,:]\n", - "# U[:,ny-1] = U1[:,ny-1]\n", - "# U[nx-1,:] = U1[nx-1,:]\n", " \n", " ## . . Return the U solution array after a complete cycle of x and y updating!\n", " return U" @@ -463,9 +458,26 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "## . . Space axis parameters\n", "nt = 500 # number of iterations\n", @@ -577,7 +589,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -618,7 +630,7 @@ "\n", "**QUESTION:** Let's look at an example where we want to generate a solution to the 2D Poisson's equation for steady-state heat flow where there are now **heat sinks and sources** within the solution domain. Here, we want to estimate the temperature (i.e., where u = T(x,y)) due to the distribution of the given heat sources and sinks (i.e., $F(x,y)$). The PDE governing this is the following:\n", "\n", - "$$\\nabla^2 T = F(x,y) \\tag{10}$$\n", + "$$\\nabla^2 T = -F(x,y) \\tag{10}$$\n", "\n", "where we will assume a rectilinear solution domain defined by $x,y\\in[0,1]$ and that we have the following boundary conditions:\n", "\n", @@ -654,9 +666,9 @@ " \\frac{\\partial^2 T}{\\partial y^2}\n", " &\\approx & \n", " \\frac{T_{i+1,j}-2T_{i,j}+T_{i-1,j}}{\\Delta x^2} + \n", - " \\frac{T_{i,j+1}-2T_{i,j}+T_{i,j-1}}{\\Delta y^2} = F_{i,j}\\\\\n", + " \\frac{T_{i,j+1}-2T_{i,j}+T_{i,j-1}}{\\Delta y^2} = -F_{i,j}\\\\\n", " &=& \n", - " \\frac{T_{i+1,j}+T_{i-1,j}-4T_{i,j}+T_{i,j+1}+T_{i,j-1}}{ h^2}= F_{i,j}\n", + " \\frac{T_{i+1,j}+T_{i-1,j}-4T_{i,j}+T_{i,j+1}+T_{i,j-1}}{ h^2}= -F_{i,j}\n", " \\end{eqnarray}\n", "\\tag{13}$$\n", " \n", @@ -664,18 +676,18 @@ "\n", "**STEP 1:**\n", "\n", - "$$T^{(m+1)}_{i+1,j}-4T^{(m+1)}_{i,j}+T^{(m+1)}_{i-1,j}= h^2 F_{i,j}-T^{(m )}_{i,j+1}-T^{(m )}_{i,j-1} \\tag{14a}$$\n", + "$$T^{(m+1)}_{i+1,j}-4T^{(m+1)}_{i,j}+T^{(m+1)}_{i-1,j}= -h^2 F_{i,j}-T^{(m )}_{i,j+1}-T^{(m )}_{i,j-1} \\tag{14a}$$\n", "\n", "**STEP 2:**\n", "\n", - "$$T^{(m+2)}_{i,j+1}-4T^{(m+2)}_{i,j}+T^{(m+2)}_{i,j-1}= h^2 F_{i,j}-T^{(m+1)}_{i+1,j}-T^{(m+1)}_{i-1,j} \\tag{14b}$$\n", + "$$T^{(m+2)}_{i,j+1}-4T^{(m+2)}_{i,j}+T^{(m+2)}_{i,j-1}= -h^2 F_{i,j}-T^{(m+1)}_{i+1,j}-T^{(m+1)}_{i-1,j} \\tag{14b}$$\n", "\n", "Let's first adapt what we had above to include the forcing term $F(x,y)$." ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -716,7 +728,7 @@ " ## . . STEP 1 (solve in the x direction and loop over j - y)\n", " ## . . Note that we're writing the results to temporary array U1\n", " for jj in range(1,ny-1):\n", - " bx = h*h*F[:,jj]-U[:,jj-1]-U[:,jj+1] \n", + " bx = -h*h*F[:,jj]-U[:,jj-1]-U[:,jj+1] \n", " # apply boundary condition\n", " bx[0] = U[0,jj]\n", " bx[-1] = U[-1,jj]\n", @@ -726,7 +738,7 @@ " ## . . STEP 2 (solve in the x direction and loop over j - y)\n", " ## . . Note that we're now rewriting the updated result back to U \n", " for ii in range(1,nx-1):\n", - " by = h*h*F[ii,:]-U1[ii-1,:]-U1[ii+1,:]\n", + " by = -h*h*F[ii,:]-U1[ii-1,:]-U1[ii+1,:]\n", " # apply boundary condition\n", " by[0] = U1[ii,0]\n", " by[-1] = U1[ii,-1]\n", @@ -744,26 +756,9 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "## . . Space axis parameters\n", "nt = 250 # number of iterations\n", @@ -781,7 +776,7 @@ "FF[ 75, 75]=+1.\n", "\n", "## . . Initialize solution\n", - "U0 = np.zeros((nx,ny))+FF # . . Note boundary conditions are set as well\n", + "U0 = np.zeros((nx,ny)) # . . Note boundary conditions are set as well\n", "\n", "# . . Plotting min/max\n", "vmin,vmax = 0,1\n", @@ -796,34 +791,65 @@ " value = ADI_Solution_Forcing(U0,h,FF)\n", " U0 = value\n", " conv[i] = np.linalg.norm(e[:,:,i]-U0) ## . . Let's examine the convergence\n", - "conv=conv/conv[0] ## . . Normalize\n", - "\n", + "conv=conv/conv[0] ## . . Normalize" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ "## . . Animate Solution and compute error\n", "k = 0\n", "kskip=5\n", "## . . Set up movie\n", - "fig3,ax3 = plt.subplots(1)\n", - "fig3.subplots_adjust(0.1,0.1,0.9,0.9)\n", + "fig3 = plt.figure()\n", + "ax3 = fig3.add_subplot(111)\n", + "# fig3.subplots_adjust(0.1,0.1,0.9,0.9)\n", "fig3.set_dpi(100)\n", "\n", + "x = e[:,:,k]\n", + "imax = ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", + "cbar_ax = fig3.add_axes([0.9,0.1,0.1,0.8])\n", + "# fig3.colorbar(imax,ax=cbar_ax)\n", + "\n", "def Poisson_animate(i):\n", " global k\n", " x = e[:,:,k]\n", - " ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", + " ax3.cla()\n", + " imax = ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", " ax3.set(xlabel='X(m)', ylabel='Y(m)')\n", " ax3.set_title('NUMERICAL Step %s'%k,fontsize=14)\n", + " fig3.colorbar(imax,ax=cbar_ax)\n", " k += kskip\n", "\n", "## . . Call the animator\n", - "anim2 = animation.FuncAnimation(fig3,Poisson_animate,frames=int((nt-2*kskip)/kskip),interval=100)\n", - "anim2.save('./movies/Ex5_2.mp4')\n", - "plt.close()\n", - "\n", - "HTML(\"\"\"\n", - "\n", - "\"\"\")" + "# anim2 = animation.FuncAnimation(fig3,Poisson_animate,frames=int((nt-2*kskip)/kskip),interval=100)\n", + "# anim2.save('./movies/Ex5_2.mp4')\n", + "Poisson_animate(10)\n", + "Poisson_animate(100)\n", + "Poisson_animate(200)\n", + "plt.show()\n", + "\n", + "# HTML(\"\"\"\n", + "# \n", + "# \"\"\")" ] }, { @@ -837,12 +863,12 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAaa0lEQVR4nO3df5RdZX3v8fdnEkISYKI0AdIkNAkGMLZgcUQQf1C1ELh2oamWX1cFXY1RqNbe3hrboly416JeWu0Sk0ZE0cUFKgaJvSnYqwWWCjUDhkDgIjEJZgg/AngBgZBM5nv/2HvkzNnnnNmZnD0nM8/ntdasnL33c/b5Phw9n/PsvZ99FBGYmVm6ujpdgJmZdZaDwMwscQ4CM7PEOQjMzBLnIDAzS9zEThewp6ZPnx5z587tdBlmZmPKXXfd9WREzGi0bcwFwdy5c+nt7e10GWZmY4qkh5tt86EhM7PEOQjMzBLnIDAzS5yDwMwscQ4CM7PEVRYEkq6S9ISk+5psl6R/lLRR0npJx1VVCwCPPgpvfSs89lilL2NmNtZUOSL4BrCoxfbTgAX53xJgeYW1wKWXwo9+BJdcUunLmJmNNZUFQUTcDjzdoskZwDcjcyfwCkkz217IlCkgwfLlMDCQ/Stl683MrKPnCGYBW2uW+/J1BZKWSOqV1Lt9+/Y9e5VNm+Ccc+ifNAmAgcmT4dxzYfPmkVVtZjbOdDII1GBdw1/JiYiVEdETET0zZjScId3czJnQ3c2EXbt4EdBLL0F3Nxx22J5XbGY2DnUyCPqAOTXLs4FtlbzS44+z+dRTOQF46r3v9QljM7ManQyC1cD786uHTgCeiYhHK3mlVau4d+lS1gNbly2DVasqeRkzs7GospvOSboWOBmYLqkP+AywH0BErADWAKcDG4EXgPOrqgWgqyvLvIGBgSpfxsxszKksCCLi7GG2B3BBVa9fz0FgZtZYMjOLHQRmZo05CMzMEpdMEEjZ1aoOAjOzoZIJgsERQXZqwszMBiUXBB4RmJkN5SAwM0ucg8DMLHEOAjOzxDkIzMwS5yAwM0tcMkHgeQRmZo0lEwQeEZiZNZZcEHhCmZnZUMkFgUcEZmZDOQjMzBLnIDAzS5yDwMwscQ4CM7PEOQjMzBKXTBB4QpmZWWPJBIHnEZiZNZZcEHhEYGY2lIPAzCxxDgIzs8Q5CMzMEucgMDNLnIPAzCxxDgIzs8QlEwSeUGZm1lgyQeAJZWZmjSUXBB4RmJkNVWkQSFok6UFJGyUta7B9mqTvSbpH0gZJ51dVi4PAzKyxyoJA0gTgCuA0YCFwtqSFdc0uAO6PiGOBk4HLJU2qoh4HgZlZY1WOCI4HNkbEpojYCVwHnFHXJoCDlJ3JPRB4GuivohgHgZlZY1UGwSxga81yX76u1peBVwPbgHuBj0dE4ZNa0hJJvZJ6t2/fPqJiHARmZo1VGQRqsK7+kp1TgXXAbwOvBb4sqbvwpIiVEdETET0zZswYUTEOAjOzxqoMgj5gTs3ybLJv/rXOB1ZFZiOwGTi6imI8j8DMrLEqg2AtsEDSvPwE8FnA6ro2vwTeDiDpUOAoYFMVxXhEYGbW2MSqdhwR/ZIuBG4BJgBXRcQGSUvz7SuAS4FvSLqX7FDSJyPiySrq8YQyM7PGKgsCgIhYA6ypW7ei5vE24JQqaxjkQ0NmZo0lM7NYEpIcBGZmdZIJAsgODzkIzMyGchCYmSXOQWBmljgHgZlZ4pIKAp8sNjMrSioIurq6PI/AzKxOckHgEYGZ2VAOAjOzxDkIzMwS5yAwM0ucg8DMLHEOAjOzxDkIzMwSVzoIJB1QZSGjwRPKzMyKhg0CSW+UdD/wQL58rKSvVF5ZBTyhzMysqMyI4B/IfmT+KYCIuAd4S5VFVcWHhszMikodGoqIrXWrdldQS+UcBGZmRWV+qnKrpDcCkf8I/cfIDxONNQ4CM7OiMiOCpcAFwCygD3htvjzmOAjMzIqGHRFExJPAuaNQS+UcBGZmRcMGgaR/bLD6GaA3Im5qf0nVcRCYmRWVOTQ0mexw0EP53zHAwcCHJH2xssoq4HkEZmZFZU4Wvwp4W0T0A0haDnwf+EPg3gprazuPCMzMisqMCGYBtbOKDwB+OyJ2Ay9VUlVFPKHMzKyozIjg88A6SbcCIptM9tn8lhP/p8La2s4jAjOzojJXDX1N0hrgeLIg+OuI2JZv/q9VFtduDgIzs6KyN53rArYDTwOvkuRbTJiZjRNlLh/9HHAmsAEY/BQN4PYK66qEg8DMrKjMOYJ3AUdFxJg6MdyIg8DMrKjMoaFNwH4j2bmkRZIelLRR0rImbU6WtE7SBkm3jeR1ynIQmJkVlRkRvEB21dAPqLlcNCI+1upJkiYAV5DNN+gD1kpaHRH317R5BfAVYFFE/FLSIXvehfI8oczMrKhMEKzO//bU8cDGiNgEIOk64Azg/po25wCrIuKXABHxxAhepzTPIzAzKypz+ejVI9z3LKD2dwz6gDfUtTkS2C+fo3AQ8KWI+Gb9jiQtAZYAHH744SMsx4eGzMwaKXPV0ALg74CFZPcdAiAi5g/31Abr6r+OTwReB7wdmALcIenOiPj5kCdFrARWAvT09Iz4K31XVxf9/f0jfbqZ2bhU5mTx14HlQD/wB8A3gW+VeF4fMKdmeTawrUGbmyPi+fx217cDx5bY94h4RGBmVlQmCKZExA8ARcTDEXEx8LYSz1sLLJA0L/9ls7Monmu4CXizpImSppIdOqrs188cBGZmRWVOFu+Q1AU8JOlC4BFg2Kt7IqI/b38LMAG4KiI2SFqab18REQ9IuhlYTzZZ7cqIuG+knRmOg8DMrKhMEPw5MJXst4ovJRsNfKDMziNiDbCmbt2KuuUvAF8os7+95SAwMysqc9XQ2vzhr4Hzqy2nWg4CM7OiMlcNHUl2l9HfqW0fEWXOE+xTPKHMzKyozKGhbwMrgK8Cu6stp1qeUGZmVlQmCPojYnnllYwCHxoyMytqGgSSDs4ffk/SR4EbGXqvoacrrq3tHARmZkWtRgR3kc0EHpwhXPtrZAEMN7N4n+MgMDMrahoEETFvNAsZDQ4CM7OipjOLJf1nSe9rsP5PJZ1TbVnVcBCYmRW1usXEfwG+22D99fm2McdBYGZW1CoIJkTEc/UrI+JZRviLZZ3meQRmZkWtgmA/SQfUr5R0EDCpupKq4xGBmVlRqyD4GnCDpLmDK/LH1+XbxhxPKDMzK2p11dD/lPRr4DZJB5JdMvo8cNlYnWDmEYGZWVHLmcX5nUJX5EGgRucMxhIHgZlZUZlbTBARv666kNHgIDAzKyrzC2XjhoPAzKzIQWBmlrhhg0DSVEkXSfpqvrxA0jurL639HARmZkVlRgRfJ7vr6In5ch/w3yurqEKeUGZmVlQmCI6IiM8DuwAi4kVeviPpmOJ5BGZmRWWCYKekKWTzCJB0BDW/SzCW+NCQmVlRmctHLwZuBuZIugY4CTivwpoq4yAwMysaNggi4vuS7gJOIDsk9PGIeLLyyirgIDAzKxo2CCStBq4FVkfE89WXVB0HgZlZUZlzBJcDbwbul/RtSe+RNLniuirhIDAzKypzaOg2shvPTQDeBvwpcBXQXXFtbecgMDMrKnWvofyqoT8CzgSOA66usqiqOAjMzIrKnCO4HngD2ZVDVwC3RsSY/DT1hDIzs6IyI4KvA+dExO6qi6laV1d2SiQikMbknDgzs7ZrGgSS3hYRPwSmAmfUf3BGxKqKa2s7B4GZWVGrEcFbgR+SnRuoF8CYDYKBgYHfPDYzS12rn6r8TP7wkojYXLtN0rwyO5e0CPgSMAG4MiIua9Lu9cCdwJkRcUOZfY9EbRCYmVmmzNfi7zRYN+yHdX656RXAacBC4GxJC5u0+xxwS4la9oqDwMysqNU5gqOB1wDTJC2u2dQNlJlQdjywMSI25fu7DjgDuL+u3Z+Rhc3r96DuEXEQmJkVtTpHcBTwTuAVDD1P8BzZpLLhzAK21iz3kV2G+huSZgHvJpuo1jQIJC0BlgAcfvjhJV66MQeBmVlRq3MENwE3SToxIu4Ywb4bXZZT/2MAXwQ+GRG7W13FExErgZUAPT09I/5BgcHXcBCYmb2szDyCn0m6gOww0W8OCUXEB4d5Xh8wp2Z5NrCtrk0PcF3+AT0dOF1Sf0R8t0Rde8wjAjOzojIni78FHAacCtxG9oH+XInnrQUWSJonaRJwFrC6tkFEzIuIuRExl+wE9EerCgEYOo/AzMwyZYLgVRFxEfB8RFwN/Cfg94Z7UkT0AxeSXQ30APDPEbFB0lJJS/em6JHyiMDMrKjMoaFd+b//T9LvAo8Bc8vsPCLWAGvq1q1o0va8MvvcGw4CM7OiMkGwUtIrgYvIDu0cCHy60qoq4iAwMysq83sEV+YPbwPmV1tOtRwEZmZFrSaU/UWrJ0bE37e/nGo5CMzMilqNCA4atSpGiYPAzKyo1YSy/zaahYwGTygzMysa9vJRSUdK+oGk+/LlYyT9bfWltZ9HBGZmRWXmEXwV+BT5ZaQRsZ5sctiY4wllZmZFZYJgakT8tG5dfxXFVM0jAjOzojJB8KSkI8hvGCfpPcCjlVZVEQeBmVlRmQllF5Dd+fNoSY8Am4FzK62qIg4CM7OiMhPKNgHvkHQA2QjiReBM4OGKa2s7B4GZWVHTQ0OSuiV9StKXJf0h8ALwAWAj8CejVWA7OQjMzIpajQi+BfwKuIPsF8n+CpgEvCsi1lVfWvs5CMzMiloFwfyI+D0ASVcCTwKHR0SZ3yLYJ3lCmZlZUaurhgZvP01E7AY2j+UQAM8jMDNrpNWI4FhJz+aPBUzJlwVERHRXXl2b+dCQmVlRq3sNTRjNQkaDg8DMrKjMhLJxw0FgZlbkIDAzS5yDwMwscQ4CM7PEJRUEnkdgZlaUVBB4RGBmVpRkEHhCmZnZy5IMAo8IzMxe5iAwM0ucg8DMLHEOAjOzxDkIzMwS5yAwM0tcpUEgaZGkByVtlLSswfZzJa3P/34i6diK6wEcBGZmtSoLAkkTgCuA04CFwNmSFtY12wy8NSKOAS4FVlZVD3hEYGbWSJUjguOBjRGxKSJ2AtcBZ9Q2iIifRMSv8sU7gdkV1uMJZWZmDVQZBLOArTXLffm6Zj4E/GujDZKWSOqV1Lt9+/YRF+QRgZlZUZVBoAbrGn4Vl/QHZEHwyUbbI2JlRPRERM+MGTNGXJCDwMysqNVvFu+tPmBOzfJsYFt9I0nHAFcCp0XEUxXW4yAwM2ugyhHBWmCBpHmSJgFnAatrG0g6HFgFvC8ifl5hLYCDwMyskcpGBBHRL+lC4BZgAnBVRGyQtDTfvgL4NPBbwFfySzv7I6KnqpocBGZmRRprV9D09PREb2/viJ67efNm3jh/Pj878kgOu+02OOywNldnZrZvknRXsy/aSc0slsRFwKEPPQSXXNLpcszM9gnpBMGUKcydN4+PAoqA5ctBgilTOl2ZmVlHpRMEmzbx4uLFPD+4PHUqnHsubN7cyarMzDquystH9y0zZ7LfwQcjYNfEiey3Ywd0d/s8gZklL50gACY89RQrJHa9//18bPJkePTRTpdkZtZxSQWBVq3iounTOXPyZLjiik6XY2a2T0jnHEGuu7ubZ599ttNlmJntM5IMgmeeeabTZZiZ7TOSC4Jp06Z5RGBmViO5IPChITOzoZIMAh8aMjN7WXJB4ENDZmZDJRcEPjRkZjZUkkGwc+dOduzY0elSzMz2CckFwbRp0wA8KjAzyyUXBN3d3YCDwMxsULJB4CuHzMwyyQWBDw2ZmQ2VXBD40JCZ2VDJBoEPDZmZZZILAh8aMjMbKrkg6O7u5jDgjy6/HB57rNPlmJl1XHJBsP/++/OZri7mbNkCl1zS6XLMzDourSCYMgUklg4MZB1fvhykbL2ZWaLSCoJNm+Ccc9jRlXd76lQ491zYvLmzdZmZdVBaQTBzJnR3M2lggBeB2LEDurvhsMM6XZmZWcekFQQAjz/OlkWLeCew85WvhC1bOl2RmVlHTex0AaNu1SoO2r6dPz7kEPZ7+mmYO7fTFZmZdVR6I4IpU5hxyCF8FOiK8AljM0teekGQnzDeOTEbDAXAvHmwcCGceKLnFphZctI7NDRzJlx/PZN27wZAkF01NHjl0LHHwuzZMGkSrFgBH/4w7NqVbatdJ8GNN/pEs5mNeZUGgaRFwJeACcCVEXFZ3Xbl208HXgDOi4i7q6wJgFNOgY0biYceyoKg1hNPZH+QXVq6YcPQ7bXryobG4Lpm693Wbd3Wbcu0reoLaERU8kf24f8LYD4wCbgHWFjX5nTgX8m+mJ8A/Mdw+33d614XbbF0aYQUA1IMQMRe/A1AvHjEETGQPx7823XUUYV1AxC7X/3qwrp4zWsa77/Rerd1W7dNt+1HPjKijzygt9nnqrLt7SfpRODiiDg1X/5UHjx/V9Pmn4BbI+LafPlB4OSIeLTZfnt6eqK3t3fvC1y8ODtM9MQTcMMNDP5XqB0hRN1ys3VmZqNu8mR48cXSzSXdFRE9jbZVebJ4FrC1ZrkvX7enbZC0RFKvpN7t27e3p7pVq+CKK2D3bpg3D82fX/iAH1yOmj/qHlOzrl6ziHVbt3Vbtx1x2wkTsi+ybbwjQpXnCBp9ca7vY5k2RMRKYCVkI4K9L63GqlXZv4sXZwOvnTuzpH3kEejvh4kT0eAtKQYGsnWTJsELLwzbkWYjB7d1W7d12xG33b0bDj20recJqgyCPmBOzfJsYNsI2oyOwUAoY/FiWLeuYWhQHxqD63bsyNrWr3dbt3Vbty3T9tBD4aSTYO3atl/mXmUQrAUWSJoHPAKcBZxT12Y1cKGk64A3AM+0Oj+wz9iT0DAz28dVFgQR0S/pQuAWsiuIroqIDZKW5ttXAGvIrhzaSHb56PlV1WNmZo1VOo8gItaQfdjXrltR8ziAC6qswczMWkvvFhNmZjaEg8DMLHEOAjOzxDkIzMwSV9ktJqoiaTvw8AifPh14so3ljBUp9tt9ToP7XN7vRMSMRhvGXBDsDUm9ze61MZ6l2G/3OQ3uc3v40JCZWeIcBGZmiUstCFZ2uoAOSbHf7nMa3Oc2SOocgZmZFaU2IjAzszoOAjOzxCUTBJIWSXpQ0kZJyzpdT1UkbZF0r6R1knrzdQdL+jdJD+X/vrLTde4NSVdJekLSfTXrmvZR0qfy9/1BSad2puq906TPF0t6JH+v10k6vWbbeOjzHEn/LukBSRskfTxfP27f6xZ9rva9bvZjxuPpj+w22L8A5gOTgHuAhZ2uq6K+bgGm1637PLAsf7wM+Fyn69zLPr4FOA64b7g+Agvz93t/YF7+v4MJne5Dm/p8MfCXDdqOlz7PBI7LHx8E/Dzv27h9r1v0udL3OpURwfHAxojYFBE7geuAMzpc02g6A7g6f3w18K7OlbL3IuJ24Om61c36eAZwXUS8FBGbyX774vjRqLOdmvS5mfHS50cj4u788XPAA2S/aT5u3+sWfW6mLX1OJQhmAVtrlvto/R93LAvg+5LukrQkX3do5L/8lv97SMeqq06zPo739/5CSevzQ0eDh0jGXZ8lzQV+H/gPEnmv6/oMFb7XqQRBo9+DHq/XzZ4UEccBpwEXSHpLpwvqsPH83i8HjgBeCzwKXJ6vH1d9lnQg8B3gzyPi2VZNG6wbk/1u0OdK3+tUgqAPmFOzPBvY1qFaKhUR2/J/nwBuJBsmPi5pJkD+7xOdq7Ayzfo4bt/7iHg8InZHxADwVV4+JDBu+ixpP7IPxGsiYvDHwsf1e92oz1W/16kEwVpggaR5kiYBZwGrO1xT20k6QNJBg4+BU4D7yPr6gbzZB4CbOlNhpZr1cTVwlqT9Jc0DFgA/7UB9bTf4YZh7N9l7DeOkz5IEfA14ICL+vmbTuH2vm/W58ve602fJR/Fs/OlkZ+B/AfxNp+upqI/zya4guAfYMNhP4LeAHwAP5f8e3Ola97Kf15INj3eRfSP6UKs+An+Tv+8PAqd1uv429vlbwL3A+vwDYeY46/ObyA5zrAfW5X+nj+f3ukWfK32vfYsJM7PEpXJoyMzMmnAQmJklzkFgZpY4B4GZWeIcBGZmiXMQ2Jgg6df5v3MlndPmff913fJP2rTfb+R3jNw/X54uaUub9n2ypH9px77MHAQ21swF9igIJE0YpsmQIIiIN+5hTa3sBj7Yxv21RYn/JpYQB4GNNZcBb87vyf4JSRMkfUHS2vyGXB+G33xj/ndJ/4tsIg6SvpvfjG/D4A35JF0GTMn3d02+bnD0oXzf9yn7jYcza/Z9q6QbJP1fSdfkM0Ib+SLwCUkTa1fWf6OX9GVJ5+WPt0j6rKQ7JPVKOk7SLZJ+IWlpzW66Jd0o6X5JKyR15c8/JX/u3ZK+nd+3ZnC/n5b0I+C9e/Ee2DgzcfgmZvuUZWT3ZX8nQP6B/kxEvD4/BPNjSd/P2x4P/G5kt+cF+GBEPC1pCrBW0nciYpmkCyPitQ1eazHZTb6OBabnz7k93/b7wGvI7uvyY+Ak4EcN9vHLfP37gO/tQT+3RsSJkv4B+Ea+/8lkM8ZX1PRvIfAwcDOwWNKtwN8C74iI5yV9EvgL4JL8OTsi4k17UIclwEFgY90pwDGS3pMvTyO738pO4Kc1IQDwMUnvzh/Pyds91WLfbwKujYjdZDc6uw14PfBsvu8+AEnryA5ZNQoCgM+S3Rbgf+9BvwbvhXUvcGBk96Z/TtIOSa/It/00IjblNVyb17uDLBx+nA9SJgF31Oz3+j2owRLhILCxTsCfRcQtQ1ZKJwPP1y2/AzgxIl7IvzlPLrHvZl6qebybFv9fioiNeVj8Sc3qfoYemq2vZXD/A3WvNVDzWvX3h4m85n+LiLOblPN8k/WWMJ8jsLHmObKf8Bt0C/CR/Na9SDoyv/NqvWnAr/IQOBo4oWbbrsHn17kdODM/DzGD7OciR3o3y/8B/GXN8sPAwvyukdOAt49gn8fnd9TtAs4kG5HcCZwk6VUAkqZKOnKENVsiHAQ21qwH+iXdI+kTwJXA/cDdyn7Y/Z9o/O38ZmCipPXApWQfmINWAusHTxbXuDF/vXuAHwJ/FRGPjaToiNgA3F2zvBX453z/1wA/G8Fu7yA7eX4fsBm4MSK2A+cB1+Z9vRM4eiQ1Wzp891Ezs8R5RGBmljgHgZlZ4hwEZmaJcxCYmSXOQWBmljgHgZlZ4hwEZmaJ+/++D8tWdYN6rgAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAejElEQVR4nO3de5hcdZ3n8fenu3NVOsjQQCaXSZBEJTPCaEAQFQcVwctGWZTbKl5mIALeZmYVZ0aHgV0fL6vjzGNIjIgXHhfw0mjcjeKsjjCorAkKgQQDMQHShtyE5ZqEdOe7f5xTpLpufbpTpytV5/N6nn66zqlTp74nBfXp3/md8/spIjAzs+LqanUBZmbWWg4CM7OCcxCYmRWcg8DMrOAcBGZmBdfT6gJG6/DDD485c+a0ugwzs7Zyxx137IyIvlrPtV0QzJkzh9WrV7e6DDOztiLpwXrP+dSQmVnBOQjMzArOQWBmVnAOAjOzgnMQmJkVXG5BIOlaSdsl3VPneUn6V0kbJK2R9JK8agHg4Yfh1FNh69Zc38bMrN3k2SL4GnBGg+fPBOalPxcBS3OsBa66Cm67Da68Mte3MTNrN7kFQUTcCjzSYJNFwDcicTtwqKTpTS9kyhSQYOlS2Lcv+S0l683MrKV9BDOAzWXLA+m6KpIukrRa0uodO3aM7l02boTzz2dw4kQA9k2eDBdcAJs2ja1qM7MO08ogUI11NWfJiYjlEbEwIhb29dW8Q7q+6dOht5fuvXvZBWjPHujthaOOGn3FZmYdqJVBMADMKlueCWzJ5Z22bWPT61/PScDOs892h7GZWZlWBsEK4J3p1UMnAY9FxMO5vFN/P2svuYQ1wIMf+Qj09+fyNmZm7Si3QeckXQ+8Gjhc0gDwj8AEgIhYBqwE3gBsAJ4G3p1XLQDd3d0ADA0N5fk2ZmZtJ7cgiIjzRng+gEvzev9KDgIzs9oKc2exg8DMrLbCBcG+fftaXImZ2cGlMEHQ1ZUcqlsEZmbDFSYIfGrIzKw2B4GZWcE5CMzMCq5wQeDOYjOz4QoTBO4sNjOrrTBB4FNDZma1OQjMzArOQWBmVnAOAjOzgitMEJQ6i33VkJnZcIUJArcIzMxqcxCYmRWcg8DMrOAcBGZmBVe4IHBnsZnZcIUJAg8xYWZWW2GCwKeGzMxqcxCYmRWcg8DMrOAKFwTuLDYzG64wQeDOYjOz2goTBD41ZGZWW2GCQBKSHARmZhUKEwSQtAocBGZmwxUuCNxZbGY2XKGCoKuryy0CM7MKhQoCnxoyM6vmIDAzK7hcg0DSGZLWS9og6fIaz0+T9ANJd0laK+ndedbjIDAzq5ZbEEjqBpYAZwLHAudJOrZis0uBdRFxHPBq4HOSJuZVk4PAzKxani2CE4ENEbExIp4BbgAWVWwTwCGSBDwXeAQYzKugrq4uXzVkZlYhzyCYAWwuWx5I15X7IvAiYAtwN/DBiKj6ppZ0kaTVklbv2LFjzAW5RWBmVi3PIFCNdVGx/HrgTuCPgeOBL0rqrXpRxPKIWBgRC/v6+sZckIPAzKxankEwAMwqW55J8pd/uXcD/ZHYAGwCXphXQQ4CM7NqeQbBKmCepLlpB/C5wIqKbR4CXgMg6UjgBcDGvApyEJiZVevJa8cRMSjpMuBmoBu4NiLWSlqcPr8MuAr4mqS7SU4lfTQiduZVkzuLzcyq5RYEABGxElhZsW5Z2eMtwOl51lDOLQIzs2q+s9jMrOAcBGZmBecgMDMruMIFgTuLzcyGK1QQeD4CM7NqhQoCnxoyM6vmIDAzKzgHgZlZwRUuCNxZbGY2XKGCwJ3FZmbVChUEPjVkZlbNQWBmVnAOAjOzgnMQmJkVXOYgkPScPAsZD56PwMys2ohBIOnlktYB96bLx0m6OvfKcuAWgZlZtSwtgn8mmWT+DwARcRfwqjyLyouDwMysWqZTQxGxuWJVW36bOgjMzKplmapys6SXA5FOQv8B0tNE7cZBYGZWLUuLYDFwKTADGACOT5fbjjuLzcyqjdgiiIidwAXjUEvu3CIwM6s2YhBI+tcaqx8DVkfE95tfUn4cBGZm1bKcGppMcjro/vTnxcBhwHslfSG3ynLgIDAzq5als/gY4LSIGASQtBT4MfA64O4ca2s6B4GZWbUsLYIZQPldxc8B/jgihoA9uVSVE89HYGZWLUuL4DPAnZJ+BojkZrJPpkNO/J8ca2s6z0dgZlYty1VDX5G0EjiRJAj+LiK2pE//1zyLazafGjIzq5Z10LkuYAfwCHCMJA8xYWbWIbJcPvpp4BxgLVA6wR7ArTnWlQsHgZlZtSx9BG8BXhARbdUxXIs7i83MqmU5NbQRmJB3IeOhq6uLiCAiWl2KmdlBI0uL4GmSq4Z+QtnlohHxgZFeKOkM4F+AbuCaiPhUjW1eDXyBJGx2RsSpWQofi+7ubgCGhobo6cly6GZmnS/Lt+GK9GdUJHUDS0huPBsAVklaERHryrY5FLgaOCMiHpJ0xGjfZzQcBGZm1bJcPvr1Me77RGBDRGwEkHQDsAhYV7bN+UB/RDyUvtf2Mb5XJuVBYGZmiSxTVc6T9B1J6yRtLP1k2PcMoHxCm4F0Xbn5wPMk/UzSHZLeWaeGiyStlrR6x44dGd66NgeBmVm1LJ3FXwWWAoPAXwDfAK7L8DrVWFfZS9sDvBR4I8l0mB+XNL/qRRHLI2JhRCzs6+vL8Na1dXUlh+srh8zM9ssSBFMi4ieAIuLBiLgCOC3D6waAWWXLM4EtNbb5UUQ8lc57cCtwXIZ9j4lbBGZm1bIEwW5JXcD9ki6T9FYgS6fuKmCepLnpFJfnUt3p/H3glZJ6JE0FXkaO02A6CMzMqmW5dOZDwFSSuYqvImkNXDjSiyJiUNJlwM0kl49eGxFrJS1On18WEfdK+hGwhuSu5Wsi4p4xHUkGDgIzs2pZrhpalT58Enj3aHYeESuBlRXrllUsfxb47Gj2O1YOAjOzalnGGppPMsron5RvHxFZ+gkOKu4sNjOrluXU0LeBZcCXgbb+U9otAjOzalmCYDAiluZeyThwEJiZVasbBJIOSx/+QNIlwE0MH2vokZxrazoHgZlZtUYtgjtIbgAr3RhWPhtZAEfnVVReHARmZtXqBkFEzB3PQsaDO4vNzKrVvaFM0n+R9I4a6/9K0vn5lpUPtwjMzKo1urP4b4Dv1Vh/Y/pc23EQmJlVaxQE3RHxROXKiHicNp2xzEFgZlatURBMkPScypWSDgEm5ldSfhwEZmbVGgXBV4DvSJpTWpE+viF9ru2UgsCdxWZm+zW6auh/SHoSuEXSc0kuGX0K+FS73mBWumrILQIzs/0a3lmcDhC3LA0C1eozaCc+NWRmVi3TDO4R8WTehYwHB4GZWbUsE9N0DAeBmVk1B4GZWcGNGASSpkr6uKQvp8vzJL0p/9Kaz0NMmJlVy9Ii+CrJqKMnp8sDwH/LraIcuUVgZlYtSxA8PyI+A+wFiIhd7B+RtK04CMzMqmUJgmckTSG5jwBJz6dsXoJ24iAwM6uW5fLRK4AfAbMkfRM4BXhXjjXlxkFgZlZtxCCIiB9LugM4ieSU0AcjYmfuleXAncVmZtVGDAJJK4DrgRUR8VT+JeXHLQIzs2pZ+gg+B7wSWCfp25LOljQ557py0d3dzVHAa666CrZubXU5ZmYHhRGDICJuiYhLSOYoXg68Hdied2F56O7u5uPAkffdB1de2epyzMwOCpnuLE6vGvrPwGLgBODreRaViylTmDN3LpcAioClS0GCKVNaXZmZWUtlubP4RuBe4DRgCcl9Be/Pu7Cm27iRPWefzbOdHFOnwgUXwKZNrazKzKzlslw++lXg/Iho7x7W6dOZcNhh9AB7e3qYsHs39PbCUUe1ujIzs5aqGwSSTouInwJTgUXS8JuJI6I/59qarmvHDr7U3c2T553H3xxyCDz8cKtLMjNruUYtglOBnwJvrvFcAG0XBPT3c8X06bx58mRYsqTV1ZiZHRQaTVX5j+nDKyNi2Il0SXNzrSpHvb29PP74460uw8zsoJHlqqHv1lj3nSw7l3SGpPWSNki6vMF2J0gaknR2lv0eiGnTpjkIzMzKNOojeCGwAJgm6ayyp3qBEW8ok9RNcpXR60iGrl4laUVErKux3aeBm0df/ui5RWBmNlyjPoIXAG8CDmV4P8ETwF9l2PeJwIaI2Agg6QZgEbCuYrv3k7Q6TshW8oHp7e1l+/a2vB/OzCwXjfoIvg98X9LJEfHLMex7BrC5bHkAeFn5BpJmAG8luUdh3ILALQIzs/2y3EfwG0mXkpwmevaUUES8Z4TX1Zq8JiqWvwB8NCKGKi9PHbYj6SLgIoDZs2dnKLk+B4GZ2XBZOouvA44CXg/cAswkOT00kgFgVtnyTGBLxTYLgRskPQCcDVwt6S2VO4qI5RGxMCIW9vX1ZXjr+kpBEFGZSWZmxZQlCI6JiI8DT0XE14E3An+W4XWrgHmS5kqaCJwLrCjfICLmRsSciJhDciXSJRHxvdEcwGj19vYyNDTErl278nwbM7O2kSUI9qa//5+kPwWmAXNGelFEDAKXkVwNdC/wrYhYK2mxpMVjrPeA9fb2Avj0kJlZKksfwXJJzwM+TvIX/XOBT2TZeUSsBFZWrFtWZ9t3ZdnngSoPgqM8zpCZWaapKq9JH95CMidBW3OLwMxsuEY3lP11oxdGxOebX07+SkHw2GOPtbgSM7ODQ6MWwSHjVsU4covAzGy4RjeU/dN4FjJeHARmZsNlmaFsvqSfSLonXX6xpH/Iv7R8OAjMzIbLcvnol4GPkV5GGhFrSO4JaEuHHHIIRwH/6fOfh61bW12OmVnLZQmCqRHxq4p1g3kUMx4mTZrEFV1dzHrgAbjyylaXY2bWclmCYKek55OOE5TOGdCeczxOmQISF+/blxz40qUgJevNzAoqSxBcCnwJeKGk3wMfAlp2Z/AB2bgRzj+fXaUB7qZOhQsugE2bGr/OzKyDZbmhbCPwWknPIQmOXcA5wIM519Z806dDby+TItgjMWn3bujtBd9hbGYFVrdFIKlX0sckfVHS64CngQuBDcDbx6vAptu2jVte9CLOOPRQWLzYHcZmVniNTg1dRzJL2d0kM5L9GHgb8JaIWDQOteWjv5/bzjuPnz36KLs/9zno7291RWZmLdXo1NDREfFnAJKuAXYCsyMiy1wEB7XS5DYDAwMcc8wxLa7GzKy1GrUISsNPExFDwKZOCAGAWbOS+XI2b948wpZmZp2vUYvgOEml228FTEmXBURE9OZeXU4cBGZm+zUaa6h7PAsZTzNnzgTgoYceanElZmatl+U+go4zZcoUFhx2GG9fssRXDZlZ4RUyCAA+0dXFMVu3epgJMyu84gVBOszE23fu9DATZmYUMQjSYSae6Um6R2LKFA8zYWaFVrwgSIeZmDA0xC4ADzNhZgVXvCAA2LaNR885h5OA9aed5g5jMyu0EQed60j9/fQODvJYfz8T1q+HVataXZGZWcsUs0UA9PT08NneXuYODPjKITMrtGIGQXrl0Nt85ZCZWUGDIL1yaO+ECQDsmzzZVw6ZWWEVMwjSK4d6BgfZBWjPHl85ZGaFVcwgANi2DRYv5oxp07jt6KPhW9/y1UNmVkjFDYL+fnT11fS99rU8sG0b8eij7jQ2s0JSRLS6hlFZuHBhrF69ujk7mzIluaGs0uTJsGtXc97DzOwgIOmOiFhY67nitggANm7k8Te/madKy1OnutPYzAon1yCQdIak9ZI2SLq8xvMXSFqT/vxC0nF51lNl+nR6Z8xgCrAH4OmnoafHncZmVii5BYGkbmAJcCZwLHCepGMrNtsEnBoRLwauApbnVU9d27bx65e9jO8BAXDrreNegplZK+U5xMSJwIaI2Agg6QZgEbCutEFE/KJs+9uBmTnWU9sPf8jC3bt59sTZpk3JzWXuJzCzgsjz1NAMoHxS4IF0XT3vBX6YYz21pTeX7e5K/ilCgrPOcj+BmRVGni0C1VhX8xIlSX9BEgSvqPP8RcBFALNnz25WfYn05rJJEQwC3RGwfr37CcysMPJsEQwAs8qWZwJbKjeS9GLgGmBRRPyh1o4iYnlELIyIhX19fc2vdPlyFEEPaXqtXeuxh8ysMPIMglXAPElzJU0EzgVWlG8gaTbQD7wjIu7LsZbGBgaGjT0UAPPm+fSQmRVCbqeGImJQ0mXAzUA3cG1ErJW0OH1+GfAJ4I+AqyUBDNa74SFX06fDjTcyYWgISFsF99+frHensZl1uFwnpomIlcDKinXLyh7/JfCXedaQ2emnw4YNDD7wAD179xKA5s3z5aRm1vGKOUNZLStXQk8PPbVaBZMm1R6KwsysAxR7iIlKp58O8+axb9IkAPaR9hcceqhHJjWzjuUgKLdyJbzmNXTt2QMk/ziCZMjqUn+BmVmHcRBU2rYNLrwQumr80+zZ4zAws47jPoJK/f3J7337iOuuq74rbs+eJCS2bPFNZ2bWEdwiqOfJJ9H8+bVvhY5IThW538DMOoCDoJ7+fliw4NkwqBkI7jcwsw7gIGikFAYLFgB1wsD9BmbW5hwEI+nvh/nz0SWXoDe+sX4YTJoEp57q00Vm1nYcBFn098OSJTBxYv1+g2eeSe5CPu44OPlkB4KZtQ0HwWiU9RvUtX073H570n9w111uJZjZQc9BMFppGJCGQc3WQcnxx7uVYGYHPQfBWJTCYMEC0lFT619ZBMNbCSef7JaCmR1UHARjlXYi8773wWmnoec9DzFCIEASCMcfD//xH0lL4aUvdTiYWUv5zuIDUboLGZJ5ju+8M2khbNwI7A+EWnN2EpG0FLZvT5YvuADWrUvCYeZMmDgRbrrJdy+bWe4U0fDv14POwoULY/Xq1a0uo76zzkpOAf32t/Cb38CjjwJJKNQMhEamT4cf/hAuvhj27k3WOSDMbAwk3VFv4i+3CJqtRisBCaWtBBihpVDu4YeT00iVPvpRWL9+fziAA8LMxsxBkKdSKJx1VnIq6IQT4Oc/R9u3D/sSL2+TZWo1fOMbtddXBsTEibBs2f4WhcPCzGrwqaFWKLUUnnkmGZ7i97+HoaGqcBBjO6U07DULFsDatfufPOIIOPro4QEB+0PjAx+AG290WJh1mEanhhwEB4vycHj8cXjiiapNRt1yGK0FC5IO676+pMMaqlsV5escGmZtw0HQbso7nFetSr6AyyfKefrpYZs3CogxdVJXvrayVVFaN5rQuPhikHxqyqxFHASdpLzl8OijsHv3/tFPKwKipFZQHEhA1HuPhqFRWnfEEfsvj20UGr5KyqypHARFUBkQAPv2weAg9PTAhAk1TzdB9Q1wzWxV1BOQDO/dKDRK6l1GWxkalevdAjF7loPA9gdFeuUS27YlAVE65bRvX1WHdS1jCY1mBUnVZbe1QqNyfb3OccjWKnGLxDqEg8CyGalVMcrQgMbBkWdoNKpj2P6ztEpGutJqtAHjloq1gIPAmm80oTE4mHwR1unDqFQrPEYTGuMRJqW6MrVKaq0bbV9JvfUOGMvIQWCtV+veiXqhUVq3Z0/S8hiFei2Q0YRGXkFSSwDxohehe+8duaVSb33eAVNrW1863HYcBNaeGl1GWxkapaunxtACKVfr/4ZGYXIwB8ze+fOZcN99wCj7VbJsW37pcDMDJuu2bvmMmoPAiqdR53hlaNRrlTS40iqrev93jbWvpNUBU0sAz8ybx8T77392XcPgaUYYvfOdjYdTKcm7ZdRGp+kcBGZjkeVKq0atkgPsK2mkCAGTRfm/Q2UYQcZ7W0ZafzCdpjuAgHEQmB0sxtJXMo4BU26kb4aRQqfe+k4Lo5EEsPvoo5lcNgIxwOALXkDP+vXD1mUKrve9D66+etR1OAjMOl1eAVNr24yXDh+ILN9KeQRMWwXX5Mmwa1fmzVs2H4GkM4B/AbqBayLiUxXPK33+DcDTwLsi4td51mTWkcrnwcjbSKEz1oApW69G20LN1k+9L+Ba68e6bWVA1QqsWvONNDVgurth0SJYsqTGq8cmtyCQ1A0sAV4HDACrJK2IiHVlm50JzEt/XgYsTX+b2cFqPEOnliz3sDQhjGptqzGepmtmGDE0BEce2dSO6DxbBCcCGyJiI4CkG4BFQHkQLAK+Ecn5qdslHSppekQ8nGNdZtbOWh1EI8nrNN2RR8IppySXUm/d2tSS8wyCGcDmsuUBqv/ar7XNDGBYEEi6CLgIYPbs2U0v1MysaQ72oKqha+RNxqze6a/RbkNELI+IhRGxsK+vrynFmZlZIs8gGABmlS3PBLaMYRszM8tRnkGwCpgnaa6kicC5wIqKbVYA71TiJOAx9w+YmY2v3PoIImJQ0mXAzSSXj14bEWslLU6fXwasJLl0dAPJ5aPvzqseMzOrLdf7CCJiJcmXffm6ZWWPA7g0zxrMzKyxPE8NmZlZG2i7ISYk7QAeHOPLDwd2NrGcdlHE4/YxF4OPObs/iYial122XRAcCEmr64210cmKeNw+5mLwMTeHTw2ZmRWcg8DMrOCKFgTLW11AixTxuH3MxeBjboJC9RGYmVm1orUIzMysgoPAzKzgChMEks6QtF7SBkmXt7qevEh6QNLdku6UtDpdd5ikf5N0f/r7ea2u80BIulbSdkn3lK2re4ySPpZ+7uslvb41VR+YOsd8haTfp5/1nZLeUPZcJxzzLEn/LuleSWslfTBd37GfdYNjzvezjoiO/yEZ6+h3wNHAROAu4NhW15XTsT4AHF6x7jPA5enjy4FPt7rOAzzGVwEvAe4Z6RiBY9PPexIwN/3voLvVx9CkY74C+Nsa23bKMU8HXpI+PgS4Lz22jv2sGxxzrp91UVoEz86WFhHPAKXZ0opiEfD19PHXgbe0rpQDFxG3Ao9UrK53jIuAGyJiT0RsIhng8MTxqLOZ6hxzPZ1yzA9HOod5RDwB3EsycVXHftYNjrmephxzUYKg3kxonSiAH0u6I53ZDeDISIf3Tn8f0bLq8lPvGDv9s79M0pr01FHpFEnHHbOkOcCfA/+XgnzWFccMOX7WRQmCTDOhdYhTIuIlwJnApZJe1eqCWqyTP/ulwPOB40mmd/1cur6jjlnSc4HvAh+KiMcbbVpjXVsed41jzvWzLkoQFGYmtIjYkv7eDtxE0kzcJmk6QPp7e+sqzE29Y+zYzz4itkXEUETsA77M/lMCHXPMkiaQfCF+MyJKkwF39Gdd65jz/qyLEgRZZktre5KeI+mQ0mPgdOAekmO9MN3sQuD7rakwV/WOcQVwrqRJkuYC84BftaC+pit9GabeSvJZQ4ccsyQBXwHujYjPlz3VsZ91vWPO/bNudS/5OPbGv4GkB/53wN+3up6cjvFokisI7gLWlo4T+CPgJ8D96e/DWl3rAR7n9STN470kfxG9t9ExAn+ffu7rgTNbXX8Tj/k64G5gTfqFML3DjvkVJKc51gB3pj9v6OTPusEx5/pZe4gJM7OCK8qpITMzq8NBYGZWcA4CM7OCcxCYmRWcg8DMrOAcBNYWJD2Z/p4j6fwm7/vvKpZ/0aT9fi0dMXJSuny4pAeatO9XS/pfzdiXmYPA2s0cYFRBIKl7hE2GBUFEvHyUNTUyBLyniftrigz/JlYgDgJrN58CXpmOyf5hSd2SPitpVTog18Xw7F/M/y7pf5LciIOk76WD8a0tDcgn6VPAlHR/30zXlVofSvd9j5I5Hs4p2/fPJH1H0m8lfTO9I7SWLwAfltRTvrLyL3pJX5T0rvTxA5I+KemXklZLeomkmyX9TtList30SrpJ0jpJyyR1pa8/PX3tryV9Ox23prTfT0i6DXjbAXwG1mF6Rt7E7KByOcm47G8CSL/QH4uIE9JTMD+X9ON02xOBP41keF6A90TEI5KmAKskfTciLpd0WUQcX+O9ziIZ5Os44PD0Nbemz/05sIBkXJefA6cAt9XYx0Pp+ncAPxjFcW6OiJMl/TPwtXT/k0nuGF9WdnzHAg8CPwLOkvQz4B+A10bEU5I+Cvw1cGX6mt0R8YpR1GEF4CCwdnc68GJJZ6fL00jGW3kG+FVZCAB8QNJb08ez0u3+0GDfrwCuj4ghkoHObgFOAB5P9z0AIOlOklNWtYIA4JMkwwL871EcV2ksrLuB50YyNv0TknZLOjR97lcRsTGt4fq03t0k4fDztJEyEfhl2X5vHEUNVhAOAmt3At4fETcPWym9GniqYvm1wMkR8XT6l/PkDPuuZ0/Z4yEa/L8UERvSsHh72epBhp+arayltP99Fe+1r+y9KseHibTmf4uI8+qU81Sd9VZg7iOwdvMEyRR+JTcD70uH7kXS/HTk1UrTgEfTEHghcFLZc3tLr69wK3BO2g/RRzJd5FhHs/zvwN+WLT8IHJuOGjkNeM0Y9nliOqJuF3AOSYvkduAUSccASJoqaf4Ya7aCcBBYu1kDDEq6S9KHgWuAdcCvlUzs/iVq/3X+I6BH0hrgKpIvzJLlwJpSZ3GZm9L3uwv4KfCRiNg6lqIjYi3w67LlzcC30v1/E/jNGHb7S5LO83uATcBNEbEDeBdwfXqstwMvHEvNVhwefdTMrODcIjAzKzgHgZlZwTkIzMwKzkFgZlZwDgIzs4JzEJiZFZyDwMys4P4/v/sE7SsQriEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] diff --git a/04_Elliptical_PDEs.ipynb b/04_Elliptical_PDEs.ipynb index 0dd1084..eb5340d 100644 --- a/04_Elliptical_PDEs.ipynb +++ b/04_Elliptical_PDEs.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -317,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -350,7 +350,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -388,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -444,11 +444,6 @@ " by[-1] = U1[ii,-1]\n", " U[ii,:] = np.linalg.solve(Ay,by)\n", " \n", - " ## . .Force boundary conditions\n", - "# U[: ,0] = U1[: ,0]\n", - "# U[0 ,:] = U1[0 ,:]\n", - "# U[:,ny-1] = U1[:,ny-1]\n", - "# U[nx-1,:] = U1[nx-1,:]\n", " \n", " ## . . Return the U solution array after a complete cycle of x and y updating!\n", " return U" @@ -463,9 +458,26 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "## . . Space axis parameters\n", "nt = 500 # number of iterations\n", @@ -577,7 +589,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -618,7 +630,7 @@ "\n", "**QUESTION:** Let's look at an example where we want to generate a solution to the 2D Poisson's equation for steady-state heat flow where there are now **heat sinks and sources** within the solution domain. Here, we want to estimate the temperature (i.e., where u = T(x,y)) due to the distribution of the given heat sources and sinks (i.e., $F(x,y)$). The PDE governing this is the following:\n", "\n", - "$$\\nabla^2 T = F(x,y) \\tag{10}$$\n", + "$$\\nabla^2 T = -F(x,y) \\tag{10}$$\n", "\n", "where we will assume a rectilinear solution domain defined by $x,y\\in[0,1]$ and that we have the following boundary conditions:\n", "\n", @@ -654,9 +666,9 @@ " \\frac{\\partial^2 T}{\\partial y^2}\n", " &\\approx & \n", " \\frac{T_{i+1,j}-2T_{i,j}+T_{i-1,j}}{\\Delta x^2} + \n", - " \\frac{T_{i,j+1}-2T_{i,j}+T_{i,j-1}}{\\Delta y^2} = F_{i,j}\\\\\n", + " \\frac{T_{i,j+1}-2T_{i,j}+T_{i,j-1}}{\\Delta y^2} = -F_{i,j}\\\\\n", " &=& \n", - " \\frac{T_{i+1,j}+T_{i-1,j}-4T_{i,j}+T_{i,j+1}+T_{i,j-1}}{ h^2}= F_{i,j}\n", + " \\frac{T_{i+1,j}+T_{i-1,j}-4T_{i,j}+T_{i,j+1}+T_{i,j-1}}{ h^2}= -F_{i,j}\n", " \\end{eqnarray}\n", "\\tag{13}$$\n", " \n", @@ -664,18 +676,18 @@ "\n", "**STEP 1:**\n", "\n", - "$$T^{(m+1)}_{i+1,j}-4T^{(m+1)}_{i,j}+T^{(m+1)}_{i-1,j}= h^2 F_{i,j}-T^{(m )}_{i,j+1}-T^{(m )}_{i,j-1} \\tag{14a}$$\n", + "$$T^{(m+1)}_{i+1,j}-4T^{(m+1)}_{i,j}+T^{(m+1)}_{i-1,j}= -h^2 F_{i,j}-T^{(m )}_{i,j+1}-T^{(m )}_{i,j-1} \\tag{14a}$$\n", "\n", "**STEP 2:**\n", "\n", - "$$T^{(m+2)}_{i,j+1}-4T^{(m+2)}_{i,j}+T^{(m+2)}_{i,j-1}= h^2 F_{i,j}-T^{(m+1)}_{i+1,j}-T^{(m+1)}_{i-1,j} \\tag{14b}$$\n", + "$$T^{(m+2)}_{i,j+1}-4T^{(m+2)}_{i,j}+T^{(m+2)}_{i,j-1}= -h^2 F_{i,j}-T^{(m+1)}_{i+1,j}-T^{(m+1)}_{i-1,j} \\tag{14b}$$\n", "\n", "Let's first adapt what we had above to include the forcing term $F(x,y)$." ] }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -716,7 +728,7 @@ " ## . . STEP 1 (solve in the x direction and loop over j - y)\n", " ## . . Note that we're writing the results to temporary array U1\n", " for jj in range(1,ny-1):\n", - " bx = h*h*F[:,jj]-U[:,jj-1]-U[:,jj+1] \n", + " bx = -h*h*F[:,jj]-U[:,jj-1]-U[:,jj+1] \n", " # apply boundary condition\n", " bx[0] = U[0,jj]\n", " bx[-1] = U[-1,jj]\n", @@ -726,7 +738,7 @@ " ## . . STEP 2 (solve in the x direction and loop over j - y)\n", " ## . . Note that we're now rewriting the updated result back to U \n", " for ii in range(1,nx-1):\n", - " by = h*h*F[ii,:]-U1[ii-1,:]-U1[ii+1,:]\n", + " by = -h*h*F[ii,:]-U1[ii-1,:]-U1[ii+1,:]\n", " # apply boundary condition\n", " by[0] = U1[ii,0]\n", " by[-1] = U1[ii,-1]\n", @@ -744,26 +756,9 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "## . . Space axis parameters\n", "nt = 250 # number of iterations\n", @@ -781,7 +776,7 @@ "FF[ 75, 75]=+1.\n", "\n", "## . . Initialize solution\n", - "U0 = np.zeros((nx,ny))+FF # . . Note boundary conditions are set as well\n", + "U0 = np.zeros((nx,ny)) # . . Note boundary conditions are set as well\n", "\n", "# . . Plotting min/max\n", "vmin,vmax = 0,1\n", @@ -796,22 +791,53 @@ " value = ADI_Solution_Forcing(U0,h,FF)\n", " U0 = value\n", " conv[i] = np.linalg.norm(e[:,:,i]-U0) ## . . Let's examine the convergence\n", - "conv=conv/conv[0] ## . . Normalize\n", - "\n", + "conv=conv/conv[0] ## . . Normalize" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ "## . . Animate Solution and compute error\n", "k = 0\n", "kskip=5\n", "## . . Set up movie\n", - "fig3,ax3 = plt.subplots(1)\n", + "fig3,ax3 = plt.subplots()\n", "fig3.subplots_adjust(0.1,0.1,0.9,0.9)\n", "fig3.set_dpi(100)\n", "\n", + "x = e[:,:,k]\n", + "imax = ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", + "cbar_ax = fig3.add_axes([0.85,0.1,0.02,0.8])\n", + "# fig3.colorbar(imax,ax=cbar_ax)\n", + "\n", "def Poisson_animate(i):\n", " global k\n", " x = e[:,:,k]\n", - " ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", + " cbar_ax.cla()\n", + " imax = ax3.imshow(x,cmap='jet',extent=[xmin,xmax,ymin,ymax])\n", " ax3.set(xlabel='X(m)', ylabel='Y(m)')\n", " ax3.set_title('NUMERICAL Step %s'%k,fontsize=14)\n", + " fig3.colorbar(imax,cax=cbar_ax)\n", " k += kskip\n", "\n", "## . . Call the animator\n", @@ -837,12 +863,12 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/movies/Ex5_2.mp4 b/movies/Ex5_2.mp4 index eeaa679..ee30432 100644 Binary files a/movies/Ex5_2.mp4 and b/movies/Ex5_2.mp4 differ