From 644fc085510e67f814768502c712dbae5dc0f2bc Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 7 Aug 2023 07:45:59 +0100 Subject: [PATCH] Passed all pytests on chapters 2,3, and 4 --- .../notebooks/02_wave/wave1D_fd1.ipynb | 48 +++++++++---------- .../notebooks/03_diffu/diffu_rw.ipynb | 38 +++++++-------- .../notebooks/04_advec/advec.ipynb | 46 ++++++------------ 3 files changed, 56 insertions(+), 76 deletions(-) diff --git a/fdm-jupyter-book/notebooks/02_wave/wave1D_fd1.ipynb b/fdm-jupyter-book/notebooks/02_wave/wave1D_fd1.ipynb index dcd3f005..a174446b 100644 --- a/fdm-jupyter-book/notebooks/02_wave/wave1D_fd1.ipynb +++ b/fdm-jupyter-book/notebooks/02_wave/wave1D_fd1.ipynb @@ -627,7 +627,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -658,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -667,7 +667,7 @@ "# Initialise `u` for space and time order 2, using initialisation function I\n", "grid = Grid(shape=(Nx+1), extent=(L))\n", "u = TimeFunction(name='u', grid=grid, time_order=2, space_order=2)\n", - "u.data[:,:] = I(x[:])" + "u.data[:,:] = I(x[:]) # u(x,0) = I(x)" ] }, { @@ -679,7 +679,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -687,7 +687,7 @@ "output_type": "stream", "text": [ "LHS: u(t + dt, x)\n", - "RHS: 1.0*dt**2*(-2.0*u(t, x)/h_x**2 + u(t, x - h_x)/h_x**2 + u(t, x + h_x)/h_x**2 + 2.0*u(t, x)/dt**2 - 1.0*u(t - dt, x)/dt**2)\n" + "RHS: dt**2*(-(-2.0*u(t, x)/dt**2 + u(t - dt, x)/dt**2) - 2.0*u(t, x)/h_x**2 + u(t, x - h_x)/h_x**2 + u(t, x + h_x)/h_x**2)\n" ] } ], @@ -696,7 +696,7 @@ "\n", "# Set up wave equation and solve for forward stencil point in time\n", "pde = (1/c**2)*u.dt2-u.dx2\n", - "stencil = Eq(u.forward, solve(pde, u.forward))\n", + "stencil = Eq(u.forward, solve(pde.evaluate, u.forward))\n", "\n", "print(\"LHS: %s\" % stencil.lhs)\n", "print(\"RHS: %s\" % stencil.rhs)" @@ -713,11 +713,11 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ - "stencil_init = stencil.subs(u.backward, u.forward)" + "stencil_init = stencil.subs(u.backward, u.forward) # \\frac{\\partial}{\\partial t}u(x,0) = 0" ] }, { @@ -729,27 +729,25 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Data type float64 of runtime value `dt` does not match the Constant data type \n", - "Operator `Kernel` run in 0.01 s\n", - "Data type float64 of runtime value `dt` does not match the Constant data type \n", - "Operator `Kernel` run in 0.01 s\n" + "Operator `Kernel` ran in 0.01 s\n", + "Operator `Kernel` ran in 0.01 s\n" ] }, { "data": { "text/plain": [ "PerformanceSummary([(PerfKey(name='section0', rank=None),\n", - " PerfEntry(time=5.899999999999998e-05, gflopss=0.0, gpointss=0.0, oi=0.0, ops=0, itershapes=[]))])" + " PerfEntry(time=4.9999999999999996e-06, gflopss=0.0, gpointss=0.0, oi=0.0, ops=0, itershapes=[]))])" ] }, - "execution_count": 39, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -761,8 +759,8 @@ "t_s = grid.stepping_dim \n", "\n", "# Boundary conditions\n", - "bc = [Eq(u[t_s+1, 0], 0)]\n", - "bc += [Eq(u[t_s+1, Nx], 0)]\n", + "bc = [Eq(u[t_s+1, 0], 0)] # u(0,t) = 0\n", + "bc += [Eq(u[t_s+1, Nx], 0)] #u(L,t) = 0\n", "\n", "# Defining one Operator for initial timestep and one for the rest\n", "op_init = Operator([stencil_init]+bc)\n", @@ -781,19 +779,17 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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bRoSExMxZswYjBkzBikpKeZ93n33XSxfvhwrV67EoUOH4OLiguHDh6O8vLy5Dsusoce3d+9ePPTQQ9izZw/i4uIQFBSEYcOGITs7u8Z+I0aMwOXLl82PdevWNcfh3FZDjxGong315vrPnz9f4/vWfA6/++67GseWkpIClUqFcePG1dhPLuewpKQEkZGRWLFiRb32z8zMxKhRo3DvvfciKSkJs2bNwhNPPFEjLDTmPdFUGnp8+/btw/33349t27YhISEB9957Lx588EEkJibW2K9Lly41zt8ff/zRFOXXS0OP0SQjI6PGMfj6+pq/Z83n8H//+1+N48rKyoKXl9ctv4NyOYe//fYbnn76aRw8eBA7duxAVVUVhg0bhpKSklqfI4vPQoksonfv3tLTTz9t/tpgMEiBgYHSokWLbrv/+PHjpVGjRtXYFhMTIz355JOSJEmS0WiU/P39pf/+97/m7xcUFEgajUZat25dExxB3Rp6fH+m1+slNzc3ac2aNeZtU6ZMkUaPHm3pUhutocf4+eefSx4eHrW+nq2dw6VLl0pubm5ScXGxeZvczqEJAGnz5s117vPiiy9KXbp0qbFtwoQJ0vDhw81f3+3fWVOpz/HdTufOnaWFCxeav16wYIEUGRlpucIsqD7HuGfPHgmAdO3atVr3saVzuHnzZkmhUEjnzp0zb5PzOczNzZUASL/99lut+8jhs5AjQhZQWVmJhIQExMbGmrcplUrExsYiLi7uts+Ji4ursT8ADB8+3Lx/ZmYmtFptjX08PDwQExNT62s2lcYc35+VlpaiqqoKXl5eNbbv3bsXvr6+CAsLw1NPPYWrV69atPb6auwxFhcXo127dggKCsLo0aORmppq/p6tncNVq1Zh4sSJcHFxqbFdLuewoe70O2iJvzM5MRqNKCoquuV38NSpUwgMDERoaCgmT56MCxcuCKqw8aKiohAQEID7778f+/fvN2+3tXO4atUqxMbGol27djW2y/UcFhYWAsAt77mbyeGzkEHIAvLy8mAwGODn51dju5+f3y3Xqk20Wm2d+5v+25DXbCqNOb4/+9e//oXAwMAab+YRI0bgiy++wK5du/DOO+/gt99+wwMPPACDwWDR+uujMccYFhaGzz77DD/88AO++uorGI1G9OvXDxcvXgRgW+cwPj4eKSkpeOKJJ2psl9M5bKjafgd1Oh3K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", "text/plain": [ - "
" + "
" ] }, - "metadata": { - "needs_background": "light" - }, + "metadata": {}, "output_type": "display_data" } ], @@ -1511,9 +1507,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Devito", "language": "python", - "name": "python3" + "name": "devito" }, "language_info": { "codemirror_mode": { @@ -1525,7 +1521,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/fdm-jupyter-book/notebooks/03_diffu/diffu_rw.ipynb b/fdm-jupyter-book/notebooks/03_diffu/diffu_rw.ipynb index 4f873f88..8f14c5eb 100644 --- a/fdm-jupyter-book/notebooks/03_diffu/diffu_rw.ipynb +++ b/fdm-jupyter-book/notebooks/03_diffu/diffu_rw.ipynb @@ -243,7 +243,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -252,7 +252,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -298,7 +298,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -317,7 +317,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -326,7 +326,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -364,7 +364,7 @@ }, { "cell_type": "code", - "execution_count": 259, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -683,7 +683,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -765,7 +765,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -790,15 +790,15 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "Operator `Kernel` run in 0.01 s\n", - "Operator `Kernel` run in 0.01 s\n" + "Operator `Kernel` ran in 0.01 s\n", + "Operator `Kernel` ran in 0.01 s\n" ] }, { @@ -893,7 +893,7 @@ }, { "cell_type": "code", - "execution_count": 239, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -1097,7 +1097,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "metadata": {}, "outputs": [], "source": [ @@ -1158,7 +1158,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -1190,7 +1190,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ @@ -1239,7 +1239,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -1301,9 +1301,9 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Devito", "language": "python", - "name": "python3" + "name": "devito" }, "language_info": { "codemirror_mode": { @@ -1315,7 +1315,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/fdm-jupyter-book/notebooks/04_advec/advec.ipynb b/fdm-jupyter-book/notebooks/04_advec/advec.ipynb index 87bd507a..ef3c39ac 100644 --- a/fdm-jupyter-book/notebooks/04_advec/advec.ipynb +++ b/fdm-jupyter-book/notebooks/04_advec/advec.ipynb @@ -294,7 +294,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -307,7 +307,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -426,7 +426,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -468,12 +468,12 @@ " dt = 0.001\n", " C = 1\n", " T = 1\n", - " solver(I=I, U0=U0, v=1.0, L=L, dt=dt, C=C, T=T,\n", + " solver_FECS(I=I, U0=U0, v=1.0, L=L, dt=dt, C=C, T=T,\n", " user_action=plot)\n", " plt.legend(legends, loc='lower left')\n", " plt.savefig('tmp.png'); plt.savefig('tmp.pdf')\n", " plt.axis([0, L, -0.75, 1.1])\n", - " plt.show()\n" + " plt.show()" ] }, { @@ -1186,7 +1186,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -1304,7 +1304,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -1576,7 +1576,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -1603,7 +1603,7 @@ "" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -1643,7 +1643,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -1670,7 +1670,7 @@ "" ] }, - "execution_count": 6, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -2382,7 +2382,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -2885,22 +2885,6 @@ "\n", "" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Bibliography\n", - "\n", - "
" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { @@ -2941,9 +2925,9 @@ } }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Devito", "language": "python", - "name": "python3" + "name": "devito" }, "language_info": { "codemirror_mode": { @@ -2955,7 +2939,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.10.6" } }, "nbformat": 4,