{ "cells": [ { "cell_type": "markdown", "id": "f3038a60", "metadata": { "editable": true }, "source": [ "\n", "\n", "# Demo - Working with Functions\n", "**Mikael Mortensen** (email: `mikaem@math.uio.no`), Department of Mathematics, University of Oslo.\n", "\n", "Date: **August 7, 2020**\n", "\n", "**Summary.** This is a demonstration of how the Python module [shenfun](https://github.com/spectralDNS/shenfun) can be used to work with\n", "global spectral functions in one and several dimensions." ] }, { "cell_type": "markdown", "id": "be63430d", "metadata": { "editable": true }, "source": [ "## Construction\n", "\n", "A global spectral function $u(x)$ can be represented on the real line as" ] }, { "cell_type": "markdown", "id": "75869282", "metadata": { "editable": true }, "source": [ "$$\n", "u(x) = \\sum_{k=0}^{N-1} \\hat{u}_k \\psi_k(x), \\quad x \\in \\Omega = [a, b],\n", "$$" ] }, { "cell_type": "markdown", "id": "174c39e0", "metadata": { "editable": true }, "source": [ "where the domain $\\Omega$ has to be defined such that $b > a$.\n", "The array $\\{\\hat{u}_k\\}_{k=0}^{N-1}$ contains the\n", "expansion coefficient for the series, often referred to as the\n", "degrees of freedom. There is one degree of freedom per basis function and\n", "$\\psi_k(x)$ is the $k$'th basis function.\n", "We can use any number of basis functions,\n", "and the span of the chosen basis is then a function space. Also part of the\n", "function space is the domain, which is\n", "specified when a function space is created. To create a function space\n", "$T=\\text{span}\\{T_k\\}_{k=0}^{N-1}$ for\n", "the first N Chebyshev polynomials of the first kind on the default domain $[-1, 1]$,\n", "do" ] }, { "cell_type": "code", "execution_count": 1, "id": "f17eb498", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.074095Z", "iopub.status.busy": "2024-02-19T13:47:50.073828Z", "iopub.status.idle": "2024-02-19T13:47:50.913544Z", "shell.execute_reply": "2024-02-19T13:47:50.912771Z" } }, "outputs": [], "source": [ "from shenfun import *\n", "N = 8\n", "T = FunctionSpace(N, 'Chebyshev', domain=(-1, 1))" ] }, { "cell_type": "markdown", "id": "51d18e17", "metadata": { "editable": true }, "source": [ "The function $u(x)$ can now be created with all N coefficients\n", "equal to zero as" ] }, { "cell_type": "code", "execution_count": 2, "id": "b77b3fc9", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.917037Z", "iopub.status.busy": "2024-02-19T13:47:50.916634Z", "iopub.status.idle": "2024-02-19T13:47:50.920164Z", "shell.execute_reply": "2024-02-19T13:47:50.919412Z" } }, "outputs": [], "source": [ "u = Function(T)" ] }, { "cell_type": "markdown", "id": "791e8067", "metadata": { "editable": true }, "source": [ "When using Chebyshev polynomials the computational domain is always\n", "$[-1, 1]$. However, we can still use a different physical domain,\n", "like" ] }, { "cell_type": "code", "execution_count": 3, "id": "8ec4daad", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.923125Z", "iopub.status.busy": "2024-02-19T13:47:50.922882Z", "iopub.status.idle": "2024-02-19T13:47:50.926517Z", "shell.execute_reply": "2024-02-19T13:47:50.925967Z" } }, "outputs": [], "source": [ "T = FunctionSpace(N, 'Chebyshev', domain=(0, 1))" ] }, { "cell_type": "markdown", "id": "c08835aa", "metadata": { "editable": true }, "source": [ "and under the hood shenfun will then map this domain to the reference\n", "domain through" ] }, { "cell_type": "markdown", "id": "ab3b7822", "metadata": { "editable": true }, "source": [ "$$\n", "u(x) = \\sum_{k=0}^{N-1} \\hat{u}_k \\psi_k(2(x-0.5))\n", "$$" ] }, { "cell_type": "markdown", "id": "ca3cb4d4", "metadata": { "editable": true }, "source": [ "## Approximating analytical functions\n", "\n", "The `u` function above was created with only zero\n", "valued coefficients, which is the default. Alternatively,\n", "a [Function](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.Function) may be initialized using a constant\n", "value" ] }, { "cell_type": "code", "execution_count": 4, "id": "761f5f53", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.929251Z", "iopub.status.busy": "2024-02-19T13:47:50.929055Z", "iopub.status.idle": "2024-02-19T13:47:50.932325Z", "shell.execute_reply": "2024-02-19T13:47:50.931883Z" } }, "outputs": [], "source": [ "T = FunctionSpace(N, 'Chebyshev', domain=(-1, 1))\n", "u = Function(T, val=1)" ] }, { "cell_type": "markdown", "id": "36f77fe7", "metadata": { "editable": true }, "source": [ "but that is not very useful. A third method to initialize\n", "a [Function](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.Function) is to interpolate using an analytical\n", "Sympy function." ] }, { "cell_type": "code", "execution_count": 5, "id": "b9ad36a9", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.934594Z", "iopub.status.busy": "2024-02-19T13:47:50.934409Z", "iopub.status.idle": "2024-02-19T13:47:50.947211Z", "shell.execute_reply": "2024-02-19T13:47:50.946640Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-6.93889390e-17 -5.47405982e-17 -1.82237827e-18 1.00000000e+00\n", " 1.96261557e-17 -3.33066907e-16 1.49457239e-16 -2.93881977e-16]\n" ] } ], "source": [ "import sympy as sp\n", "x = sp.Symbol('x', real=True)\n", "u = Function(T, buffer=4*x**3-3*x)\n", "print(u)" ] }, { "cell_type": "markdown", "id": "4a9048d9", "metadata": { "editable": true }, "source": [ "Here the analytical Sympy function will first be evaluated\n", "on the entire quadrature mesh of the `T` function space,\n", "and then forward transformed to get the coefficients. This\n", "corresponds to a finite-dimensional projection to `T`.\n", "The projection is\n", "\n", "Find $u_h \\in T$, such that" ] }, { "cell_type": "markdown", "id": "27a6add1", "metadata": { "editable": true }, "source": [ "\n", "
\n", "\n", "$$\n", "(u_h - u, v)^{N}_w = 0 \\quad \\forall v \\in T, \\label{eq:proj1} \\tag{1}\n", "$$" ] }, { "cell_type": "markdown", "id": "e76306fe", "metadata": { "editable": true }, "source": [ "where $v$ is a test function and\n", "$u_h=\\sum_{k=0}^{N-1} \\hat{u}_k T_k$ is a trial function. The\n", "notation $(\\cdot, \\cdot)^N_w$ represents a discrete version of\n", "the weighted inner product $(u, v)_w$ defined as" ] }, { "cell_type": "markdown", "id": "3ed95d25", "metadata": { "editable": true }, "source": [ "$$\n", "(u, v)_{\\omega} = \\int_{\\Omega} u \\overline{v} \\omega d\\Omega,\n", "$$" ] }, { "cell_type": "markdown", "id": "a26f170f", "metadata": { "editable": true }, "source": [ "where $\\omega(x)$ is a weight functions and $\\overline{v}$ is the\n", "complex conjugate of $v$. If $v$ is\n", "a real function, then $\\overline{v}=v$.\n", "With quadrature we approximate the integral such that" ] }, { "cell_type": "markdown", "id": "b801c1d1", "metadata": { "editable": true }, "source": [ "$$\n", "(u, v)_{\\omega} \\approx (u, v)^N_{\\omega} = \\sum_{j\\in\\mathcal{I}^N} u(x_j) v(x_j) w_j.\n", "$$" ] }, { "cell_type": "markdown", "id": "c2a63677", "metadata": { "editable": true }, "source": [ "where the index set $\\mathcal{I}^N = \\{0, 1, \\ldots, N-1\\}$ and $\\{x_j\\}_{j\\in \\mathcal{I}^N}$ and $\\{w_j\\}_{j\\in \\mathcal{I}^N}$\n", "are the quadrature points and weights.\n", "\n", "A linear system of equations arise when inserting for the chosen\n", "basis functions in Eq. ([1](#eq:proj1)). We get" ] }, { "cell_type": "markdown", "id": "aee62172", "metadata": { "editable": true }, "source": [ "$$\n", "\\sum_{k\\in \\mathcal{I}^N} \\left( T_k, T_i\\right)^N_{\\omega} \\hat{u}_k =\n", "\\left(u, T_i\\right)^N_{\\omega}\\, \\forall \\, i \\in \\mathcal{I}^N,\n", "$$" ] }, { "cell_type": "markdown", "id": "0b6dffc4", "metadata": { "editable": true }, "source": [ "In matrix notation the solution becomes" ] }, { "cell_type": "markdown", "id": "35773a2f", "metadata": { "editable": true }, "source": [ "$$\n", "\\boldsymbol{\\hat{u}} = A^{-1} \\boldsymbol{\\tilde{u}},\n", "$$" ] }, { "cell_type": "markdown", "id": "09d7d46b", "metadata": { "editable": true }, "source": [ "where we use two column vectors $\\boldsymbol{\\hat{u}}=(\\hat{u}_i)^T_{i\\in \\mathcal{I}^N}$,\n", "$\\boldsymbol{\\tilde{u}}=\\left(\\tilde{u}_i\\right)^T_{i \\in \\mathcal{I}^N}$,\n", "$\\tilde{u}_i = (u, T_i)^N_{\\omega}$ and the matrix\n", "$A=(a_{ik}) \\in \\mathbb{R}^{N \\times N}$, that is diagonal with\n", "$a_{ik}=\\left( T_k, T_i\\right)^N_{\\omega}$. For the default\n", "Gauss-Chebyshev quadrature this matrix is $a_{ik} = c_i \\pi/2 \\delta_{ik}$,\n", "where $c_0=2$ and $c_i=1$ for $i>0$." ] }, { "cell_type": "markdown", "id": "a93601a6", "metadata": { "editable": true }, "source": [ "## Adaptive function size\n", "\n", "The number of basis functions can also be left open during creation\n", "of the function space, through" ] }, { "cell_type": "code", "execution_count": 6, "id": "6b3431b4", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.950753Z", "iopub.status.busy": "2024-02-19T13:47:50.950522Z", "iopub.status.idle": "2024-02-19T13:47:50.954325Z", "shell.execute_reply": "2024-02-19T13:47:50.953799Z" } }, "outputs": [], "source": [ "T = FunctionSpace(0, 'Chebyshev', domain=(-1, 1))" ] }, { "cell_type": "markdown", "id": "b919c637", "metadata": { "editable": true }, "source": [ "This is useful if you want to approximate a function and\n", "are uncertain how many basis functions that are required.\n", "For example, you may want to approximate the function $\\cos(20 x)$.\n", "You can then find the required [Function](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.Function) using" ] }, { "cell_type": "code", "execution_count": 7, "id": "9a55e6d5", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.956650Z", "iopub.status.busy": "2024-02-19T13:47:50.956470Z", "iopub.status.idle": "2024-02-19T13:47:50.971292Z", "shell.execute_reply": "2024-02-19T13:47:50.970532Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "37\n" ] } ], "source": [ "u = Function(T, buffer=sp.cos(20*x))\n", "print(len(u))" ] }, { "cell_type": "markdown", "id": "07d341ea", "metadata": { "editable": true }, "source": [ "We see that $N=45$ is required to resolve this function. This agrees\n", "well with what is reported also by [Chebfun](https://www.chebfun.org/docs/guide/guide01.html).\n", "Note that in this process a new [FunctionSpace()](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.FunctionSpace) has been\n", "created under the hood. The function space of `u` can be\n", "extracted using" ] }, { "cell_type": "code", "execution_count": 8, "id": "d6cdcdb9", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.973843Z", "iopub.status.busy": "2024-02-19T13:47:50.973655Z", "iopub.status.idle": "2024-02-19T13:47:50.976913Z", "shell.execute_reply": "2024-02-19T13:47:50.976395Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "37\n" ] } ], "source": [ "Tu = u.function_space()\n", "print(Tu.N)" ] }, { "cell_type": "markdown", "id": "cd42b044", "metadata": { "editable": true }, "source": [ "To further show that shenfun is compatible with Chebfun we can also\n", "approximate the Bessel function" ] }, { "cell_type": "code", "execution_count": 9, "id": "f3f6e277", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:50.979208Z", "iopub.status.busy": "2024-02-19T13:47:50.979025Z", "iopub.status.idle": "2024-02-19T13:47:51.014287Z", "shell.execute_reply": "2024-02-19T13:47:51.013761Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "83\n" ] } ], "source": [ "T1 = FunctionSpace(0, 'Chebyshev', domain=(0, 100))\n", "u = Function(T1, buffer=sp.besselj(0, x))\n", "print(len(u))" ] }, { "cell_type": "markdown", "id": "527bcff6", "metadata": { "editable": true }, "source": [ "which gives 83 basis functions, in close agreement with Chebfun (89).\n", "The difference lies only in the cut-off criteria. We cut frequencies\n", "with a relative tolerance of 1e-12 by default, but if we make this criteria\n", "a little bit stronger, then we will also arrive at a slightly higher number:" ] }, { "cell_type": "code", "execution_count": 10, "id": "f909dbb0", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:51.016776Z", "iopub.status.busy": "2024-02-19T13:47:51.016584Z", "iopub.status.idle": "2024-02-19T13:47:51.030924Z", "shell.execute_reply": "2024-02-19T13:47:51.030480Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "87\n" ] } ], "source": [ "u = Function(T1, buffer=sp.besselj(0, x), reltol=1e-14)\n", "print(len(u))" ] }, { "cell_type": "markdown", "id": "631b5bda", "metadata": { "editable": true }, "source": [ "Plotting the function on its quadrature points looks\n", "a bit ragged, though:" ] }, { "cell_type": "code", "execution_count": 11, "id": "24ce622f", "metadata": { "collapsed": false, "editable": true, "execution": { "iopub.execute_input": "2024-02-19T13:47:51.033552Z", "iopub.status.busy": "2024-02-19T13:47:51.033365Z", "iopub.status.idle": "2024-02-19T13:47:51.628468Z", "shell.execute_reply": "2024-02-19T13:47:51.627423Z" } }, "outputs": [ { "data": { "image/png": "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YyE+z6nB5zl1+FynBp/n1LDqeZZlGc3NzSgpKYHN1ntXy1mXebHZbBg2bJilj5GTk8N/GCnA5zk1+DynDp/r1ODznBpWPM99ZVwENuwSERHRgMLghYiIiAYUBi8auFwufP/734fL5ervSzmr8XlODT7PqcPnOjX4PKfGmfA8n3UNu0RERHR2Y+aFiIiIBhQGL0RERDSgMHghIiKiAYXBCxEREQ0oDF5UeuqppzBy5Ei43W6Ul5djw4YN/X1JA9rSpUtx/vnnIzs7G0VFRfjMZz6Dffv2dbmPLMt4/PHHUVJSgvT0dFx22WXYtWtXP13x2WHp0qWQJAkPPPCAchufZ/NUV1fjy1/+MgoKCpCRkYFp06ahoqJC+Tyfa+OCwSC++93vYuTIkUhPT8eoUaPwxBNPIBwOK/fh86zd+vXrceONN6KkpASSJOHvf/97l8+reU79fj+++c1vorCwEJmZmbjppptw/Phxay5Ypj795S9/kdPS0uRnn31W3r17t3z//ffLmZmZ8rFjx/r70gasa665Rv79738v79y5U962bZs8b948efjw4XJLS4tyn5/+9Kdydna2/Oqrr8o7duyQb7vtNnnIkCGyz+frxysfuDZt2iSPGDFCPvfcc+X7779fuZ3PszlOnz4tl5WVyV/5ylfkjz76SD5y5Ij89ttvywcPHlTuw+fauB/96EdyQUGB/M9//lM+cuSI/Ne//lXOysqSly9frtyHz7N2q1atkh977DH51VdflQHIr732WpfPq3lOFy1aJA8dOlRes2aNvGXLFvnyyy+Xp06dKgeDQdOvl8GLChdccIG8aNGiLrdNmDBBfuSRR/rpis4+dXV1MgB53bp1sizLcjgclgcPHiz/9Kc/Ve7T0dEhezwe+emnn+6vyxywmpub5bFjx8pr1qyRL730UiV44fNsnocffliePXt20s/zuTbHvHnz5K997WtdbvvsZz8rf/nLX5Zlmc+zGboHL2qe06amJjktLU3+y1/+otynurpattls8urVq02/RpaN+tDZ2YmKigrMnTu3y+1z587Fxo0b++mqzj5erxcAkJ+fDwA4cuQIamtruzzvLpcLl156KZ93Hb7xjW9g3rx5uOqqq7rczufZPK+//jpmzJiBz3/+8ygqKsL06dPx7LPPKp/nc22O2bNn49///jf2798PAPjkk0/w3nvv4frrrwfA59kKap7TiooKBAKBLvcpKSnB5MmTLXnez7rFjGarr69HKBRCcXFxl9uLi4tRW1vbT1d1dpFlGYsXL8bs2bMxefJkAFCe20TP+7Fjx1J+jQPZX/7yF2zZsgUff/xxj8/xeTbP4cOHsWLFCixevBiPPvooNm3ahPvuuw8ulwsLFizgc22Shx9+GF6vFxMmTIDdbkcoFMKPf/xjfPGLXwTAv9NWUPOc1tbWwul0Ii8vr8d9rHitZPCikiRJXf6/LMs9biN97r33Xmzfvh3vvfdej8/xeTemqqoK999/P9566y243e6k9+PzbFw4HMaMGTPwk5/8BAAwffp07Nq1CytWrMCCBQuU+/G5NuaVV17Bn/70J/z5z3/GpEmTsG3bNjzwwAMoKSnBHXfcodyPz7P59DynVj3vLBv1obCwEHa7vUfkWFdX1yMKJe2++c1v4vXXX8e7776LYcOGKbcPHjwYAPi8G1RRUYG6ujqUl5fD4XDA4XBg3bp1ePLJJ+FwOJTnks+zcUOGDME555zT5baJEyeisrISAP9Om+Whhx7CI488gi984QuYMmUK5s+fjwcffBBLly4FwOfZCmqe08GDB6OzsxONjY1J72MmBi99cDqdKC8vx5o1a7rcvmbNGsyaNaufrmrgk2UZ9957L1auXIl33nkHI0eO7PL5kSNHYvDgwV2e987OTqxbt47PuwZXXnklduzYgW3btikfM2bMwJe+9CVs27YNo0aN4vNskosvvrjHcf/9+/ejrKwMAP9Om6WtrQ02W9eXLrvdrhyV5vNsPjXPaXl5OdLS0rrcp6amBjt37rTmeTe9BfgsJI5KP//88/Lu3bvlBx54QM7MzJSPHj3a35c2YP3nf/6n7PF45LVr18o1NTXKR1tbm3Kfn/70p7LH45FXrlwp79ixQ/7iF7/I444miD9tJMt8ns2yadMm2eFwyD/+8Y/lAwcOyC+99JKckZEh/+lPf1Luw+fauDvuuEMeOnSoclR65cqVcmFhofyd73xHuQ+fZ+2am5vlrVu3ylu3bpUByMuWLZO3bt2qjARR85wuWrRIHjZsmPz222/LW7Zska+44goele5vv/3tb+WysjLZ6XTK5513nnKkl/QBkPDj97//vXKfcDgsf//735cHDx4su1wu+ZJLLpF37NjRfxd9lugevPB5Ns8bb7whT548WXa5XPKECRPk3/3ud10+z+faOJ/PJ99///3y8OHDZbfbLY8aNUp+7LHHZL/fr9yHz7N27777bsLfyXfccYcsy+qe0/b2dvnee++V8/Pz5fT0dPmGG26QKysrLbleSZZl2fx8DhEREZE12PNCREREAwqDFyIiIhpQGLwQERHRgMLghYiIiAYUBi9EREQ0oDB4ISIiogGFwQsRERENKAxeiIiIaEBh8EJEREQDCoMXIiIiGlAYvBAREdGAwuCFiIiIBpT/DxsRVpXkvMQOAAAAAElFTkSuQmCC", "text/plain": [ "