{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Step 2 : build a Runge-Kutta type time-stepper\n", "\n", "📜 _Once obtained the following_ $Q$_-coefficients :_\n", "\n", "$$\n", "\\begin{array}\n", " {c|c}\n", " \\tau & Q \\\\\n", " \\hline\n", " & w^\\top\n", "\\end{array}\n", "$$\n", "\n", "_we can use those to build the associated time-stepping scheme and solve time-dependent problems._\n", "\n", "> 📣 Remember, this is exactly the same as Butcher tables for a Runge-Kutta method ..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Consider the following simple ODE, usually named _Dahlquist problem_ :\n", "\n", "$$\n", "\\frac{du}{dt} = \\lambda u, \\quad t \\in [0, T], \\quad u(0)=u_0.\n", "$$\n", "\n", "We choose here $\\lambda=i$ (imaginary unit), $T=4\\pi$, and $u_0=e^{\\frac{i\\pi}{6}}$ :" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "\n", "lam = 1j\n", "T = 4*np.pi\n", "u0 = np.exp(1j*np.pi/6)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let say we want to solve it numerically, using $12$ time-steps of the famous RK4 method. This is how we do it with `qmat` :" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from qmat import Q_GENERATORS\n", "\n", "rk = Q_GENERATORS[\"RK4\"]()\n", "nodes, weights, Q = rk.genCoeffs()\n", "\n", "nSteps = 12\n", "uNum = np.zeros(nSteps+1, dtype=complex)\n", "uNum[0] = u0\n", "\n", "dt = T/nSteps\n", "A = np.eye(nodes.size) - lam*dt*Q # all-at-once system\n", "\n", "for i in range(nSteps):\n", " b = np.ones(nodes.size)*uNum[i] # ... with its RHS\n", " uNodes = np.linalg.solve(A, b) # ... and its solution\n", " uNum[i+1] = uNum[i] + lam*dt*weights.dot(uNodes) # prolongation\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To explain a bit, we simply computed $N=12$ time-step solutions $u_1:=u(t_1), \\dots, u_n:=u(t_n) \\dots, u_{N}:=u(t_N)=u(T)$,\n", "with $t_{n+1}-t_{n} = \\Delta{t} = T/N$. One time-step consists on :\n", "\n", "1. solving the **all-at-once system** :\n", "\n", "$$\n", "(I - \\lambda\\Delta{t} Q) u_\\tau = [u_n, \\dots, u_n]^T,\n", "$$\n", "\n", "where $u_\\tau$ stores the numerical approximation at $t_n + \\Delta{t}\\tau_m$, also called the **nodes solution** (for collocation methods) or **stage solutions** (for RK methods).\n", "\n", "2. updating the step solution with the **prolongation** :\n", "\n", "$$\n", "u_{n+1} = u_{n} + \\lambda\\Delta{t} w^T u_\\tau\n", "$$\n", "\n", "... and that's it\n", "\n", "> 💡 The code is independent from the fact that we used the RK4 scheme, or whatever else ... \n", "\n", "We show the time solution below, starting from the initial solution (orange square), and with the exact analytic solution in dashed line :" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "plt.plot(uNum.real, uNum.imag, 'o-')\n", "plt.axis(\"equal\")\n", "\n", "times = np.linspace(0, T, nSteps+1)\n", "uExact = u0 * np.exp(lam*times)\n", "plt.plot(uExact[0].real, uExact[0].imag, 's', ms=10, c=\"orange\")\n", "plt.plot(uExact.real, uExact.imag, ':', c=\"k\")\n", "plt.grid()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, we can observe some numerical error of the time-scheme, since we do not retrieve exactly the hexagon showed by the exact solution.\n", "One accuracy indicator is the $L_\\infty$ error in time (computed over all time-steps) :" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L_inf error : 0.11925\n" ] } ], "source": [ "print(\"L_inf error : {:1.5f}\".format(np.linalg.norm(uNum-uExact, ord=np.inf)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now let say we want to use a collocation method instead of RK4, using $4$ Legendre Radau-II nodes (_i.e_ Radau nodes including the right time interval bound). The only line we have to change in the previous code is :" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# replace : \"rk = Q_GENERATORS[\"RK4\"]()\" by \n", "coll = Q_GENERATORS[\"coll\"](nNodes=4, nodeType=\"LEGENDRE\", quadType=\"RADAU-RIGHT\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Then the **exact same code as before** can be used to build the time-stepper, compute the numerical solution and the error. In practice, you don't have to, as the $Q$-generators in `qmat` already provides dedicated methods for that :" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "L_inf error : 0.00001\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "uNum = coll.solveDahlquist(lam, u0, T, nSteps)\n", "plt.plot(uNum[0].real, uNum[0].imag, 's', ms=10, c=\"orange\")\n", "plt.plot(uNum.real, uNum.imag, 'o-')\n", "plt.axis(\"equal\")\n", "plt.grid()\n", "print(\"L_inf error : {:1.5f}\".format(coll.errorDahlquist(lam, u0, T, nSteps, uNum=uNum)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now the error is way lower, even if we used $Q$-coefficients of the same size ... but there is a major difference here between the two $Q$ matrices :" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Q for RK4 :\n", "[[0. 0. 0. 0. ]\n", " [0.5 0. 0. 0. ]\n", " [0. 0.5 0. 0. ]\n", " [0. 0. 1. 0. ]]\n", "Q for Collocation :\n", "[[ 0.11299948 -0.04030922 0.02580238 -0.00990468]\n", " [ 0.234384 0.20689257 -0.04785713 0.01604742]\n", " [ 0.21668178 0.40612326 0.18903652 -0.0241821 ]\n", " [ 0.22046221 0.38819347 0.32884432 0.0625 ]]\n" ] } ], "source": [ "print(\"Q for RK4 :\")\n", "print(rk.Q)\n", "\n", "print(\"Q for Collocation :\")\n", "print(coll.Q)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While $Q$ is **dense for the collocation method**, it is not (and actually lower triangular) for RK4. \n", "Hence in practice, solving the **all-at-once system** with the collocation method is the most expensive,\n", "as we need to solve it ... well, _all-at-once_.\n", "\n", "> 🔍 In this case (Dahlquist), solving the _all-at-once system_ it is easy and cheap as showed above. \n", "> But for large scale non-linear problems, this can quickly become unfeasible, as each time\n", "> may represent thousands or millions of degrees of freedom ...\n", "\n", "For RK4 though, solving the _all-at-once system_ is much simpler : one simply needs to solve the first node solution (explicit expression for RK4 since the diagonal coefficient is 0), then use it to solve the second node solution, etc ... \n", "so no need to solve the system all-at-once !\n", "This is one reason why RK methods have been generally favored in scientific computing against collocation methods." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "> 🔔 However, the high accuracy of collocation methods motivates to estimate the _all-at-once solution_ in a cheaper way than a direct solve, which is the main idea of **Spectral Deferred Correction (SDC)** and **Iterated Runge-Kutta methods**.\n", "> Those use fixed-point preconditioned iterations to solve the all-at-once system, where the preconditoner is built using a **lower triangular** approximation of the $Q$ matrix, named the $Q_\\Delta$ **matrix**.\n", "\n", "The second main feature of `qmat` is then to [generate those approximations ...](./03_qDelta.ipynb)" ] } ], "metadata": { "language_info": { "name": "python" } }, "nbformat": 4, "nbformat_minor": 2 }