{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Heat-equation in 1D and 2D with DDA\n", "\n", "The [heat equation](https://en.wikipedia.org/wiki/Heat_equation) is a partial differential equation (PDE). Being an elliptical equation with a Laplace operator, so second order in space, first order in time, it is one of the typical text-book introductions. It describes the fate of a given field $u=u(\\vec x, t)$, and is given by\n", "\n", "$$ \\frac{\\partial u}{\\partial t} = \\alpha \\nabla^2 u$$\n", "\n", "where $\\nabla^2$ is the Laplace operator $\\nabla^2 = \\sum_{i=1}^d \\partial^2 / \\partial^2 x_i$ in $d$ spatial dimensions and $\\alpha$ is a constant for driving the coupling/gain.\n", "\n", "The aim of this notebook is to demonstrate how to solve the heat-equation in one and two spatial dimensions with DDA or an analog computer, respectively. To do so, we use the [method of lines](https://en.wikipedia.org/wiki/Method_of_lines) to convert the PDE in a set of ordinary differential equations (ODEs), which itself are spatially discretized with [central finite differences](https://en.wikipedia.org/wiki/Finite_difference).\n", "\n", "This example follows the [Analog Paradigm Application Notes 24](http://analogparadigm.com/downloads/alpaca_24.pdf), where a circuit and further comments on symmetries can be found.\n", "\n", "For initial data, we will always model a singular peak $u_0(\\vec x) = \\delta(\\vec x_0)$ at some position $\\vec x_0$. Discretized, this translates to having all $u_i=0$ for all $i$ except one where $u_i=1$." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from numpy import *\n", "from dda import *\n", "from dda.computing_elements import *\n", "from dda.cpp_exporter import compile, run\n", "from matplotlib.pyplot import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "alpha = const(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1D Heat equation\n", "For the beginning, we solve the heat equation in one temporal and one spatial dimension.\n", "\n", "First, we define the symbols $u$ and $u0$ and the initial data:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "We have defined:\n", "u = [u0, u1, u2, u3, u4, u5, u6, u7, u8, u9]\n", "u0 = [ic_u0, ic_u1, ic_u2, ic_u3, ic_u4, ic_u5, ic_u6, ic_u7, ic_u8, ic_u9]\n", "state = State({'dt': const(0.01),\n", " 'ic_u0': const(0),\n", " 'ic_u1': const(0),\n", " 'ic_u2': const(0),\n", " 'ic_u3': const(0),\n", " 'ic_u4': const(0),\n", " 'ic_u5': const(1),\n", " 'ic_u6': const(0),\n", " 'ic_u7': const(0),\n", " 'ic_u8': const(0),\n", " 'ic_u9': const(0)})\n" ] } ], "source": [ "state = State() # start with a fresh state\n", "\n", "N = 10 # supporting points\n", "u = [ Symbol(f\"u{i}\") for i in range(N) ]\n", "\n", "# Initial conditions:\n", "u0 = [ Symbol(f\"ic_u{i}\") for i in range(N) ]\n", "\n", "for i in range(N):\n", " state[u0[i]] = const(0)\n", " \n", "state[ u0[5] ] = const(1) # our candle at the boundary :-D\n", "\n", "# Time step\n", "dt = Symbol(\"dt\")\n", "state[dt] = const(0.01)\n", "\n", "print(\"We have defined:\")\n", "print(f\"{u = }\")\n", "print(f\"{u0 = }\")\n", "print(f\"{state = }\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In 1D, we approximate the Laplace operator by the central finite difference $$\\nabla^2 u = u_{i-1} + u_{i+1} - 2u_i$$\n", "\n", "We implement [periodic boundary conditions](https://en.wikipedia.org/wiki/Periodic_boundary_conditions), so $u_N=u_0$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "for i in range(N):\n", " # compute i-1 and i+1 with proper boundary conditions:\n", " im1 = i-1 if i>0 else N-1\n", " ip1 = i+1 if i!=N-1 else 0\n", " helper = Symbol(f\"u_intermediate_{i}\")\n", " state[helper] = neg(mult(2,u[i]))\n", " state[ u[i] ] = int(mult(alpha,sum(u[im1], u[ip1], helper)), dt, u0[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's inspect our state built so far:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "State({'dt': const(0.01),\n", " 'ic_u0': const(0),\n", " 'ic_u1': const(0),\n", " 'ic_u2': const(0),\n", " 'ic_u3': const(0),\n", " 'ic_u4': const(0),\n", " 'ic_u5': const(1),\n", " 'ic_u6': const(0),\n", " 'ic_u7': const(0),\n", " 'ic_u8': const(0),\n", " 'ic_u9': const(0),\n", " 'u0': int(mult(const(4), sum(u9, u1, u_intermediate_0)), dt, ic_u0),\n", " 'u1': int(mult(const(4), sum(u0, u2, u_intermediate_1)), dt, ic_u1),\n", " 'u2': int(mult(const(4), sum(u1, u3, u_intermediate_2)), dt, ic_u2),\n", " 'u3': int(mult(const(4), sum(u2, u4, u_intermediate_3)), dt, ic_u3),\n", " 'u4': int(mult(const(4), sum(u3, u5, u_intermediate_4)), dt, ic_u4),\n", " 'u5': int(mult(const(4), sum(u4, u6, u_intermediate_5)), dt, ic_u5),\n", " 'u6': int(mult(const(4), sum(u5, u7, u_intermediate_6)), dt, ic_u6),\n", " 'u7': int(mult(const(4), sum(u6, u8, u_intermediate_7)), dt, ic_u7),\n", " 'u8': int(mult(const(4), sum(u7, u9, u_intermediate_8)), dt, ic_u8),\n", " 'u9': int(mult(const(4), sum(u8, u0, u_intermediate_9)), dt, ic_u9),\n", " 'u_intermediate_0': neg(mult(2, u0)),\n", " 'u_intermediate_1': neg(mult(2, u1)),\n", " 'u_intermediate_2': neg(mult(2, u2)),\n", " 'u_intermediate_3': neg(mult(2, u3)),\n", " 'u_intermediate_4': neg(mult(2, u4)),\n", " 'u_intermediate_5': neg(mult(2, u5)),\n", " 'u_intermediate_6': neg(mult(2, u6)),\n", " 'u_intermediate_7': neg(mult(2, u7)),\n", " 'u_intermediate_8': neg(mult(2, u8)),\n", " 'u_intermediate_9': neg(mult(2, u9))})" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "or as latex:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "\\begin{align}\n", "dt &= 0.01 \\\\\n", "ic_{u0} &= 0 \\\\\n", "ic_{u1} &= 0 \\\\\n", "ic_{u2} &= 0 \\\\\n", "ic_{u3} &= 0 \\\\\n", "ic_{u4} &= 0 \\\\\n", "ic_{u5} &= 1.0 \\\\\n", "ic_{u6} &= 0 \\\\\n", "ic_{u7} &= 0 \\\\\n", "ic_{u8} &= 0 \\\\\n", "ic_{u9} &= 0 \\\\\n", "u_{0} &= - \\int \\left(dt + ic_{u0} - 4 u_{1} - 4 u_{9} - 4 u_{intermediate 0}\\right)\\, dt \\\\\n", "u_{1} &= - \\int \\left(dt + ic_{u1} - 4 u_{0} - 4 u_{2} - 4 u_{intermediate 1}\\right)\\, dt \\\\\n", "u_{2} &= - \\int \\left(dt + ic_{u2} - 4 u_{1} - 4 u_{3} - 4 u_{intermediate 2}\\right)\\, dt \\\\\n", "u_{3} &= - \\int \\left(dt + ic_{u3} - 4 u_{2} - 4 u_{4} - 4 u_{intermediate 3}\\right)\\, dt \\\\\n", "u_{4} &= - \\int \\left(dt + ic_{u4} - 4 u_{3} - 4 u_{5} - 4 u_{intermediate 4}\\right)\\, dt \\\\\n", "u_{5} &= - \\int \\left(dt + ic_{u5} - 4 u_{4} - 4 u_{6} - 4 u_{intermediate 5}\\right)\\, dt \\\\\n", "u_{6} &= - \\int \\left(dt + ic_{u6} - 4 u_{5} - 4 u_{7} - 4 u_{intermediate 6}\\right)\\, dt \\\\\n", "u_{7} &= - \\int \\left(dt + ic_{u7} - 4 u_{6} - 4 u_{8} - 4 u_{intermediate 7}\\right)\\, dt \\\\\n", "u_{8} &= - \\int \\left(dt + ic_{u8} - 4 u_{7} - 4 u_{9} - 4 u_{intermediate 8}\\right)\\, dt \\\\\n", "u_{9} &= - \\int \\left(dt + ic_{u9} - 4 u_{0} - 4 u_{8} - 4 u_{intermediate 9}\\right)\\, dt \\\\\n", "u_{intermediate 0} &= - 2.0 u_{0} \\\\\n", "u_{intermediate 1} &= - 2.0 u_{1} \\\\\n", "u_{intermediate 2} &= - 2.0 u_{2} \\\\\n", "u_{intermediate 3} &= - 2.0 u_{3} \\\\\n", "u_{intermediate 4} &= - 2.0 u_{4} \\\\\n", "u_{intermediate 5} &= - 2.0 u_{5} \\\\\n", "u_{intermediate 6} &= - 2.0 u_{6} \\\\\n", "u_{intermediate 7} &= - 2.0 u_{7} \\\\\n", "u_{intermediate 8} &= - 2.0 u_{8} \\\\\n", "u_{intermediate 9} &= - 2.0 u_{9}\n", "\\end{align}" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from IPython.display import display, Markdown, Latex\n", "display(Latex(state.export(to=\"latex\")))" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "c_code = state.export(to=\"C\")\n", "compile(c_code, \"heateq.cc\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If you want, you can print the generated c_code or inspect it with a text editor." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running: ./a.out --max_iterations=400\n" ] } ], "source": [ "data = run(arguments={'max_iterations':400})" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Time evolution of the 1D heat equation supporting points')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rcParams[\"figure.figsize\"] = (20,10)\n", "for i in range(N):\n", " plot(data[f\"u{i}\"])\n", " \n", "xlabel(\"Evolution time (arbitrary indices)\")\n", "ylabel(\"Field values of the supporting points\")\n", "title(\"Time evolution of the 1D heat equation supporting points\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following, we reconstruct the higher-dimensional data and display it color encoded:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "heat = array([data[f\"u{i}\"] for i in range(N)])" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACNMAAAEXCAYAAACNypCKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAZiElEQVR4nO3dXaxlZ3kf8P9zzhl7/AEFGloVmxaQEK2LGqAjSkJFUxxVhiDoRasaiSqNVPkmbSBKFZHeoFTKXRQlF1FUyyFFCgWlDmlRhAIoCf24cTMYt2AGFErAdnCwEQrQ4Phrnl6cFxhct7PNnLX23u/5/aTRnL1mz/s+a6/1rLX2zF9rVXcHAAAAAAAAAABIDrZdAAAAAAAAAAAA7AphGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGI6WGPSqurrP5rolhgYAAAC+pbZdAOuyweGpdMWOKVsEOOUcBneIjQFbofXYQ19/4itf6e7nP3X5ImGas7kuf6duXmJoAABYj/8MYB+VG5CeJnXgOHWq6O/dofd2Rrle2y0HjlOniv7bHXpvZzgv7RDXa6eL70q7Q++dLpOc9z788L/94tMtd2QBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGDYK01TVLVX12ar6XFW9c+miAAAAAAAAAABgGy4bpqmqwyS/nOQNSW5K8taqumnpwgAAAAAAAAAAYG2b3Jnm1Uk+192f7+7Hkrw/yVuWLQsAAAAAAAAAANa3SZjmhiT3X/L6gbHsu1TVbVV1vqrOP55HT6o+AAAAAAAAAABYzSZhmnqaZf1/Lei+vbvPdfe5M7n6yisDAAAAAAAAAICVbRKmeSDJCy95fWOSLy1TDgAAAAAAAAAAbM8mYZo/SPLSqnpxVV2V5NYkH1y2LAAAAAAAAAAAWN/R5d7Q3U9U1b9I8uEkh0ne3d33Ll4ZAAAAAAAAAACs7LJhmiTp7g8l+dDCtQAAAAAAAAAAwFZt8pgnAAAAAAAAAAA4FYRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgONp2AQDABqq2XQGzKZnq06QOHEN2ht7bHfpip5Rrnd1x4Di1Efvs7rDP7hTH8x3iWud08T1jd+i908V573RxrOWkOWfsPF0PAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAcLTtAoATVLXtCvZH7X+WsA4m2d4TbItMsi1qlmPIwQT7lG1xqszTexOsxwznpLVMsb0nWIe16I3NzNAXk5jm3DoL2+N08R3gdNHfnCT7Ezw93zNgXs59O8+3GwAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAIbLhmmq6oVV9ftVdaGq7q2qt69RGAAAAAAAAAAArO1og/c8keSnuvvuqnpWko9X1Ue7+9ML1wYAAAAAAAAAAKu67J1puvvB7r57/PyNJBeS3LB0YQAAAAAAAAAAsLbLhmkuVVUvSvLKJHctUg0AAAAAAAAAAGzRJo95SpJU1fVJfjPJO7r760/z57cluS1JzubaEysQAAAAAAAAAADWstGdaarqTI6DNO/t7g883Xu6+/buPtfd587k6pOsEQAAAAAAAAAAVnHZME1VVZJfTXKhu39h+ZIAAAAAAAAAAGA7NrkzzWuT/NMkr6+qe8avNy5cFwAAAAAAAAAArO7ocm/o7v+WpFaoBQAAAAAAAAAAtmqTO9MAAAAAAAAAAMCpIEwDAAAAAAAAAACDMA0AAAAAAAAAAAzCNAAAAAAAAAAAMAjTAAAAAAAAAADAIEwDAAAAAAAAAACDMA0AAAAAAAAAAAxH2y5gp1UtPP7yWaY6WHgdjidZforDFXJfBwvPcXi47PhJaul9NlllPbLKfrvwHLNs7zXmWLr3khWO52t8TpNs71nmWFjPsr3XMMN6zLAOa1mjN2Zgn9odtgVsRa8xh/4GmEL1GmcNAIAtca1zRdyZBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgEGYBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgEGYBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgEGYBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgEGYBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgEGYBgAAAAAAAAAABmEaAAAAAAAAAAAYhGkAAAAAAAAAAGAQpgEAAAAAAAAAgOFoiUHr8DCHz/4LSwz9nTmuv37R8ZOkrz277Phnzyw6fpL01cvPcfHM8pmsXmGOi4fLztFHtej4SdIHK8yx/BSrxPy61liRhU2wCrCI3nYB+6HaB7WRWT6mSdajZliPSXpvim2xhotzfFBTbO8Z1mElU1wjTLAKa5lie6/h4rYL2CP2qY1McW6dhX12cz6qneH8fcpM8r1yBs7fp4xjLXFnGgAAAAAAAAAA+DZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBh4zBNVR1W1Seq6reXLAgAAAAAAAAAALblmdyZ5u1JLixVCAAAAAAAAAAAbNtGYZqqujHJjyS5Y9lyAAAAAAAAAABgeza9M80vJvnpJBf/X2+oqtuq6nxVnX+sHzmJ2gAAAAAAAAAAYFWXDdNU1ZuSPNTdH///va+7b+/uc9197qq65sQKBAAAAAAAAACAtWxyZ5rXJnlzVX0hyfuTvL6qfn3RqgAAAAAAAAAAYAsuG6bp7p/p7hu7+0VJbk3ye939tsUrAwAAAAAAAACAlW1yZxoAAAAAAAAAADgVjp7Jm7v7Y0k+tkglAAAAAAAAAACwZe5MAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMR0sM+tK/+Y186MP/eYmhv+2eRx9ddPwk+Z+P3rDo+J955AWLjp8k9z3yvMXn+PIjz1p8jq9+85rF5/jmn1+96PiP/fki7fZdLq4wRx6vxac4eHT5nN/BwutRTyw6fJLl1yFJDlZYjzU+q7q47PirfE5PrjDHwp9TstZ69MLjLzr8anNkkvVYeo5adnc6nmPhfTZJssp6rDDH0uuxxue0whzp5SdZZz2WHX6GdUiSWmF7z3IMWdws23sNExzP1zDLOWNpq3xOa1jjmnAFU2yPGdYhE50zljbJx2R7b2iGa86stNvapzayynnvcIU5ljbJ/jTHWmSiFdl/zt+7z51pAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGI6WGPQP731W3njT31ti6G+r669fdPwk6WvPLjv+2TOLjp8kffXyc9SZ5TNZz1thjuccLjtHH9Wi4ydJrxCP6+rlJzl4cvEpupbfHoubYBVgESscpmZQ7YPayCwf0yTrscZlyOIm6b0ptsUaLs7xQU2xvWdYh5VMcY0wwSqsZYrtvYaL2y5gj9inNjLFuXUW9tnN+ah2hvP3KTPJ98oZOH+fMo61xJ1pAAAAAAAAAADg24RpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAIaNwjRV9ZyqurOqPlNVF6rqB5YuDAAAAAAAAAAA1na04ft+KcnvdPc/qqqrkly7YE0AAAAAAAAAALAVlw3TVNWzk7wuyT9Lku5+LMljy5YFAAAAAAAAAADr2+QxTy9J8nCSX6uqT1TVHVV13cJ1AQAAAAAAAADA6jYJ0xwleVWSX+nuVyb5syTvfOqbquq2qjpfVecf60dOuEwAAAAAAAAAAFjeJmGaB5I80N13jdd35jhc8126+/buPtfd566qa06yRgAAAAAAAAAAWMVlwzTd/SdJ7q+ql41FNyf59KJVAQAAAAAAAADAFhxt+L5/meS9VXVVks8n+bHlSgIAAAAAAAAAgO3YKEzT3fckObdsKQAAAAAAAAAAsF2XfcwTAAAAAAAAAACcFsI0AAAAAAAAAAAwCNMAAAAAAAAAAMAgTAMAAAAAAAAAAIMwDQAAAAAAAAAADMI0AAAAAAAAAAAwCNMAAAAAAAAAAMBwtMSg/eSTefJPv7bE0N+x9PhJUrXw+Mtnmepg4XVIcrDGehyukPs6WHiOw8Nlx09SS++zySrrkRX228X7e5btvcYcS/dessLxfI3PaZLtPcscC+tZtvcaZliPGdZhLWv0xgzsU7vDtoBptf4GmEJ1b7sEAIDluNa5Iu5MAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwHC07QJ2WvfC4z+57PhJ+uLiU6yiH992BXuiatsV7I/a/yxhHUyyvSfYFplkW9Qsx5CDCfYp2+JUmaf3JliPGc5Ja5lie0+wDmvRG5uZoS8msca51dZ+BhxvTxffAU4X/c1Jsj/B0/M9A+bl3LfzfLsBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABgEKYBAAAAAAAAAIBBmAYAAAAAAAAAAAZhGgAAAAAAAAAAGIRpAAAAAAAAAABg2ChMU1U/WVX3VtWnqup9VXV26cIAAAAAAAAAAGBtlw3TVNUNSX4iybnufnmSwyS3Ll0YAAAAAAAAAACsbdPHPB0luaaqjpJcm+RLy5UEAAAAAAAAAADbcdkwTXf/cZKfT3JfkgeTfK27P7J0YQAAAAAAAAAAsLZNHvP03CRvSfLiJC9Icl1Vve1p3ndbVZ2vqvOP59GTrxQAAAAAAAAAABa2yWOefjjJH3X3w939eJIPJPnBp76pu2/v7nPdfe5Mrj7pOgEAAAAAAAAAYHGbhGnuS/Kaqrq2qirJzUkuLFsWAAAAAAAAAACs77Jhmu6+K8mdSe5O8snxd25fuC4AAAAAAAAAAFjd0SZv6u53JXnXwrUAAAAAAAAAAMBWbfKYJwAAAAAAAAAAOBWEaQAAAAAAAAAAYBCmAQAAAAAAAACAQZgGAAAAAAAAAAAGYRoAAAAAAAAAABiEaQAAAAAAAAAAYBCmAQAAAAAAAACA4WjbBQAnqHvbFeyPfnLbFVyxvrjtClhV1eJTOIKcMiVTfZrUwfLHEDak93aHvtgptcK1Dhs62P/j1CrXtfbZ3THBPjsTx/Md4lrndPE9Y3fovdPFee90cazlpDln7DxdDwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwCBMAwAAAAAAAAAAgzANAAAAAAAAAAAMwjQAAAAAAAAAADAI0wAAAAAAAAAAwFDdffKDVj2c5IvP4K98X5KvnHghwC7Q3zAv/Q3z0t8wL/0N89LfMC/9DfPS3zAv/Q3746919/OfunCRMM0zVVXnu/vctusATp7+hnnpb5iX/oZ56W+Yl/6GeelvmJf+hnnpb9h/HvMEAAAAAAAAAACDMA0AAAAAAAAAAAy7Eqa5fdsFAIvR3zAv/Q3z0t8wL/0N89LfMC/9DfPS3zAv/Q17rrp72zUAAAAAAAAAAMBO2JU70wAAAAAAAAAAwNZtNUxTVbdU1Wer6nNV9c5t1gJcuap6d1U9VFWfumTZ86rqo1X1h+P3526zRuCZq6oXVtXvV9WFqrq3qt4+lutv2HNVdbaq/ntV/Y/R3z87lutvmERVHVbVJ6rqt8dr/Q0TqKovVNUnq+qeqjo/lulvmEBVPaeq7qyqz4zv4T+gv2H/VdXLxnn7W7++XlXv0N8wh6r6yfFva5+qqveNf3PT37DnthamqarDJL+c5A1Jbkry1qq6aVv1ACfi3yW55SnL3pnkd7v7pUl+d7wG9ssTSX6qu/9Gktck+fFxztbfsP8eTfL67v7+JK9IcktVvSb6G2by9iQXLnmtv2Eef7+7X9Hd58Zr/Q1z+KUkv9Pdfz3J9+f4PK6/Yc9192fHefsVSf52km8m+a3ob9h7VXVDkp9Icq67X57kMMmt0d+w97Z5Z5pXJ/lcd3++ux9L8v4kb9liPcAV6u7/kuSrT1n8liTvGT+/J8k/XLMm4Mp194Pdfff4+Rs5/oe8G6K/Ye/1sf89Xp4Zvzr6G6ZQVTcm+ZEkd1yyWH/DvPQ37LmqenaS1yX51STp7se6+0+jv2E2Nyf5X939xehvmMVRkmuq6ijJtUm+FP0Ne2+bYZobktx/yesHxjJgLn+5ux9Mjv9DPslf2nI9wBWoqhcleWWSu6K/YQrjETD3JHkoyUe7W3/DPH4xyU8nuXjJMv0Nc+gkH6mqj1fVbWOZ/ob995IkDyf5tfGYxjuq6rrob5jNrUneN37W37DnuvuPk/x8kvuSPJjka939kehv2HvbDNPU0yzr1asAADZSVdcn+c0k7+jur2+7HuBkdPeT4zbTNyZ5dVW9fMslASegqt6U5KHu/vi2awEW8druflWOH5/+41X1um0XBJyIoySvSvIr3f3KJH8Wj4SAqVTVVUnenOQ/bLsW4GRU1XNzfBeaFyd5QZLrqupt260KOAnbDNM8kOSFl7y+Mce3vALm8uWq+itJMn5/aMv1AN+DqjqT4yDNe7v7A2Ox/oaJjNvHfyzJLdHfMIPXJnlzVX0hx49Vfn1V/Xr0N0yhu780fn8oyW/l+HHq+hv23wNJHhh3i0ySO3McrtHfMI83JLm7u788Xutv2H8/nOSPuvvh7n48yQeS/GD0N+y9bYZp/iDJS6vqxSOJe2uSD26xHmAZH0zyo+PnH03yn7ZYC/A9qKrK8fPaL3T3L1zyR/ob9lxVPb+qnjN+vibHX/4/E/0Ne6+7f6a7b+zuF+X4+/bvdffbor9h71XVdVX1rG/9nOQfJPlU9Dfsve7+kyT3V9XLxqKbk3w6+htm8tZ85xFPif6GGdyX5DVVde34t/Sbk1yI/oa9V93be7JSVb0xx89wP0zy7u7+ua0VA1yxqnpfkh9K8n1JvpzkXUn+Y5LfSPJXc3xB8Y+7+6tbKhH4HlTV303yX5N8MsnFsfhfJ7kr+hv2WlX9rSTvyfH1+EGS3+juf1NVfzH6G6ZRVT+U5F9195v0N+y/qnpJju9Gkxw/Eubfd/fP6W+YQ1W9IskdSa5K8vkkP5ZxrR79DXutqq5Ncn+Sl3T318Yy52+YQFX9bJJ/kuSJJJ9I8s+TXB/9DXttq2EaAAAAAAAAAADYJdt8zBMAAAAAAAAAAOwUYRoAAAAAAAAAABiEaQAAAAAAAAAAYBCmAQAAAAAAAACAQZgGAAAAAAAAAAAGYRoAAAAAAAAAABiEaQAAAAAAAAAAYBCmAQAAAAAAAACA4f8AmHw+8xaGM50AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rcParams[\"figure.figsize\"] = (40,20)\n", "imshow(heat[:,0:90])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What you can see in the above plot is on the x-axis again the evolution time and on the y-axis the physical coordinate. Of course the whole image is pretty discretized. You see the initial data (one cell has value 1, all others value 0) and the equilibration of energy amongst all cells." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2D Heat Equation\n", "\n", "We now solve the heat equation in two spatial and one temporal dimension, which is more similar to what is done in http://analogparadigm.com/downloads/alpaca_24.pdf" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[u_0_0, u_0_1, u_0_2, u_0_3, u_0_4, u_0_5, u_0_6, u_0_7, u_0_8,\n", " u_0_9],\n", " [u_1_0, u_1_1, u_1_2, u_1_3, u_1_4, u_1_5, u_1_6, u_1_7, u_1_8,\n", " u_1_9],\n", " [u_2_0, u_2_1, u_2_2, u_2_3, u_2_4, u_2_5, u_2_6, u_2_7, u_2_8,\n", " u_2_9],\n", " [u_3_0, u_3_1, u_3_2, u_3_3, u_3_4, u_3_5, u_3_6, u_3_7, u_3_8,\n", " u_3_9],\n", " [u_4_0, u_4_1, u_4_2, u_4_3, u_4_4, u_4_5, u_4_6, u_4_7, u_4_8,\n", " u_4_9],\n", " [u_5_0, u_5_1, u_5_2, u_5_3, u_5_4, u_5_5, u_5_6, u_5_7, u_5_8,\n", " u_5_9],\n", " [u_6_0, u_6_1, u_6_2, u_6_3, u_6_4, u_6_5, u_6_6, u_6_7, u_6_8,\n", " u_6_9],\n", " [u_7_0, u_7_1, u_7_2, u_7_3, u_7_4, u_7_5, u_7_6, u_7_7, u_7_8,\n", " u_7_9],\n", " [u_8_0, u_8_1, u_8_2, u_8_3, u_8_4, u_8_5, u_8_6, u_8_7, u_8_8,\n", " u_8_9],\n", " [u_9_0, u_9_1, u_9_2, u_9_3, u_9_4, u_9_5, u_9_6, u_9_7, u_9_8,\n", " u_9_9]], dtype=object)" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state = State() # restart with a clean state\n", "\n", "N = 10 # supporting points\n", "NN = (N, N) # shape in two dimensions\n", "\n", "u = array([ Symbol(\"u_%d_%d\"%(i,j)) for i,j in ndindex(NN) ]).reshape(NN)\n", "u" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[uinitial_0_0, uinitial_0_1, uinitial_0_2, uinitial_0_3,\n", " uinitial_0_4, uinitial_0_5, uinitial_0_6, uinitial_0_7,\n", " uinitial_0_8, uinitial_0_9],\n", " [uinitial_1_0, uinitial_1_1, uinitial_1_2, uinitial_1_3,\n", " uinitial_1_4, uinitial_1_5, uinitial_1_6, uinitial_1_7,\n", " uinitial_1_8, uinitial_1_9],\n", " [uinitial_2_0, uinitial_2_1, uinitial_2_2, uinitial_2_3,\n", " uinitial_2_4, uinitial_2_5, uinitial_2_6, uinitial_2_7,\n", " uinitial_2_8, uinitial_2_9],\n", " [uinitial_3_0, uinitial_3_1, uinitial_3_2, uinitial_3_3,\n", " uinitial_3_4, uinitial_3_5, uinitial_3_6, uinitial_3_7,\n", " uinitial_3_8, uinitial_3_9],\n", " [uinitial_4_0, uinitial_4_1, uinitial_4_2, uinitial_4_3,\n", " uinitial_4_4, uinitial_4_5, uinitial_4_6, uinitial_4_7,\n", " uinitial_4_8, uinitial_4_9],\n", " [uinitial_5_0, uinitial_5_1, uinitial_5_2, uinitial_5_3,\n", " uinitial_5_4, uinitial_5_5, uinitial_5_6, uinitial_5_7,\n", " uinitial_5_8, uinitial_5_9],\n", " [uinitial_6_0, uinitial_6_1, uinitial_6_2, uinitial_6_3,\n", " uinitial_6_4, uinitial_6_5, uinitial_6_6, uinitial_6_7,\n", " uinitial_6_8, uinitial_6_9],\n", " [uinitial_7_0, uinitial_7_1, uinitial_7_2, uinitial_7_3,\n", " uinitial_7_4, uinitial_7_5, uinitial_7_6, uinitial_7_7,\n", " uinitial_7_8, uinitial_7_9],\n", " [uinitial_8_0, uinitial_8_1, uinitial_8_2, uinitial_8_3,\n", " uinitial_8_4, uinitial_8_5, uinitial_8_6, uinitial_8_7,\n", " uinitial_8_8, uinitial_8_9],\n", " [uinitial_9_0, uinitial_9_1, uinitial_9_2, uinitial_9_3,\n", " uinitial_9_4, uinitial_9_5, uinitial_9_6, uinitial_9_7,\n", " uinitial_9_8, uinitial_9_9]], dtype=object)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Symbols for initial conditions:\n", "u0 = array([ Symbol(\"uinitial_%d_%d\"%(i,j)) for i,j in ndindex(NN) ]).reshape(NN)\n", "u0" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "State({'dt': const(0.01),\n", " 'uinitial_0_0': const(0),\n", " 'uinitial_0_1': const(0),\n", " 'uinitial_0_2': const(0),\n", " 'uinitial_0_3': const(0),\n", " 'uinitial_0_4': const(0),\n", " 'uinitial_0_5': const(0),\n", " 'uinitial_0_6': const(0),\n", " 'uinitial_0_7': const(0),\n", " 'uinitial_0_8': const(0),\n", " 'uinitial_0_9': const(0),\n", " 'uinitial_1_0': const(0),\n", " 'uinitial_1_1': const(0),\n", " 'uinitial_1_2': const(0),\n", " 'uinitial_1_3': const(0),\n", " 'uinitial_1_4': const(0),\n", " 'uinitial_1_5': const(0),\n", " 'uinitial_1_6': const(0),\n", " 'uinitial_1_7': const(0),\n", " 'uinitial_1_8': const(0),\n", " 'uinitial_1_9': const(0),\n", " 'uinitial_2_0': const(0),\n", " 'uinitial_2_1': const(0),\n", " 'uinitial_2_2': const(0),\n", " 'uinitial_2_3': const(0),\n", " 'uinitial_2_4': const(0),\n", " 'uinitial_2_5': const(0),\n", " 'uinitial_2_6': const(0),\n", " 'uinitial_2_7': const(0),\n", " 'uinitial_2_8': const(0),\n", " 'uinitial_2_9': const(0),\n", " 'uinitial_3_0': const(0),\n", " 'uinitial_3_1': const(0),\n", " 'uinitial_3_2': const(0),\n", " 'uinitial_3_3': const(0),\n", " 'uinitial_3_4': const(0),\n", " 'uinitial_3_5': const(0),\n", " 'uinitial_3_6': const(0),\n", " 'uinitial_3_7': const(0),\n", " 'uinitial_3_8': const(0),\n", " 'uinitial_3_9': const(0),\n", " 'uinitial_4_0': const(0),\n", " 'uinitial_4_1': const(0),\n", " 'uinitial_4_2': const(0),\n", " 'uinitial_4_3': const(0),\n", " 'uinitial_4_4': const(0),\n", " 'uinitial_4_5': const(0),\n", " 'uinitial_4_6': const(0),\n", " 'uinitial_4_7': const(0),\n", " 'uinitial_4_8': const(0),\n", " 'uinitial_4_9': const(0),\n", " 'uinitial_5_0': const(0),\n", " 'uinitial_5_1': const(0),\n", " 'uinitial_5_2': const(0),\n", " 'uinitial_5_3': const(0),\n", " 'uinitial_5_4': const(0),\n", " 'uinitial_5_5': const(1),\n", " 'uinitial_5_6': const(0),\n", " 'uinitial_5_7': const(0),\n", " 'uinitial_5_8': const(0),\n", " 'uinitial_5_9': const(0),\n", " 'uinitial_6_0': const(0),\n", " 'uinitial_6_1': const(0),\n", " 'uinitial_6_2': const(0),\n", " 'uinitial_6_3': const(0),\n", " 'uinitial_6_4': const(0),\n", " 'uinitial_6_5': const(0),\n", " 'uinitial_6_6': const(0),\n", " 'uinitial_6_7': const(0),\n", " 'uinitial_6_8': const(0),\n", " 'uinitial_6_9': const(0),\n", " 'uinitial_7_0': const(0),\n", " 'uinitial_7_1': const(0),\n", " 'uinitial_7_2': const(0),\n", " 'uinitial_7_3': const(0),\n", " 'uinitial_7_4': const(0),\n", " 'uinitial_7_5': const(0),\n", " 'uinitial_7_6': const(0),\n", " 'uinitial_7_7': const(0),\n", " 'uinitial_7_8': const(0),\n", " 'uinitial_7_9': const(0),\n", " 'uinitial_8_0': const(0),\n", " 'uinitial_8_1': const(0),\n", " 'uinitial_8_2': const(0),\n", " 'uinitial_8_3': const(0),\n", " 'uinitial_8_4': const(0),\n", " 'uinitial_8_5': const(0),\n", " 'uinitial_8_6': const(0),\n", " 'uinitial_8_7': const(0),\n", " 'uinitial_8_8': const(0),\n", " 'uinitial_8_9': const(0),\n", " 'uinitial_9_0': const(0),\n", " 'uinitial_9_1': const(0),\n", " 'uinitial_9_2': const(0),\n", " 'uinitial_9_3': const(0),\n", " 'uinitial_9_4': const(0),\n", " 'uinitial_9_5': const(0),\n", " 'uinitial_9_6': const(0),\n", " 'uinitial_9_7': const(0),\n", " 'uinitial_9_8': const(0),\n", " 'uinitial_9_9': const(0)})" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# imprint the initial conditions:\n", "\n", "for i,j in ndindex(NN):\n", " state[u0[i,j]] = const(0)\n", " \n", "state[ u0[5,5] ] = const(1) # our candle in the very center\n", "\n", "# Time step\n", "dt = Symbol(\"dt\")\n", "state[dt] = const(0.01)\n", "\n", "# Let's see what we made\n", "state" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Laplace operator is discretized as the following:\n", "\n", "$$ \\dot u_{i,j} = \\alpha ( u_{i-1,j} + u_{i+1,j} + u_{i,j-1} + u_{i,j+1} - 4 u_{i,j} ) $$" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "301" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for i,j in ndindex(NN):\n", " # compute i-1 and i+1 with proper boundary conditions:\n", " im1 = i-1 if i>0 else N-1\n", " ip1 = i+1 if i!=N-1 else 0\n", " \n", " # compute j-1 and j+1 with proper boundary conditions:\n", " jm1 = j-1 if j>0 else N-1\n", " jp1 = j+1 if j!=N-1 else 0\n", " \n", " helper = Symbol(f\"u_intermediate_{i}_{j}\")\n", " state[helper] = neg(mult(4,u[i,j]))\n", " state[ u[i,j] ] = int(mult(alpha,sum(\n", " u[im1,j], u[ip1,j],\n", " u[i,jm1], u[i,jp1],\n", " helper)), dt, u0[i,j])\n", " \n", "len(state)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The state is already enormous. Realizing this circuit requires more then 300 wires or computing elements, respectively:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "State({'dt': const(0.01),\n", " 'u_0_0': int(mult(const(4), sum(u_9_0, u_1_0, u_0_9, u_0_1, u_intermediate_0_0)), dt, uinitial_0_0),\n", " 'u_0_1': int(mult(const(4), sum(u_9_1, u_1_1, u_0_0, u_0_2, u_intermediate_0_1)), dt, uinitial_0_1),\n", " 'u_0_2': int(mult(const(4), sum(u_9_2, u_1_2, u_0_1, u_0_3, u_intermediate_0_2)), dt, uinitial_0_2),\n", " 'u_0_3': int(mult(const(4), sum(u_9_3, u_1_3, u_0_2, u_0_4, u_intermediate_0_3)), dt, uinitial_0_3),\n", " 'u_0_4': int(mult(const(4), sum(u_9_4, u_1_4, u_0_3, u_0_5, u_intermediate_0_4)), dt, uinitial_0_4),\n", " 'u_0_5': int(mult(const(4), sum(u_9_5, u_1_5, u_0_4, u_0_6, u_intermediate_0_5)), dt, uinitial_0_5),\n", " 'u_0_6': int(mult(const(4), sum(u_9_6, u_1_6, u_0_5, u_0_7, u_intermediate_0_6)), dt, uinitial_0_6),\n", " 'u_0_7': int(mult(const(4), sum(u_9_7, u_1_7, u_0_6, u_0_8, u_intermediate_0_7)), dt, uinitial_0_7),\n", " 'u_0_8': int(mult(const(4), sum(u_9_8, u_1_8, u_0_7, u_0_9, u_intermediate_0_8)), dt, uinitial_0_8),\n", " 'u_0_9': int(mult(const(4), sum(u_9_9, u_1_9, u_0_8, u_0_0, u_intermediate_0_9)), dt, uinitial_0_9),\n", " 'u_1_0': int(mult(const(4), sum(u_0_0, u_2_0, u_1_9, u_1_1, u_intermediate_1_0)), dt, uinitial_1_0),\n", " 'u_1_1': int(mult(const(4), sum(u_0_1, u_2_1, u_1_0, u_1_2, u_intermediate_1_1)), dt, uinitial_1_1),\n", " 'u_1_2': int(mult(const(4), sum(u_0_2, u_2_2, u_1_1, u_1_3, u_intermediate_1_2)), dt, uinitial_1_2),\n", " 'u_1_3': int(mult(const(4), sum(u_0_3, u_2_3, u_1_2, u_1_4, u_intermediate_1_3)), dt, uinitial_1_3),\n", " 'u_1_4': int(mult(const(4), sum(u_0_4, u_2_4, u_1_3, u_1_5, u_intermediate_1_4)), dt, uinitial_1_4),\n", " 'u_1_5': int(mult(const(4), sum(u_0_5, u_2_5, u_1_4, u_1_6, u_intermediate_1_5)), dt, uinitial_1_5),\n", " 'u_1_6': int(mult(const(4), sum(u_0_6, u_2_6, u_1_5, u_1_7, u_intermediate_1_6)), dt, uinitial_1_6),\n", " 'u_1_7': int(mult(const(4), sum(u_0_7, u_2_7, u_1_6, u_1_8, u_intermediate_1_7)), dt, uinitial_1_7),\n", " 'u_1_8': int(mult(const(4), sum(u_0_8, u_2_8, u_1_7, u_1_9, u_intermediate_1_8)), dt, uinitial_1_8),\n", " 'u_1_9': int(mult(const(4), sum(u_0_9, u_2_9, u_1_8, u_1_0, u_intermediate_1_9)), dt, uinitial_1_9),\n", " 'u_2_0': int(mult(const(4), sum(u_1_0, u_3_0, u_2_9, u_2_1, u_intermediate_2_0)), dt, uinitial_2_0),\n", " 'u_2_1': int(mult(const(4), sum(u_1_1, u_3_1, u_2_0, u_2_2, u_intermediate_2_1)), dt, uinitial_2_1),\n", " 'u_2_2': int(mult(const(4), sum(u_1_2, u_3_2, u_2_1, u_2_3, u_intermediate_2_2)), dt, uinitial_2_2),\n", " 'u_2_3': int(mult(const(4), sum(u_1_3, u_3_3, u_2_2, u_2_4, u_intermediate_2_3)), dt, uinitial_2_3),\n", " 'u_2_4': int(mult(const(4), sum(u_1_4, u_3_4, u_2_3, u_2_5, u_intermediate_2_4)), dt, uinitial_2_4),\n", " 'u_2_5': int(mult(const(4), sum(u_1_5, u_3_5, u_2_4, u_2_6, u_intermediate_2_5)), dt, uinitial_2_5),\n", " 'u_2_6': int(mult(const(4), sum(u_1_6, u_3_6, u_2_5, u_2_7, u_intermediate_2_6)), dt, uinitial_2_6),\n", " 'u_2_7': int(mult(const(4), sum(u_1_7, u_3_7, u_2_6, u_2_8, u_intermediate_2_7)), dt, uinitial_2_7),\n", " 'u_2_8': int(mult(const(4), sum(u_1_8, u_3_8, u_2_7, u_2_9, u_intermediate_2_8)), dt, uinitial_2_8),\n", " 'u_2_9': int(mult(const(4), sum(u_1_9, u_3_9, u_2_8, u_2_0, u_intermediate_2_9)), dt, uinitial_2_9),\n", " 'u_3_0': int(mult(const(4), sum(u_2_0, u_4_0, u_3_9, u_3_1, u_intermediate_3_0)), dt, uinitial_3_0),\n", " 'u_3_1': int(mult(const(4), sum(u_2_1, u_4_1, u_3_0, u_3_2, u_intermediate_3_1)), dt, uinitial_3_1),\n", " 'u_3_2': int(mult(const(4), sum(u_2_2, u_4_2, u_3_1, u_3_3, u_intermediate_3_2)), dt, uinitial_3_2),\n", " 'u_3_3': int(mult(const(4), sum(u_2_3, u_4_3, u_3_2, u_3_4, u_intermediate_3_3)), dt, uinitial_3_3),\n", " 'u_3_4': int(mult(const(4), sum(u_2_4, u_4_4, u_3_3, u_3_5, u_intermediate_3_4)), dt, uinitial_3_4),\n", " 'u_3_5': int(mult(const(4), sum(u_2_5, u_4_5, u_3_4, u_3_6, u_intermediate_3_5)), dt, uinitial_3_5),\n", " 'u_3_6': int(mult(const(4), sum(u_2_6, u_4_6, u_3_5, u_3_7, u_intermediate_3_6)), dt, uinitial_3_6),\n", " 'u_3_7': int(mult(const(4), sum(u_2_7, u_4_7, u_3_6, u_3_8, u_intermediate_3_7)), dt, uinitial_3_7),\n", " 'u_3_8': int(mult(const(4), sum(u_2_8, u_4_8, u_3_7, u_3_9, u_intermediate_3_8)), dt, uinitial_3_8),\n", " 'u_3_9': int(mult(const(4), sum(u_2_9, u_4_9, u_3_8, u_3_0, u_intermediate_3_9)), dt, uinitial_3_9),\n", " 'u_4_0': int(mult(const(4), sum(u_3_0, u_5_0, u_4_9, u_4_1, u_intermediate_4_0)), dt, uinitial_4_0),\n", " 'u_4_1': int(mult(const(4), sum(u_3_1, u_5_1, u_4_0, u_4_2, u_intermediate_4_1)), dt, uinitial_4_1),\n", " 'u_4_2': int(mult(const(4), sum(u_3_2, u_5_2, u_4_1, u_4_3, u_intermediate_4_2)), dt, uinitial_4_2),\n", " 'u_4_3': int(mult(const(4), sum(u_3_3, u_5_3, u_4_2, u_4_4, u_intermediate_4_3)), dt, uinitial_4_3),\n", " 'u_4_4': int(mult(const(4), sum(u_3_4, u_5_4, u_4_3, u_4_5, u_intermediate_4_4)), dt, uinitial_4_4),\n", " 'u_4_5': int(mult(const(4), sum(u_3_5, u_5_5, u_4_4, u_4_6, u_intermediate_4_5)), dt, uinitial_4_5),\n", " 'u_4_6': int(mult(const(4), sum(u_3_6, u_5_6, u_4_5, u_4_7, u_intermediate_4_6)), dt, uinitial_4_6),\n", " 'u_4_7': int(mult(const(4), sum(u_3_7, u_5_7, u_4_6, u_4_8, u_intermediate_4_7)), dt, uinitial_4_7),\n", " 'u_4_8': int(mult(const(4), sum(u_3_8, u_5_8, u_4_7, u_4_9, u_intermediate_4_8)), dt, uinitial_4_8),\n", " 'u_4_9': int(mult(const(4), sum(u_3_9, u_5_9, u_4_8, u_4_0, u_intermediate_4_9)), dt, uinitial_4_9),\n", " 'u_5_0': int(mult(const(4), sum(u_4_0, u_6_0, u_5_9, u_5_1, u_intermediate_5_0)), dt, uinitial_5_0),\n", " 'u_5_1': int(mult(const(4), sum(u_4_1, u_6_1, u_5_0, u_5_2, u_intermediate_5_1)), dt, uinitial_5_1),\n", " 'u_5_2': int(mult(const(4), sum(u_4_2, u_6_2, u_5_1, u_5_3, u_intermediate_5_2)), dt, uinitial_5_2),\n", " 'u_5_3': int(mult(const(4), sum(u_4_3, u_6_3, u_5_2, u_5_4, u_intermediate_5_3)), dt, uinitial_5_3),\n", " 'u_5_4': int(mult(const(4), sum(u_4_4, u_6_4, u_5_3, u_5_5, u_intermediate_5_4)), dt, uinitial_5_4),\n", " 'u_5_5': int(mult(const(4), sum(u_4_5, u_6_5, u_5_4, u_5_6, u_intermediate_5_5)), dt, uinitial_5_5),\n", " 'u_5_6': int(mult(const(4), sum(u_4_6, u_6_6, u_5_5, u_5_7, u_intermediate_5_6)), dt, uinitial_5_6),\n", " 'u_5_7': int(mult(const(4), sum(u_4_7, u_6_7, u_5_6, u_5_8, u_intermediate_5_7)), dt, uinitial_5_7),\n", " 'u_5_8': int(mult(const(4), sum(u_4_8, u_6_8, u_5_7, u_5_9, u_intermediate_5_8)), dt, uinitial_5_8),\n", " 'u_5_9': int(mult(const(4), sum(u_4_9, u_6_9, u_5_8, u_5_0, u_intermediate_5_9)), dt, uinitial_5_9),\n", " 'u_6_0': int(mult(const(4), sum(u_5_0, u_7_0, u_6_9, u_6_1, u_intermediate_6_0)), dt, uinitial_6_0),\n", " 'u_6_1': int(mult(const(4), sum(u_5_1, u_7_1, u_6_0, u_6_2, u_intermediate_6_1)), dt, uinitial_6_1),\n", " 'u_6_2': int(mult(const(4), sum(u_5_2, u_7_2, u_6_1, u_6_3, u_intermediate_6_2)), dt, uinitial_6_2),\n", " 'u_6_3': int(mult(const(4), sum(u_5_3, u_7_3, u_6_2, u_6_4, u_intermediate_6_3)), dt, uinitial_6_3),\n", " 'u_6_4': int(mult(const(4), sum(u_5_4, u_7_4, u_6_3, u_6_5, u_intermediate_6_4)), dt, uinitial_6_4),\n", " 'u_6_5': int(mult(const(4), sum(u_5_5, u_7_5, u_6_4, u_6_6, u_intermediate_6_5)), dt, uinitial_6_5),\n", " 'u_6_6': int(mult(const(4), sum(u_5_6, u_7_6, u_6_5, u_6_7, u_intermediate_6_6)), dt, uinitial_6_6),\n", " 'u_6_7': int(mult(const(4), sum(u_5_7, u_7_7, u_6_6, u_6_8, u_intermediate_6_7)), dt, uinitial_6_7),\n", " 'u_6_8': int(mult(const(4), sum(u_5_8, u_7_8, u_6_7, u_6_9, u_intermediate_6_8)), dt, uinitial_6_8),\n", " 'u_6_9': int(mult(const(4), sum(u_5_9, u_7_9, u_6_8, u_6_0, u_intermediate_6_9)), dt, uinitial_6_9),\n", " 'u_7_0': int(mult(const(4), sum(u_6_0, u_8_0, u_7_9, u_7_1, u_intermediate_7_0)), dt, uinitial_7_0),\n", " 'u_7_1': int(mult(const(4), sum(u_6_1, u_8_1, u_7_0, u_7_2, u_intermediate_7_1)), dt, uinitial_7_1),\n", " 'u_7_2': int(mult(const(4), sum(u_6_2, u_8_2, u_7_1, u_7_3, u_intermediate_7_2)), dt, uinitial_7_2),\n", " 'u_7_3': int(mult(const(4), sum(u_6_3, u_8_3, u_7_2, u_7_4, u_intermediate_7_3)), dt, uinitial_7_3),\n", " 'u_7_4': int(mult(const(4), sum(u_6_4, u_8_4, u_7_3, u_7_5, u_intermediate_7_4)), dt, uinitial_7_4),\n", " 'u_7_5': int(mult(const(4), sum(u_6_5, u_8_5, u_7_4, u_7_6, u_intermediate_7_5)), dt, uinitial_7_5),\n", " 'u_7_6': int(mult(const(4), sum(u_6_6, u_8_6, u_7_5, u_7_7, u_intermediate_7_6)), dt, uinitial_7_6),\n", " 'u_7_7': int(mult(const(4), sum(u_6_7, u_8_7, u_7_6, u_7_8, u_intermediate_7_7)), dt, uinitial_7_7),\n", " 'u_7_8': int(mult(const(4), sum(u_6_8, u_8_8, u_7_7, u_7_9, u_intermediate_7_8)), dt, uinitial_7_8),\n", " 'u_7_9': int(mult(const(4), sum(u_6_9, u_8_9, u_7_8, u_7_0, u_intermediate_7_9)), dt, uinitial_7_9),\n", " 'u_8_0': int(mult(const(4), sum(u_7_0, u_9_0, u_8_9, u_8_1, u_intermediate_8_0)), dt, uinitial_8_0),\n", " 'u_8_1': int(mult(const(4), sum(u_7_1, u_9_1, u_8_0, u_8_2, u_intermediate_8_1)), dt, uinitial_8_1),\n", " 'u_8_2': int(mult(const(4), sum(u_7_2, u_9_2, u_8_1, u_8_3, u_intermediate_8_2)), dt, uinitial_8_2),\n", " 'u_8_3': int(mult(const(4), sum(u_7_3, u_9_3, u_8_2, u_8_4, u_intermediate_8_3)), dt, uinitial_8_3),\n", " 'u_8_4': int(mult(const(4), sum(u_7_4, u_9_4, u_8_3, u_8_5, u_intermediate_8_4)), dt, uinitial_8_4),\n", " 'u_8_5': int(mult(const(4), sum(u_7_5, u_9_5, u_8_4, u_8_6, u_intermediate_8_5)), dt, uinitial_8_5),\n", " 'u_8_6': int(mult(const(4), sum(u_7_6, u_9_6, u_8_5, u_8_7, u_intermediate_8_6)), dt, uinitial_8_6),\n", " 'u_8_7': int(mult(const(4), sum(u_7_7, u_9_7, u_8_6, u_8_8, u_intermediate_8_7)), dt, uinitial_8_7),\n", " 'u_8_8': int(mult(const(4), sum(u_7_8, u_9_8, u_8_7, u_8_9, u_intermediate_8_8)), dt, uinitial_8_8),\n", " 'u_8_9': int(mult(const(4), sum(u_7_9, u_9_9, u_8_8, u_8_0, u_intermediate_8_9)), dt, uinitial_8_9),\n", " 'u_9_0': int(mult(const(4), sum(u_8_0, u_0_0, u_9_9, u_9_1, u_intermediate_9_0)), dt, uinitial_9_0),\n", " 'u_9_1': int(mult(const(4), sum(u_8_1, u_0_1, u_9_0, u_9_2, u_intermediate_9_1)), dt, uinitial_9_1),\n", " 'u_9_2': int(mult(const(4), sum(u_8_2, u_0_2, u_9_1, u_9_3, u_intermediate_9_2)), dt, uinitial_9_2),\n", " 'u_9_3': int(mult(const(4), sum(u_8_3, u_0_3, u_9_2, u_9_4, u_intermediate_9_3)), dt, uinitial_9_3),\n", " 'u_9_4': int(mult(const(4), sum(u_8_4, u_0_4, u_9_3, u_9_5, u_intermediate_9_4)), dt, uinitial_9_4),\n", " 'u_9_5': int(mult(const(4), sum(u_8_5, u_0_5, u_9_4, u_9_6, u_intermediate_9_5)), dt, uinitial_9_5),\n", " 'u_9_6': int(mult(const(4), sum(u_8_6, u_0_6, u_9_5, u_9_7, u_intermediate_9_6)), dt, uinitial_9_6),\n", " 'u_9_7': int(mult(const(4), sum(u_8_7, u_0_7, u_9_6, u_9_8, u_intermediate_9_7)), dt, uinitial_9_7),\n", " 'u_9_8': int(mult(const(4), sum(u_8_8, u_0_8, u_9_7, u_9_9, u_intermediate_9_8)), dt, uinitial_9_8),\n", " 'u_9_9': int(mult(const(4), sum(u_8_9, u_0_9, u_9_8, u_9_0, u_intermediate_9_9)), dt, uinitial_9_9),\n", " 'u_intermediate_0_0': neg(mult(4, u_0_0)),\n", " 'u_intermediate_0_1': neg(mult(4, u_0_1)),\n", " 'u_intermediate_0_2': neg(mult(4, u_0_2)),\n", " 'u_intermediate_0_3': neg(mult(4, u_0_3)),\n", " 'u_intermediate_0_4': neg(mult(4, u_0_4)),\n", " 'u_intermediate_0_5': neg(mult(4, u_0_5)),\n", " 'u_intermediate_0_6': neg(mult(4, u_0_6)),\n", " 'u_intermediate_0_7': neg(mult(4, u_0_7)),\n", " 'u_intermediate_0_8': neg(mult(4, u_0_8)),\n", " 'u_intermediate_0_9': neg(mult(4, u_0_9)),\n", " 'u_intermediate_1_0': neg(mult(4, u_1_0)),\n", " 'u_intermediate_1_1': neg(mult(4, u_1_1)),\n", " 'u_intermediate_1_2': neg(mult(4, u_1_2)),\n", " 'u_intermediate_1_3': neg(mult(4, u_1_3)),\n", " 'u_intermediate_1_4': neg(mult(4, u_1_4)),\n", " 'u_intermediate_1_5': neg(mult(4, u_1_5)),\n", " 'u_intermediate_1_6': neg(mult(4, u_1_6)),\n", " 'u_intermediate_1_7': neg(mult(4, u_1_7)),\n", " 'u_intermediate_1_8': neg(mult(4, u_1_8)),\n", " 'u_intermediate_1_9': neg(mult(4, u_1_9)),\n", " 'u_intermediate_2_0': neg(mult(4, u_2_0)),\n", " 'u_intermediate_2_1': neg(mult(4, u_2_1)),\n", " 'u_intermediate_2_2': neg(mult(4, u_2_2)),\n", " 'u_intermediate_2_3': neg(mult(4, u_2_3)),\n", " 'u_intermediate_2_4': neg(mult(4, u_2_4)),\n", " 'u_intermediate_2_5': neg(mult(4, u_2_5)),\n", " 'u_intermediate_2_6': neg(mult(4, u_2_6)),\n", " 'u_intermediate_2_7': neg(mult(4, u_2_7)),\n", " 'u_intermediate_2_8': neg(mult(4, u_2_8)),\n", " 'u_intermediate_2_9': neg(mult(4, u_2_9)),\n", " 'u_intermediate_3_0': neg(mult(4, u_3_0)),\n", " 'u_intermediate_3_1': neg(mult(4, u_3_1)),\n", " 'u_intermediate_3_2': neg(mult(4, u_3_2)),\n", " 'u_intermediate_3_3': neg(mult(4, u_3_3)),\n", " 'u_intermediate_3_4': neg(mult(4, u_3_4)),\n", " 'u_intermediate_3_5': neg(mult(4, u_3_5)),\n", " 'u_intermediate_3_6': neg(mult(4, u_3_6)),\n", " 'u_intermediate_3_7': neg(mult(4, u_3_7)),\n", " 'u_intermediate_3_8': neg(mult(4, u_3_8)),\n", " 'u_intermediate_3_9': neg(mult(4, u_3_9)),\n", " 'u_intermediate_4_0': neg(mult(4, u_4_0)),\n", " 'u_intermediate_4_1': neg(mult(4, u_4_1)),\n", " 'u_intermediate_4_2': neg(mult(4, u_4_2)),\n", " 'u_intermediate_4_3': neg(mult(4, u_4_3)),\n", " 'u_intermediate_4_4': neg(mult(4, u_4_4)),\n", " 'u_intermediate_4_5': neg(mult(4, u_4_5)),\n", " 'u_intermediate_4_6': neg(mult(4, u_4_6)),\n", " 'u_intermediate_4_7': neg(mult(4, u_4_7)),\n", " 'u_intermediate_4_8': neg(mult(4, u_4_8)),\n", " 'u_intermediate_4_9': neg(mult(4, u_4_9)),\n", " 'u_intermediate_5_0': neg(mult(4, u_5_0)),\n", " 'u_intermediate_5_1': neg(mult(4, u_5_1)),\n", " 'u_intermediate_5_2': neg(mult(4, u_5_2)),\n", " 'u_intermediate_5_3': neg(mult(4, u_5_3)),\n", " 'u_intermediate_5_4': neg(mult(4, u_5_4)),\n", " 'u_intermediate_5_5': neg(mult(4, u_5_5)),\n", " 'u_intermediate_5_6': neg(mult(4, u_5_6)),\n", " 'u_intermediate_5_7': neg(mult(4, u_5_7)),\n", " 'u_intermediate_5_8': neg(mult(4, u_5_8)),\n", " 'u_intermediate_5_9': neg(mult(4, u_5_9)),\n", " 'u_intermediate_6_0': neg(mult(4, u_6_0)),\n", " 'u_intermediate_6_1': neg(mult(4, u_6_1)),\n", " 'u_intermediate_6_2': neg(mult(4, u_6_2)),\n", " 'u_intermediate_6_3': neg(mult(4, u_6_3)),\n", " 'u_intermediate_6_4': neg(mult(4, u_6_4)),\n", " 'u_intermediate_6_5': neg(mult(4, u_6_5)),\n", " 'u_intermediate_6_6': neg(mult(4, u_6_6)),\n", " 'u_intermediate_6_7': neg(mult(4, u_6_7)),\n", " 'u_intermediate_6_8': neg(mult(4, u_6_8)),\n", " 'u_intermediate_6_9': neg(mult(4, u_6_9)),\n", " 'u_intermediate_7_0': neg(mult(4, u_7_0)),\n", " 'u_intermediate_7_1': neg(mult(4, u_7_1)),\n", " 'u_intermediate_7_2': neg(mult(4, u_7_2)),\n", " 'u_intermediate_7_3': neg(mult(4, u_7_3)),\n", " 'u_intermediate_7_4': neg(mult(4, u_7_4)),\n", " 'u_intermediate_7_5': neg(mult(4, u_7_5)),\n", " 'u_intermediate_7_6': neg(mult(4, u_7_6)),\n", " 'u_intermediate_7_7': neg(mult(4, u_7_7)),\n", " 'u_intermediate_7_8': neg(mult(4, u_7_8)),\n", " 'u_intermediate_7_9': neg(mult(4, u_7_9)),\n", " 'u_intermediate_8_0': neg(mult(4, u_8_0)),\n", " 'u_intermediate_8_1': neg(mult(4, u_8_1)),\n", " 'u_intermediate_8_2': neg(mult(4, u_8_2)),\n", " 'u_intermediate_8_3': neg(mult(4, u_8_3)),\n", " 'u_intermediate_8_4': neg(mult(4, u_8_4)),\n", " 'u_intermediate_8_5': neg(mult(4, u_8_5)),\n", " 'u_intermediate_8_6': neg(mult(4, u_8_6)),\n", " 'u_intermediate_8_7': neg(mult(4, u_8_7)),\n", " 'u_intermediate_8_8': neg(mult(4, u_8_8)),\n", " 'u_intermediate_8_9': neg(mult(4, u_8_9)),\n", " 'u_intermediate_9_0': neg(mult(4, u_9_0)),\n", " 'u_intermediate_9_1': neg(mult(4, u_9_1)),\n", " 'u_intermediate_9_2': neg(mult(4, u_9_2)),\n", " 'u_intermediate_9_3': neg(mult(4, u_9_3)),\n", " 'u_intermediate_9_4': neg(mult(4, u_9_4)),\n", " 'u_intermediate_9_5': neg(mult(4, u_9_5)),\n", " 'u_intermediate_9_6': neg(mult(4, u_9_6)),\n", " 'u_intermediate_9_7': neg(mult(4, u_9_7)),\n", " 'u_intermediate_9_8': neg(mult(4, u_9_8)),\n", " 'u_intermediate_9_9': neg(mult(4, u_9_9)),\n", " 'uinitial_0_0': const(0),\n", " 'uinitial_0_1': const(0),\n", " 'uinitial_0_2': const(0),\n", " 'uinitial_0_3': const(0),\n", " 'uinitial_0_4': const(0),\n", " 'uinitial_0_5': const(0),\n", " 'uinitial_0_6': const(0),\n", " 'uinitial_0_7': const(0),\n", " 'uinitial_0_8': const(0),\n", " 'uinitial_0_9': const(0),\n", " 'uinitial_1_0': const(0),\n", " 'uinitial_1_1': const(0),\n", " 'uinitial_1_2': const(0),\n", " 'uinitial_1_3': const(0),\n", " 'uinitial_1_4': const(0),\n", " 'uinitial_1_5': const(0),\n", " 'uinitial_1_6': const(0),\n", " 'uinitial_1_7': const(0),\n", " 'uinitial_1_8': const(0),\n", " 'uinitial_1_9': const(0),\n", " 'uinitial_2_0': const(0),\n", " 'uinitial_2_1': const(0),\n", " 'uinitial_2_2': const(0),\n", " 'uinitial_2_3': const(0),\n", " 'uinitial_2_4': const(0),\n", " 'uinitial_2_5': const(0),\n", " 'uinitial_2_6': const(0),\n", " 'uinitial_2_7': const(0),\n", " 'uinitial_2_8': const(0),\n", " 'uinitial_2_9': const(0),\n", " 'uinitial_3_0': const(0),\n", " 'uinitial_3_1': const(0),\n", " 'uinitial_3_2': const(0),\n", " 'uinitial_3_3': const(0),\n", " 'uinitial_3_4': const(0),\n", " 'uinitial_3_5': const(0),\n", " 'uinitial_3_6': const(0),\n", " 'uinitial_3_7': const(0),\n", " 'uinitial_3_8': const(0),\n", " 'uinitial_3_9': const(0),\n", " 'uinitial_4_0': const(0),\n", " 'uinitial_4_1': const(0),\n", " 'uinitial_4_2': const(0),\n", " 'uinitial_4_3': const(0),\n", " 'uinitial_4_4': const(0),\n", " 'uinitial_4_5': const(0),\n", " 'uinitial_4_6': const(0),\n", " 'uinitial_4_7': const(0),\n", " 'uinitial_4_8': const(0),\n", " 'uinitial_4_9': const(0),\n", " 'uinitial_5_0': const(0),\n", " 'uinitial_5_1': const(0),\n", " 'uinitial_5_2': const(0),\n", " 'uinitial_5_3': const(0),\n", " 'uinitial_5_4': const(0),\n", " 'uinitial_5_5': const(1),\n", " 'uinitial_5_6': const(0),\n", " 'uinitial_5_7': const(0),\n", " 'uinitial_5_8': const(0),\n", " 'uinitial_5_9': const(0),\n", " 'uinitial_6_0': const(0),\n", " 'uinitial_6_1': const(0),\n", " 'uinitial_6_2': const(0),\n", " 'uinitial_6_3': const(0),\n", " 'uinitial_6_4': const(0),\n", " 'uinitial_6_5': const(0),\n", " 'uinitial_6_6': const(0),\n", " 'uinitial_6_7': const(0),\n", " 'uinitial_6_8': const(0),\n", " 'uinitial_6_9': const(0),\n", " 'uinitial_7_0': const(0),\n", " 'uinitial_7_1': const(0),\n", " 'uinitial_7_2': const(0),\n", " 'uinitial_7_3': const(0),\n", " 'uinitial_7_4': const(0),\n", " 'uinitial_7_5': const(0),\n", " 'uinitial_7_6': const(0),\n", " 'uinitial_7_7': const(0),\n", " 'uinitial_7_8': const(0),\n", " 'uinitial_7_9': const(0),\n", " 'uinitial_8_0': const(0),\n", " 'uinitial_8_1': const(0),\n", " 'uinitial_8_2': const(0),\n", " 'uinitial_8_3': const(0),\n", " 'uinitial_8_4': const(0),\n", " 'uinitial_8_5': const(0),\n", " 'uinitial_8_6': const(0),\n", " 'uinitial_8_7': const(0),\n", " 'uinitial_8_8': const(0),\n", " 'uinitial_8_9': const(0),\n", " 'uinitial_9_0': const(0),\n", " 'uinitial_9_1': const(0),\n", " 'uinitial_9_2': const(0),\n", " 'uinitial_9_3': const(0),\n", " 'uinitial_9_4': const(0),\n", " 'uinitial_9_5': const(0),\n", " 'uinitial_9_6': const(0),\n", " 'uinitial_9_7': const(0),\n", " 'uinitial_9_8': const(0),\n", " 'uinitial_9_9': const(0)})" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "state" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [], "source": [ "c_code = state.export(to=\"C\")\n", "compile(c_code, \"heateq2d.cpp\")" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running: ./a.out --max_iterations=400\n" ] } ], "source": [ "data = run(arguments={'max_iterations':400})" ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "for i,j in ndindex(NN):\n", " plot(data[f\"u_{i}_{j}\"])" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(10, 10, 400)" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "heat = array([data[f\"u_{i}_{j}\"] for i,j in ndindex(NN)]).reshape((N,N,len(data)))\n", "heat.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The physical recovery of the digital data is not so easy to inspect, since the two spatial dimensions would require to make a movie in order to display the time evolution. What we do instead here is to show the first snapshot and the last one.\n", "\n", "In the following two figures, the *x* and *y* axis correspond to their physical coordinates. These are *still images* for $t=0$ and $t=t_\\text{final}$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFoAAAReCAYAAADnr1SFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkhklEQVR4nO3dz+tl913H8ffH+aaJiYoB3ZgUW0HUKkhl0GqhYONCq9iNiwoVdJONP9oiSHXjPyCiCxFCtZuWdhG7ECn+QOvCTXCaFjQdhVK1TVsxQrSlYJLWj4sZJcbB7x18Xu/cL48HBObeOXN5bQ7zzXPOOXftvQcAAACA/7uvOvUAAAAAgKtCaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAIDIxTE+9FXr/v3APHSMjwYAAAA4uX+bL82L+4X1yvePEloemIfm+9Zjx/hoAAAAgJN7av/pHd936xAAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABA5KDQstb64bXW3661PrnWevexRwEAAACco0tDy1rr2sz81sz8yMy8bmZ+cq31umMPAwAAADg3h1zR8r0z88m996f23i/OzAdn5q3HnQUAAABwfg4JLY/MzGde9vrZ2+/9N2utx9daN9ZaN16aF6p9AAAAAGfjkNCy7vDe/h9v7P3E3vv63vv6fXP//30ZAAAAwJk5JLQ8OzOvftnrR2fmc8eZAwAAAHC+Dgktfzkz37rWeu1a61Uz87aZ+f3jzgIAAAA4PxeXHbD3/vJa6+dm5o9m5trM/O7e+5mjLwMAAAA4M5eGlpmZvfeHZ+bDR94CAAAAcNYOuXUIAAAAgAMILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEDk0tCy1nr1Wusja62ba61n1lrv+P8YBgAAAHBuLg445ssz84t776fXWl87Mx9da/3J3vsTR94GAAAAcFYuvaJl7/35vffTt3/9xZm5OTOPHHsYAAAAwLk55IqW/7LWes3MvH5mnrrD7z0+M4/PzDwwDxbbAAAAAM7KwQ/DXWt9zcz83sy8c+/9hVf+/t77ib339b339fvm/nIjAAAAwFk4KLSste6bW5Hl/XvvDx13EgAAAMB5OuRbh9bM/M7M3Nx7//rxJwEAAACcp0OuaHnjzPzUzLx5rfXx2/+95ci7AAAAAM7OpQ/D3Xv/xcys/4ctAAAAAGft4IfhAgAAAPC/E1oAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAAJGLUw8AAChce/jhU0/gLn3l+edPPQEAcq5oAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAACRg0PLWuvaWutja60/OOYgAAAAgHN1N1e0vGNmbh5rCAAAAMC5Oyi0rLUenZkfnZn3HHcOAAAAwPk69IqW35iZX5qZfz/eFAAAAIDzdmloWWv92Mz80977o5cc9/ha68Za68ZL80I2EAAAAOBcHHJFyxtn5sfXWn8/Mx+cmTevtd73yoP23k/sva/vva/fN/fHMwEAAADufZeGlr33L++9H917v2Zm3jYzf7b3fvvRlwEAAACcmbv51iEAAAAA/hcXd3Pw3vvPZ+bPj7IEAAAA4My5ogUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgcnHqAQBwL7r28MOnnsBd+vAzHzn1BO7SW77zB089gbv0leefP/UEgHueK1oAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAAJGLUw8AgHvRV55//tQTuEtv+c4fPPUE7pLzDICryBUtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACByUGhZa339WuvJtdbfrLVurrW+/9jDAAAAAM7NxYHH/ebM/OHe+yfWWq+amQePuAkAAADgLF0aWtZaXzczb5qZn56Z2Xu/ODMvHncWAAAAwPk55Nahb5mZ52bmvWutj6213rPWeuiVB621Hl9r3Vhr3XhpXsiHAgAAANzrDgktFzPzPTPz23vv18/Ml2bm3a88aO/9xN77+t77+n1zfzwTAAAA4N53SGh5dmae3Xs/dfv1k3MrvAAAAADwMpeGlr33P87MZ9Za33b7rcdm5hNHXQUAAABwhg791qGfn5n33/7GoU/NzM8cbxIAAADAeTootOy9Pz4z1487BQAAAOC8HfKMFgAAAAAOILQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAACRi1MPAAAofOX55089AQDAFS0AAAAAFaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABA5KDQstZ611rrmbXWX6+1PrDWeuDYwwAAAADOzaWhZa31yMz8wsxc33t/18xcm5m3HXsYAAAAwLk59Nahi5n56rXWxcw8ODOfO94kAAAAgPN0aWjZe392Zn5tZj49M5+fmX/de//xsYcBAAAAnJtDbh16eGbeOjOvnZlvmpmH1lpvv8Nxj6+1bqy1brw0L/RLAQAAAO5xh9w69EMz83d77+f23i/NzIdm5gdeedDe+4m99/W99/X75v56JwAAAMA975DQ8umZecNa68G11pqZx2bm5nFnAQAAAJyfQ57R8tTMPDkzT8/MX93+M08ceRcAAADA2bk45KC996/OzK8eeQsAAADAWTv0650BAAAAuITQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAEaEFAAAAICK0AAAAAESEFgAAAICI0AIAAAAQEVoAAAAAIkILAAAAQERoAQAAAIgILQAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiAgtAAAAABGhBQAAACAitAAAAABEhBYAAACAiNACAAAAEBFaAAAAACJCCwAAAEBEaAEAAACICC0AAAAAkbX37j90redm5h/yDz69b5iZfz71CLjCnGNwfM4zOC7nGByf84x7xTfvvb/xlW8eJbRcVWutG3vv66feAVeVcwyOz3kGx+Ucg+NznnGvc+sQAAAAQERoAQAAAIgILXfniVMPgCvOOQbH5zyD43KOwfE5z7ineUYLAAAAQMQVLQAAAAARoeUAa60fXmv97Vrrk2utd596D1w1a61Xr7U+sta6udZ6Zq31jlNvgqtorXVtrfWxtdYfnHoLXEVrra9faz251vqb23+nff+pN8FVstZ61+2fFf96rfWBtdYDp94EdyK0XGKtdW1mfmtmfmRmXjczP7nWet1pV8GV8+WZ+cW993fMzBtm5medZ3AU75iZm6ceAVfYb87MH+69v31mvnucb5BZaz0yM78wM9f33t81M9dm5m2nXQV3JrRc7ntn5pN770/tvV+cmQ/OzFtPvAmulL335/feT9/+9Rfn1g+mj5x2FVwta61HZ+ZHZ+Y9p94CV9Fa6+tm5k0z8zszM3vvF/fe/3LSUXD1XMzMV6+1LmbmwZn53In3wB0JLZd7ZGY+87LXz47/AYSjWWu9ZmZePzNPnXgKXDW/MTO/NDP/fuIdcFV9y8w8NzPvvX2L3nvWWg+dehRcFXvvz87Mr83Mp2fm8zPzr3vvPz7tKrgzoeVy6w7v+aomOIK11tfMzO/NzDv33l849R64KtZaPzYz/7T3/uipt8AVdjEz3zMzv733fv3MfGlmPNsPImuth+fWnQWvnZlvmpmH1lpvP+0quDOh5XLPzsyrX/b60XGJGuTWWvfNrcjy/r33h069B66YN87Mj6+1/n5u3QL75rXW+047Ca6cZ2fm2b33f16R+eTcCi9A44dm5u/23s/tvV+amQ/NzA+ceBPckdByub+cmW9da712rfWqufXApd8/8Sa4UtZaa27d035z7/3rp94DV83e+5f33o/uvV8zt/4e+7O9t38FhNDe+x9n5jNrrW+7/dZjM/OJE06Cq+bTM/OGtdaDt392fGw8cJp71MWpB9zr9t5fXmv93Mz80dx6svXv7r2fOfEsuGreODM/NTN/tdb6+O33fmXv/eHTTQKAu/bzM/P+2/8496mZ+ZkT74ErY+/91FrryZl5em59Y+XHZuaJ066CO1t7e9wIAAAAQMGtQwAAAAARoQUAAAAgIrQAAAAARIQWAAAAgIjQAgAAABARWgAAAAAiQgsAAABARGgBAAAAiPwHyisVks10X3YAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "rcParams[\"figure.figsize\"] = (40,20)\n", "imshow(heat[:,:,0])" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFoAAAReCAYAAADnr1SFAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAnVklEQVR4nO3dzYtld53H8e+363Z3OtXmiRkXJrZJQByDMCiN4wO6MC50FIVhFhEUxk024yOC6Gz8B0R0IULwYaPoIjogIuqACg4MwTYKmrQyIWonRjESjOk26e5K/WbRPZCJ5dQ9+DmevsXrBYGu0zeHz+Z03XrXuff2GKMAAAAA+MsdWnoAAAAAwEEhtAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACErOY46ZE+Oq6q7TlOzUx6a2vpCUw0rjqy9AQm2Dmma2+aXZfYxhkus43Tu0svYKpDF5ZewBSrJ11km6afcpFtkid3n6gLu0/1s4/PElququ36h759jlMzk61rr196AhPtvPjE0hOY4LHbrl56AhM98YKlFzDVzvZYegITrc79yXNTrnDP+eXSC5jihvv/uPQEJlqdPrP0BCb4r8f/fc/jfvcDAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAELJWaOnuN3T3z7r7ge7+0NyjAAAAADbRvqGlu7eq6pNV9caquq2q3tbdt809DAAAAGDTrHNHy8ur6oExxoNjjAtV9aWqeuu8swAAAAA2zzqh5caqeugZXz98+dj/0d13dvep7j51sc6n9gEAAABsjHVCS+9xbPzJgTHuGmOcHGOcPFxH//JlAAAAABtmndDycFU9/xlf31RVj8wzBwAAAGBzrRNavl9VL+zuW7r7SFXdUVVfnXcWAAAAwOZZ7feAMcZOd7+rqr5ZVVtV9dkxxn2zLwMAAADYMPuGlqqqMcbXq+rrM28BAAAA2GjrvHQIAAAAgDUILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAELKa46S9tVVb114/x6mZSV93zdITmOjiNUeWnsAEF4/30hOYaGd7d+kJTLS7/fTSE5hop7aWnsBEF4/7Pe0m8Xxx8xz2c9lmObv39zH/UgIAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQIjQAgAAABAitAAAAACECC0AAAAAIUILAAAAQMhqjpOOq47UzotPzHFqZnLxmiNLT2Cix2+Z5fJlJmdP7C49gYmOnji79AQmunb7yaUnMNHj544tPYGJztbxpScwwdZ5zxc3z3OXHsAEu7/b+xpzRwsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAIQILQAAAAAhQgsAAABAiNACAAAAECK0AAAAAITsG1q6+/nd/Z3uPt3d93X3e/8awwAAAAA2zWqNx+xU1QfGGPd293Oq6gfd/R9jjPtn3gYAAACwUfa9o2WM8esxxr2X//xEVZ2uqhvnHgYAAACwaSa9R0t331xVL62qe/b4uzu7+1R3n7q4cy40DwAAAGBzrB1auvt4VX25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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(heat[:,:,-1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to provide a final discussion, what is visible here is the dissipation of heat from a single maximum to the whole simulation domain.\n", "\n", "With this, we end the demonstration notebook about the heat equation in DDA.\n", "\n", "### About this notebook\n", "\n", "This notebook was written during a two hour phone call as an interactive demonstration how to do high-level programming with DDA. " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 4 }