{ "cells": [ { "cell_type": "markdown", "id": "1d07c42c", "metadata": { "editable": true }, "source": [ "\n", "\n", "# Demo - Helmholtz equation in polar coordinates\n", "**Mikael Mortensen** (email: `mikaem@math.uio.no`), Department of Mathematics, University of Oslo.\n", "\n", "Date: **April 8, 2020**\n", "\n", "**Summary.** This is a demonstration of how the Python module [shenfun](https://github.com/spectralDNS/shenfun) can be used to solve the\n", "Helmholtz equation on a circular disc, using polar coordinates. This demo is implemented in\n", "a single Python file [unitdisc_helmholtz.py](https://github.com/spectralDNS/shenfun/blob/master/demo/unitdisc_helmholtz.py),\n", "and the numerical method is described in more detail by J. Shen [[shen3]](#shen3).\n", "\n", "\n", "\n", "\n", "\n", "

Figure 1: Helmholtz on the unit disc.

\n", "" ] }, { "cell_type": "markdown", "id": "a8436390", "metadata": { "editable": true }, "source": [ "## Helmholtz equation\n", "\n", "\n", "The Helmholtz equation is given as" ] }, { "cell_type": "markdown", "id": "5432fbb6", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "-\\nabla^2 u(\\boldsymbol{x}) + \\alpha u(\\boldsymbol{x}) = f(\\boldsymbol{x}) \\quad \\text{for }\\, \\boldsymbol{x}=(x, y) \\in \\Omega, \\label{eq:helmholtz} \\tag{1}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "74c368e2", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "u =0 \\text{ on } \\partial \\Omega,\n", "\\label{_auto1} \\tag{2}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "28ce39e0", "metadata": { "editable": true }, "source": [ "where $u(\\boldsymbol{x})$ is the solution, $f(\\boldsymbol{x})$ is a function and $\\alpha$ a constant.\n", "The domain is a circular disc $\\Omega = \\{(x, y): x^2+y^2 < a^2\\}$ with radius $a$.\n", "We use polar coordinates $(\\theta, r)$, defined as" ] }, { "cell_type": "markdown", "id": "abcc039f", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", " x = r \\cos \\theta, \n", "\\label{_auto2} \\tag{3}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "efcb355f", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", " y = r \\sin \\theta,\n", "\\label{_auto3} \\tag{4}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "ec76706d", "metadata": { "editable": true }, "source": [ "which leads to a Cartesian product mesh $(\\theta, r) \\in [0, 2\\pi) \\times (0, a)$\n", "suitable for numerical implementations. Note that the\n", "two directions are ordered with $\\theta$ first and then $r$, which is less common\n", "than $(r, \\theta)$. This has to do with the fact that we will need to\n", "solve linear equation systems along the radial direction, but not\n", "the $\\theta$-direction, since Fourier matrices are diagonal. When\n", "the radial direction is placed last, the data in the radial direction\n", "will be contigeous in a row-major C memory, leading to faster memory\n", "access where it is needed the most. Note that it takes very few\n", "changes in `shenfun` to switch the directions to $(r, \\theta)$ if this\n", "is still desired.\n", "\n", "We will use Chebyshev\n", "or Legendre basis functions $\\psi_j(r)$ for the radial direction and\n", "a periodic Fourier expansion in $\\exp(\\imath k \\theta)$ for the\n", "azimuthal direction. The polar basis functions are as such" ] }, { "cell_type": "markdown", "id": "f1e0f267", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "v_{kj}(\\theta, r) = \\exp(\\imath k \\theta) \\psi_j(r),\n", "\\label{_auto4} \\tag{5}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "c73ec530", "metadata": { "editable": true }, "source": [ "and we look for solutions" ] }, { "cell_type": "markdown", "id": "9af694a9", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u(\\mathbf{x}) = \\tilde{u}(\\theta, r) = \\sum_{k} \\sum_{j} \\hat{u}_{kj} v_{kj}(\\theta, r).\n", "\\label{_auto5} \\tag{6}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "7dc44a76", "metadata": { "editable": true }, "source": [ "Note that $\\tilde{u}$ is the function $u$ mapped to computational space.\n", "From now on we will simply use $u(\\theta, r)$ without the tilde, and assume that\n", "the proper version of the function is understood from its arguments.\n", "\n", "A discrete Fourier approximation space with $N$ basis functions is then" ] }, { "cell_type": "markdown", "id": "e2c0c9b8", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "V_F^N = \\text{span} \\{\\exp(\\imath k \\theta)| \\text{ for } k \\in K\\},\n", "\\label{_auto6} \\tag{7}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "b675c87a", "metadata": { "editable": true }, "source": [ "where the index set $K = \\{-N/2, -N/2+1, \\ldots, N/2-1\\}$. Since the solution $u(\\theta, r)$\n", "is real, there is Hermitian symmetry and $\\hat{u}_{k,j} = \\hat{u}_{k,-j}^*$\n", "(with $*$ denoting a complex conjugate).\n", "For this reason we use only $k \\in K=\\{0, 1, \\ldots, N/2\\}$ in solving for\n", "$\\hat{u}_{kj}$, and then use Hermitian symmetry to get the remaining\n", "unknowns. This is handled under the hood by fast Fourier transforms.\n", "\n", "The radial basis is more tricky, because there is a nontrivial 'boundary'\n", "condition (pole condition) that needs to be applied at the center of the disc $(r=0)$" ] }, { "cell_type": "markdown", "id": "a2a580a7", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "\\frac{\\partial u(\\theta, 0)}{\\partial \\theta} = 0.\n", "\\label{_auto7} \\tag{8}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "29ba05d7", "metadata": { "editable": true }, "source": [ "To apply this condition we split the solution into Fourier\n", "coefficients with wavenumber 0 and $K\\backslash \\{0\\}$,\n", "remembering that the Fourier basis function with $k=0$ is\n", "simply 1" ] }, { "cell_type": "markdown", "id": "8acc3dc5", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u(\\theta, r) = \\sum_{j} \\left( \\hat{u}_{0j} \\psi_{j}(r) + \\sum_{k=1}^{N/2} \\hat{u}_{kj} \\exp(\\imath k \\theta) \\psi_j(r) \\right).\n", "\\label{_auto8} \\tag{9}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "3712274c", "metadata": { "editable": true }, "source": [ "We then apply a different radial basis for the two $\\psi$'s in\n", "the above equation (renaming the first $\\overline{\\psi}$)" ] }, { "cell_type": "markdown", "id": "38afaa1e", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u(\\theta, r) = \\sum_{j} \\left( \\hat{u}_{0j} \\overline{\\psi}_{j}(r) + \\sum_{k=1}^{N/2} \\hat{u}_{kj} \\exp(\\imath k \\theta) \\psi_j(r) \\right).\n", "\\label{_auto9} \\tag{10}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "f444ab42", "metadata": { "editable": true }, "source": [ "Note that the first term $\\sum_{j} \\hat{u}_{0j} \\overline{\\psi}_{j}(r)$ is independent\n", "of $\\theta$. Now, to enforce conditions" ] }, { "cell_type": "markdown", "id": "eec46081", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u(\\theta, a) = 0, \n", "\\label{_auto10} \\tag{11}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "6a63be68", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "\\frac{\\partial u(\\theta, 0)}{\\partial \\theta} = 0,\n", "\\label{_auto11} \\tag{12}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "f41e1913", "metadata": { "editable": true }, "source": [ "it is sufficient for the two bases ($\\overline{\\psi}$ and $\\psi$) to\n", "satisfy" ] }, { "cell_type": "markdown", "id": "06d79350", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "\\overline{\\psi}_j(a) = 0, \n", "\\label{_auto12} \\tag{13}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "869ecbbc", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "\\psi_j(a) = 0,\n", "\\label{_auto13} \\tag{14}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "21ee8cae", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "\\psi_j(0) = 0.\n", "\\label{_auto14} \\tag{15}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "4319dd50", "metadata": { "editable": true }, "source": [ "Bases that satisfy these conditions can be found both with Legendre and\n", "Chebyshev polynomials.\n", "If $\\phi_j(x)$ is used for either the Legendre polynomial $L_j(x)$ or the\n", "Chebyshev polynomial of the first kind $T_j(x)$, we can have" ] }, { "cell_type": "markdown", "id": "8227d2da", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "\\overline{\\psi}_j(r) = \\phi_j(2r/a-1) - \\phi_{j+1}(2r/a-1), \\text{ for } j \\in 0, 1, \\ldots N-1, \n", "\\label{_auto15} \\tag{16}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "0aac6186", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "\\psi_j(r) = \\phi_j(2r/a-1) - \\phi_{j+2}(2r/a-1), \\text{ for } j \\in 0, 1, \\ldots N-2.\n", "\\label{eq:psi} \\tag{17}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "d6161bd1", "metadata": { "editable": true }, "source": [ "Define the following approximation spaces for the radial direction" ] }, { "cell_type": "markdown", "id": "ed53c2c4", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "V_D^N = \\text{span} \\{\\psi_j\\}_{j=0}^{N-3} \n", "\\label{_auto16} \\tag{18}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "b6fdf5eb", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "V_U^N = \\text{span} \\{\\overline{\\psi}_j\\}_{j=0}^{N-2} \n", "\\label{_auto17} \\tag{19}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "976a21cf", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "\\label{_auto18} \\tag{20}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "86adfe7c", "metadata": { "editable": true }, "source": [ "and split the function space for the azimuthal direction into" ] }, { "cell_type": "markdown", "id": "6c997fcf", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "V_F^0 = \\text{span}\\{1\\}, \n", "\\label{_auto19} \\tag{21}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "e0a07851", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "V_F^{1} = \\text{span} \\{\\exp(\\imath k \\theta)\\}, \\text{ for } k \\in K \\backslash \\{0\\}.\n", "\\label{_auto20} \\tag{22}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "c171d086", "metadata": { "editable": true }, "source": [ "We then look for solutions" ] }, { "cell_type": "markdown", "id": "42be4adc", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u(\\theta, r) = u^0(r) + u^1(\\theta, r),\n", "\\label{_auto21} \\tag{23}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "ab4aeed8", "metadata": { "editable": true }, "source": [ "where" ] }, { "cell_type": "markdown", "id": "5d3b3e3d", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "u^0(r) = \\sum_{j=0}^{N-2} \\hat{u}^0_j \\overline{\\psi}_j(r), \n", "\\label{_auto22} \\tag{24}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "5d6431c2", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation} \n", "u^1(\\theta, r) = \\sum_{j=0}^{N-3}\\sum_{k=1}^{N/2} \\hat{u}^1_{kj} \\exp(\\imath k \\theta) \\psi_j(r) .\n", "\\label{_auto23} \\tag{25}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "6188851a", "metadata": { "editable": true }, "source": [ "As such the Helmholtz problem is split in two smaller problems.\n", "The two problems read with the spectral Galerkin method:\n", "\n", "Find $u^0 \\in V_F^0 \\otimes V_U^N$ such that" ] }, { "cell_type": "markdown", "id": "5d4eec5a", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", " \\int_{\\Omega} (-\\nabla^2 u^0 + \\alpha u^0) v^0 w d\\sigma = \\int_{\\Omega} f v^0 w d\\sigma, \\quad \\forall \\, v^0 \\in V_F^0 \\otimes V_U^N.\n", "\\label{eq:u0} \\tag{26}\n", " \\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "1283888c", "metadata": { "editable": true }, "source": [ "Find $u^1 \\in V_F^1 \\otimes V_D^N$ such that" ] }, { "cell_type": "markdown", "id": "c629c307", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", " \\int_{\\Omega} (-\\nabla^2 u^1 + \\alpha u^1) v^1 w d\\sigma = \\int_{\\Omega} f v^1 w d\\sigma, \\quad \\forall \\, v^1 \\in V_F^1 \\otimes V_D^N.\n", "\\label{eq:u1} \\tag{27}\n", " \\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "9d10377e", "metadata": { "editable": true }, "source": [ "Note that integration over the domain is done using\n", "polar coordinates with an integral measure of $d\\sigma=rdrd\\theta$.\n", "However, the integral in the radial direction needs to be mapped\n", "to $t=2r/a-1$, where $t \\in [-1, 1]$, which suits the basis functions used,\n", "see ([17](#eq:psi)). This leads to a measure of $0.5(t+1)adtd\\theta$.\n", "Furthermore, the weight $w(t)$ will be unity for the Legendre basis and\n", "$(1-t^2)^{-0.5}$ for the Chebyshev bases." ] }, { "cell_type": "markdown", "id": "be46f19c", "metadata": { "editable": true }, "source": [ "## Implementation\n", "\n", "\n", "A complete implementation is found in the file [unitdisc_helmholtz.py](https://github.com/spectralDNS/shenfun/blob/master/demo/unitdisc_helmholtz.py).\n", "Here we give a brief explanation for the implementation. Start by\n", "importing all functionality from [shenfun](https://github.com/spectralDNS/shenfun)\n", "and [sympy](https://sympy.org), where Sympy is required for handeling the\n", "polar coordinates. Also, we choose to work with covariant\n", "basis vectors." ] }, { "cell_type": "code", "execution_count": 1, "id": "1acc570e", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:55.315310Z", "iopub.status.busy": "2026-06-03T08:49:55.314973Z", "iopub.status.idle": "2026-06-03T08:49:55.703410Z", "shell.execute_reply": "2026-06-03T08:49:55.703142Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "from shenfun import *\n", "import sympy as sp\n", "config['basisvectors'] = 'covariant'\n", "\n", "# Define polar coordinates using angle along first axis and radius second\n", "theta, r = psi = sp.symbols('x,y', real=True, positive=True)\n", "rv = (r*sp.cos(theta), r*sp.sin(theta)) # Map to Cartesian (x, y)" ] }, { "cell_type": "markdown", "id": "355e26ca", "metadata": { "editable": true }, "source": [ "Note that Sympy symbols are both positive and real, $\\theta$ is\n", "chosen to be along the first axis and $r$ second. This has to agree with\n", "the next step, which is the creation of tensorproductspaces\n", "$V_F^0 \\otimes V_U^N$ and $V_F^1 \\otimes V_D^N$. We use\n", "`domain=(0, 1)` for the radial direction to get a unit disc, whereas\n", "the default domain for the Fourier bases is already the\n", "required $(0, 2\\pi)$." ] }, { "cell_type": "code", "execution_count": 2, "id": "3162ee49", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:55.705199Z", "iopub.status.busy": "2026-06-03T08:49:55.704975Z", "iopub.status.idle": "2026-06-03T08:49:55.873634Z", "shell.execute_reply": "2026-06-03T08:49:55.873333Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "N = 32\n", "F = FunctionSpace(N, 'F', dtype='d')\n", "F0 = FunctionSpace(1, 'F', dtype='d')\n", "L = FunctionSpace(N, 'L', bc=(0, 0), domain=(0, 1))\n", "L0 = FunctionSpace(N, 'L', bc=(None, 0), domain=(0, 1))\n", "T = TensorProductSpace(comm, (F, L), axes=(1, 0), coordinates=(psi, rv))\n", "T0 = TensorProductSpace(MPI.COMM_SELF, (F0, L0), axes=(1, 0), coordinates=(psi, rv))" ] }, { "cell_type": "markdown", "id": "6b19eba1", "metadata": { "editable": true }, "source": [ "Note that since `F0` only has one component we could actually use\n", "`L0` without creating `T0`. But the code turns out to be simpler\n", "if we use `T0`, much because the additional $\\theta$-direction is\n", "required for the polar coordinates to apply. Using one single basis\n", "function for the $\\theta$ direction is as such a generic way to handle\n", "polar 1D problems (i.e., problems that are only functions of the\n", "radial direction, but still using polar coordinates).\n", "Also note that `F` is created using the entire range of wavenumbers\n", "even though it should not include wavenumber 0.\n", "As such we need to make sure that the coefficient created for\n", "$k=0$ (i.e., $\\hat{u}^1_{0,j}$) will be exactly zero.\n", "Finally, note that\n", "`T0` is not distributed with MPI, which is accomplished using\n", "`MPI.COMM_SELF` instead of `comm` (which equals `MPI.COMM_WORLD`).\n", "The purely radial problem ([26](#eq:u0)) is only solved on the one\n", "processor with rank = 0.\n", "\n", "Polar coordinates are ensured by feeding `coordinates=(psi, rv)`\n", "to [TensorProductSpace](https://shenfun.readthedocs.io/en/latest/shenfun.html#shenfun.tensorproductspace.TensorProductSpace). Operators like [div()](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.operators.div)\n", "[grad()](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.operators.grad) and [curl()](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.operators.curl) will now work on\n", "items of [Function](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.Function), [TestFunction](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.TestFunction) and\n", "[TrialFunction](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.TrialFunction) using a polar coordinate system.\n", "\n", "To define the equations ([26](#eq:u0)) and ([27](#eq:u1)) we first declare\n", "these test- and trialfunctions, and then use code that\n", "is remarkably similar to the mathematics." ] }, { "cell_type": "code", "execution_count": 3, "id": "a9f683c4", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:55.875162Z", "iopub.status.busy": "2026-06-03T08:49:55.874995Z", "iopub.status.idle": "2026-06-03T08:49:55.953847Z", "shell.execute_reply": "2026-06-03T08:49:55.953565Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "v = TestFunction(T)\n", "u = TrialFunction(T)\n", "v0 = TestFunction(T0)\n", "u0 = TrialFunction(T0)\n", "alpha = 1\n", "\n", "mats = inner(v, -div(grad(u))+alpha*u)\n", "if comm.Get_rank() == 0:\n", " mats0 = inner(v0, -div(grad(u0))+alpha*u0)" ] }, { "cell_type": "markdown", "id": "ac2378ec", "metadata": { "editable": true }, "source": [ "Here `mats` and `mats0` will contain several tensor product\n", "matrices in the form of\n", "[TPMatrix](https://shenfun.readthedocs.io/en/latest/shenfun.html#shenfun.matrixbase.TPMatrix). Since there is only one non-periodic direction\n", "the matrices can be easily solved using [SolverGeneric1ND](https://shenfun.readthedocs.io/en/latest/shenfun.html#shenfun.la.SolverGeneric1ND).\n", "But first we need to define the function $f(\\theta, r)$.\n", "To this end we use sympy and the method of\n", "manufactured solution to define a possible solution `ue`,\n", "and then compute `f` exactly using exact differentiation" ] }, { "cell_type": "code", "execution_count": 4, "id": "56e8f67f", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:55.955165Z", "iopub.status.busy": "2026-06-03T08:49:55.955091Z", "iopub.status.idle": "2026-06-03T08:49:56.053234Z", "shell.execute_reply": "2026-06-03T08:49:56.052983Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "\n", "# Manufactured solution\n", "ue = (r*(1-r))**2*sp.cos(8*theta)-0.1*(r-1)\n", "#f = -ue.diff(r, 2) - (1/r)*ue.diff(r, 1) - (1/r**2)*ue.diff(theta, 2) + alpha*ue\n", "f = (-div(grad(u))+alpha*u).tosympy(basis=ue, psi=psi)\n", "\n", "# Compute the right hand side on the quadrature mesh\n", "fj = Array(T, buffer=f)\n", "\n", "# Take scalar product\n", "f_hat = Function(T)\n", "f_hat = inner(v, fj, output_array=f_hat)\n", "if T.local_slice(True)[0].start == 0: # The processor that owns k=0\n", " f_hat[0] = 0\n", "\n", "# For k=0 we solve only a 1D equation. Do the scalar product for Fourier\n", "# coefficient 0 by hand (or sympy).\n", "if comm.Get_rank() == 0:\n", " f0_hat = Function(T0)\n", " gt = sp.lambdify(r, sp.integrate(f, (theta, 0, 2*sp.pi))/2/sp.pi)(L0.mesh())\n", " f0_hat = T0.scalar_product(gt, f0_hat)" ] }, { "cell_type": "markdown", "id": "ebf9e1dc", "metadata": { "editable": true }, "source": [ "Note that for $u^0$ we perform the interal in the $\\theta$ direction\n", "exactly using sympy. This is necessary since one Fourier coefficient\n", "is not sufficient to do this integral numerically. For the $u^1$\n", "case we do the integral numerically as part of the [inner()](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.inner.inner) product.\n", "With the correct right hand side assembled we can solve the\n", "linear system of equations" ] }, { "cell_type": "code", "execution_count": 5, "id": "62ab606c", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.054642Z", "iopub.status.busy": "2026-06-03T08:49:56.054567Z", "iopub.status.idle": "2026-06-03T08:49:56.065487Z", "shell.execute_reply": "2026-06-03T08:49:56.065265Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "u_hat = Function(T)\n", "Sol1 = la.SolverGeneric1ND(mats)\n", "u_hat = Sol1(f_hat, u_hat)\n", "\n", "# case k = 0\n", "u0_hat = Function(T0)\n", "if comm.Get_rank() == 0:\n", " Sol0 = la.SolverGeneric1ND(mats0)\n", " u0_hat = Sol0(f0_hat, u0_hat)\n", "comm.Bcast(u0_hat, root=0)" ] }, { "cell_type": "markdown", "id": "8923490d", "metadata": { "editable": true }, "source": [ "Having found the solution in spectral space all that is\n", "left is to transform it back to real space." ] }, { "cell_type": "code", "execution_count": 6, "id": "410b965c", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.066759Z", "iopub.status.busy": "2026-06-03T08:49:56.066683Z", "iopub.status.idle": "2026-06-03T08:49:56.068855Z", "shell.execute_reply": "2026-06-03T08:49:56.068633Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "# Transform back to real space. Broadcast 1D solution\n", "sl = T.local_slice(False)\n", "uj = u_hat.backward() + u0_hat.backward()[:, sl[1]]" ] }, { "cell_type": "markdown", "id": "4c5f0cee", "metadata": { "editable": true }, "source": [ "## Postprocessing\n", "The solution can now be compared with the exact solution\n", "through" ] }, { "cell_type": "code", "execution_count": 7, "id": "e8feed8f", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.070091Z", "iopub.status.busy": "2026-06-03T08:49:56.070022Z", "iopub.status.idle": "2026-06-03T08:49:56.072540Z", "shell.execute_reply": "2026-06-03T08:49:56.072331Z" }, "tags": [ "thebe-init" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error = 7.825801253188558e-15\n" ] } ], "source": [ "uq = Array(T, buffer=ue)\n", "print('Error =', np.linalg.norm(uj-uq))" ] }, { "cell_type": "markdown", "id": "fe9d2c70", "metadata": { "editable": true }, "source": [ "We can also get the gradient of the solution. For this we need\n", "a space without boundary conditions, and a vector space" ] }, { "cell_type": "code", "execution_count": 8, "id": "de99b93f", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.073655Z", "iopub.status.busy": "2026-06-03T08:49:56.073591Z", "iopub.status.idle": "2026-06-03T08:49:56.109553Z", "shell.execute_reply": "2026-06-03T08:49:56.109278Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "TT = T.get_orthogonal()\n", "V = VectorSpace(TT)" ] }, { "cell_type": "markdown", "id": "f090f9c5", "metadata": { "editable": true }, "source": [ "Notice that we do not have the solution in one single space\n", "in spectral space, since it is a combination of `u_hat` and\n", "`u0_hat`. For this reason we first transform the solution from\n", "real space `uj` to the new orthogonal space `TT`" ] }, { "cell_type": "code", "execution_count": 9, "id": "cf17f776", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.110813Z", "iopub.status.busy": "2026-06-03T08:49:56.110746Z", "iopub.status.idle": "2026-06-03T08:49:56.114709Z", "shell.execute_reply": "2026-06-03T08:49:56.114500Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "ua = Array(TT, buffer=uj)\n", "uh = ua.forward()" ] }, { "cell_type": "markdown", "id": "355a95e5", "metadata": { "editable": true }, "source": [ "With the solution as a [Function](https://shenfun.readthedocs.io/en/latest/shenfun.forms.html#shenfun.forms.arguments.Function) we can simply project\n", "the gradient to `V`" ] }, { "cell_type": "code", "execution_count": 10, "id": "79ac588b", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.115917Z", "iopub.status.busy": "2026-06-03T08:49:56.115843Z", "iopub.status.idle": "2026-06-03T08:49:56.153636Z", "shell.execute_reply": "2026-06-03T08:49:56.153392Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "dv = project(grad(uh), V)\n", "du = dv.backward()" ] }, { "cell_type": "markdown", "id": "24534131", "metadata": { "editable": true }, "source": [ "Note that the gradient `du` now contains the contravariant components\n", "of the covariant basis vector `b`. The basis vector `b` is not normalized\n", "(it's length is not unity), because we have set\n", "`config['basisvectors']='covariant'`. The basisvectors can\n", "be seen as" ] }, { "cell_type": "code", "execution_count": 11, "id": "9d570561", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.155005Z", "iopub.status.busy": "2026-06-03T08:49:56.154923Z", "iopub.status.idle": "2026-06-03T08:49:56.158110Z", "shell.execute_reply": "2026-06-03T08:49:56.157900Z" }, "tags": [ "thebe-init" ] }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\mathbf{b}_{\\theta} =- r \\sin{\\left(\\theta \\right)}\\,\\mathbf{i}+r \\cos{\\left(\\theta \\right)}\\,\\mathbf{j} \\\\ \\mathbf{b}_{r} =\\cos{\\left(\\theta \\right)}\\,\\mathbf{i}+\\sin{\\left(\\theta \\right)}\\,\\mathbf{j} \\\\ $" ], "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.display import Math\n", "Math(T.coors.latex_basis_vectors(symbol_names={theta: '\\\\theta', r: 'r'}))" ] }, { "cell_type": "markdown", "id": "367c0496", "metadata": { "editable": true }, "source": [ "and we see that they are given in terms of the Cartesian unit vectors.\n", "The gradient we have computed is (and yes, it should be $r^2$ because we\n", "do not have unit vectors)" ] }, { "cell_type": "markdown", "id": "4a3b34ad", "metadata": { "editable": true }, "source": [ "\n", "\n", "\n", "$$\n", "\\begin{equation}\n", "\\nabla u = \\underbrace{\\frac{1}{r^2}\\frac{\\partial u}{\\partial \\theta}}_{du[0]}\\mathbf{b}_{\\theta} + \\underbrace{\\frac{\\partial u}{\\partial r}}_{du[1]} \\mathbf{b}_{r}\n", "\\label{eq:gradu} \\tag{28}\n", "\\end{equation}\n", "$$" ] }, { "cell_type": "markdown", "id": "2a34bbe0", "metadata": { "editable": true }, "source": [ "Now it makes sense to plot the solution and its gradient in Cartesian\n", "instead of computational coordinates. To this end we need to\n", "project the gradient to a Cartesian basis" ] }, { "cell_type": "markdown", "id": "57f82ae3", "metadata": { "editable": true }, "source": [ "$$\n", "\\begin{align*}\n", "\\frac{\\partial u}{\\partial x} &= \\nabla u \\cdot \\mathbf{i},\\\\ \n", "\\frac{\\partial u}{\\partial y} &= \\nabla u \\cdot \\mathbf{j}.\n", "\\end{align*}\n", "$$" ] }, { "cell_type": "markdown", "id": "83087c4c", "metadata": { "editable": true }, "source": [ "We compute the Cartesian gradient by assembling ([28](#eq:gradu))\n", "on the computational grid" ] }, { "cell_type": "code", "execution_count": 12, "id": "9a44ca48", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.159465Z", "iopub.status.busy": "2026-06-03T08:49:56.159400Z", "iopub.status.idle": "2026-06-03T08:49:56.162347Z", "shell.execute_reply": "2026-06-03T08:49:56.162139Z" }, "tags": [ "thebe-init" ] }, "outputs": [], "source": [ "ui, vi = TT.local_mesh(True)\n", "b = T.coors.get_covariant_basis()\n", "bij = np.zeros((2, 2, N, N))\n", "for i in (0, 1):\n", " for j in (0, 1):\n", " bij[i, j] = sp.lambdify(psi, b[i, j])(ui, vi)\n", "gradu = du[0]*bij[0] + du[1]*bij[1]" ] }, { "cell_type": "markdown", "id": "35993847", "metadata": { "editable": true }, "source": [ "Because of the way the vectors are stored, `gradu[0]` will now\n", "contain $\\nabla u \\cdot \\mathbf{i}$ and\n", "`gradu[1]` will contain $\\nabla u \\cdot \\mathbf{j}$.\n", "\n", "To validate the gradient we compute the $L^2$ error norm" ] }, { "cell_type": "markdown", "id": "1135b831", "metadata": { "editable": true }, "source": [ "$$\n", "\\sqrt{\\int_{\\Omega} |\\nabla u - \\nabla u_e|^2 d\\sigma}\n", " = \\sqrt{\\int_{\\theta=0}^{2\\pi}\\int_{r=0}^{1} \\left(\\left(\\frac{1}{r^2}\\frac{\\partial u-u_e}{\\partial \\theta}\\right)^2\\mathbf{b}_{\\theta}\\cdot \\mathbf{b}_{\\theta} + \\left(\\frac{\\partial u-u_e}{\\partial r}\\right)^2\\mathbf{b}_{r}\\cdot \\mathbf{b}_{r} \\right)rd\\theta dr}\n", "$$" ] }, { "cell_type": "markdown", "id": "3ac72ba9", "metadata": { "editable": true }, "source": [ "implemented as" ] }, { "cell_type": "code", "execution_count": 13, "id": "7b048206", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.163533Z", "iopub.status.busy": "2026-06-03T08:49:56.163467Z", "iopub.status.idle": "2026-06-03T08:49:56.197241Z", "shell.execute_reply": "2026-06-03T08:49:56.197027Z" }, "tags": [ "thebe-init" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Error gradient 3.6038315677828117e-13\n" ] } ], "source": [ "gradue = Array(V, buffer=grad(u).tosympy(basis=ue, psi=psi))\n", "gij = T.coors.get_covariant_metric_tensor()\n", "ui, vi = TT.local_mesh(True, kind='uniform')\n", "# Evaluate metric on computational mesh\n", "gij[0, 0] = sp.lambdify(psi, gij[0, 0])(ui, vi)\n", "# Compute L2 error\n", "errorg = inner(1, (du[0]-gradue[0])**2*gij[0, 0]+ (du[1]-gradue[1])**2*gij[1, 1])\n", "print('Error gradient', np.sqrt(float(errorg)))" ] }, { "cell_type": "markdown", "id": "1d940058", "metadata": { "editable": true }, "source": [ "We now refine the solution to make it look better,\n", "and plot on the unit disc." ] }, { "cell_type": "code", "execution_count": 14, "id": "70bfca20", "metadata": { "editable": true, "execution": { "iopub.execute_input": "2026-06-03T08:49:56.198494Z", "iopub.status.busy": "2026-06-03T08:49:56.198422Z", "iopub.status.idle": "2026-06-03T08:49:56.813565Z", "shell.execute_reply": "2026-06-03T08:49:56.813328Z" }, "tags": [ "thebe-init" ] }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAGiCAYAAADHpO4FAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOydd3ib1dmHb23Jkry3EztxhuPsvUggAwJJIKyEsEehrAIFSgt8dDBKKVBaKHs1QNgrzAAJZJBJ9p6OZ7y3JVuyrPH9YeRI1rCWLdl57+vSlfid513nd57nPOc5IpvNZkNAQEBAQEAgYhGHuwACAgICAgIC3hHEWkBAQEBAIMIRxFpAQEBAQCDCEcRaQEBAQEAgwhHEWkBAQEBAIMIRxFpAQEBAQCDCEcRaQEBAQEAgwhHEWkBAQEBAIMIRxFpAQEBAQCDCEcT6NOWtt95CJBKxY8cOt+vPP/98BgwYENCxr7/++oD39cSsWbMYOXJkSI8pEol4+OGHO/4+dOgQDz/8MIWFhSE9TzgpLCxEJBLx1ltvdSzbvHkzDz/8MA0NDT4fZ8CAAVx//fUdf69btw6RSMS6detCVlYBAQHPCGItIPArhw4d4pFHHulTYp2WlsaWLVtYuHBhx7LNmzfzyCOP+CXWnRk/fjxbtmxh/PjxISilgIBAV0jDXQABAYHuQ6FQMHXq1JAfNzo6uluOKyAg4B7BshbwGZvNxksvvcTYsWNRqVTExcWxePFi8vPzu9xXJBJxxx13sGzZMnJyclCpVEycOJGtW7dis9l4+umnGThwIBqNhjlz5pCXl+f2ONu3b2fmzJlERUWRnZ3NP//5T6xWq9M2xcXFXH311SQnJ6NQKMjNzeWZZ55x2c6Rt956iyVLlgAwe/ZsRCJRh/vY7vJ19wulu9/eNdHZsnfncrZ3C3R1Pzq7wR9++GH++Mc/AjBw4MCO67Afu62tjT/96U+kpqYSFRXFjBkz2LZtm0tZ3ZUpPz+fyy+/nPT0dBQKBSkpKcydO5c9e/Y47fv+++8zbdo0NBoNGo2GsWPH8uabbwZ83wQETgcEy/o0x2KxYDabXZa7m4ztlltu4a233uKuu+7iySefpK6ujkcffZTp06ezd+9eUlJSvJ7rm2++Yffu3fzzn/9EJBJx//33s3DhQq677jry8/N54YUXaGxs5N577+XSSy9lz549iESijv0rKiq46qqr+MMf/sDf/vY3VqxYwYMPPkh6ejrXXnstANXV1UyfPh2TycRjjz3GgAED+Oabb7jvvvs4ceIEL730ktuyLVy4kH/84x/83//9Hy+++GKHe3fQoEEoFAq2bNnitP3x48e58cYbGTFihPcb3I34cj86c9NNN1FXV8fzzz/P559/TlpaGgDDhw8H4Le//S3vvPMO9913H+eccw4HDhzgkksuQafTdVmeBQsWYLFYeOqpp8jMzKSmpobNmzc7udv/+te/8thjj3HJJZfwhz/8gZiYGA4cOEBRUVHwN0RAoC9jEzgtWbZsmQ3w+svKyurYfsuWLTbA9swzzzgdp6SkxKZSqWx/+tOfOpZdd911TvvabDYbYEtNTbXp9fqOZV988YUNsI0dO9ZmtVo7lj/77LM2wLZv376OZWeddZYNsP3yyy9Oxx0+fLjt3HPP7fj7gQcecLvdbbfdZhOJRLajR486lelvf/tbx9+ffPKJDbCtXbvW842z2WyVlZW27Oxs24gRI2z19fVet/UH+zMpKChwWr527VqXcvl6PwoKCmyAbdmyZR3Lnn76abfnOXz4sA2w3XPPPU7L33vvPRtgu+666zyWqaamxgbYnn32WY/Xl5+fb5NIJLarrrrK800QEBBwi+AGP81555132L59u8tvxowZTtt98803iEQirr76asxmc8cvNTWVMWPG+BQVPHv2bNRqdcffubm5AMyfP9/JgrYv72xtpaamMnnyZKdlo0ePdtpuzZo1DB8+3GW766+/HpvNxpo1a7ospzeam5tZuHAhRqOR7777jtjYWI/b2mw2p3vlzoMRDL7cD39Yu3YtAFdddZXT8ssuuwyp1LsTLj4+nkGDBvH000/z73//m927d7t0O6xevRqLxcLvfve7gMonIHA6I4j1aU5ubi4TJ050+cXExDhtV1lZic1mIyUlBZlM5vTbunUrNTU1XZ4rPj7e6W+5XO51udFodFqekJDgckyFQoHBYOj4u7a2tsO160h6enrH+kAxm80sXryYY8eOsXLlSvr37+91+/Xr17vcq1BGmvtyP/zBfm9SU1OdlkulUrfnckQkEvHTTz9x7rnn8tRTTzF+/HiSkpK46667Olzo1dXVAPTr1y+g8gkInM4IfdYCPpGYmIhIJGLDhg0oFAqX9e6WhYOEhATKy8tdlpeVlQHt1xEoN998Mz/99BMrV65kzJgxXW4/YcIEtm/f7rTM3mhwh1KpBKC1tdVpuS8NoVBgF+SKigoyMjI6lpvNZp8aOVlZWR2BYseOHePjjz/m4YcfxmQy8corr5CUlATAyZMnu2zoCAgIOCNY1gI+cf7552Oz2SgtLXVriY8aNSrcRQRg7ty5HDp0iF27djktf+eddxCJRMyePdvjvvYGhzvL9M9//jPLli3jjTfe4Oyzz/apLFqt1uU+2b0G7rBHlu/bt89p+VdffeXT+XzF03XOmjULgPfee89p+ccff+y3C3/o0KH8+c9/ZtSoUR3PYt68eUgkEl5++eUASy4gcPoiWNYCPnHGGWdw8803c8MNN7Bjxw7OPPNM1Go15eXlbNy4kVGjRnHbbbeFu5jcc889vPPOOyxcuJBHH32UrKwsvv32W1566SVuu+02hg4d6nFfe4a01157Da1Wi1KpZODAgaxZs4bHH3+cxYsXM3ToULZu3dqxj0KhYNy4cSEp+6RJk8jJyeG+++7DbDYTFxfHihUr2LhxY0iOb8fesHruuee47rrrkMlk5OTkkJuby9VXX82zzz6LTCbj7LPP5sCBA/zrX/8iOjra6zH37dvHHXfcwZIlSxgyZAhyuZw1a9awb98+HnjgAaC9MfJ///d/PPbYYxgMBq644gpiYmI4dOgQNTU1PPLIIyG9TgGBvoQg1gI+8+qrrzJ16lReffVVXnrpJaxWK+np6ZxxxhkugU7hIikpic2bN/Pggw/y4IMP0tTURHZ2Nk899RT33nuv130HDhzIs88+y3PPPcesWbOwWCwsW7aso5/5008/5dNPP3XaJysrK2T90BKJhK+//po77riDW2+9FYVCweWXX84LL7zglIEsWGbNmsWDDz7I22+/zeuvv47VamXt2rXMmjWLN998k5SUFN566y3++9//MnbsWD777DMuv/xyr8dMTU1l0KBBvPTSS5SUlCASicjOzuaZZ57hzjvv7Nju0UcfZciQITz//PNcddVVSKVShgwZwl133RWy6xMQ6IuIbDY3A2oFBAQEBAQEIgahz1pAQEBAQCDCEcRaQEBAQEAgwhHEWkBAQEBAIMIRxFpAQEBAQMBHfv75Zy644ALS09MRiUR88cUXXe6zfv16JkyYgFKpJDs7m1deecXv8wpiLSAgICAg4CPNzc2MGTOGF154waft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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "u_hat2 = u_hat.refine([N*3, N*3])\n", "u0_hat2 = u0_hat.refine([1, N*3])\n", "sl = u_hat2.function_space().local_slice(False)\n", "ur = u_hat2.backward() + u0_hat2.backward()[:, sl[1]]\n", "\n", "# Wrap periodic plot around since it looks nicer\n", "xx, yy = u_hat2.function_space().local_cartesian_mesh()\n", "xp = np.vstack([xx, xx[0]])\n", "yp = np.vstack([yy, yy[0]])\n", "up = np.vstack([ur, ur[0]])\n", "# For vector no need to wrap around and no need to refine:\n", "xi, yi = TT.local_cartesian_mesh()\n", "\n", "# plot\n", "import matplotlib.pyplot as plt\n", "plt.figure()\n", "plt.contourf(xp, yp, up)\n", "plt.quiver(xi, yi, gradu[0], gradu[1], scale=40, pivot='mid', color='white')\n", "plt.colorbar()\n", "plt.title('Helmholtz - unitdisc')\n", "plt.xticks([])\n", "plt.yticks([])\n", "plt.axis('off')\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "709ed573", "metadata": { "editable": true }, "source": [ "\n", "\n", "1. **J. Shen**. Efficient Spectral-Galerkin Methods III: Polar and Cylindrical Geometries, *SIAM Journal on Scientific Computing*, 18(6), pp. 1583-1604, [doi: 10.1137/S1064827595295301](https://dx.doi.org/10.1137/S1064827595295301), 1997." ] } ], "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.12.3" } }, "nbformat": 4, "nbformat_minor": 5 }