{ "cells": [ { "cell_type": "markdown", "id": "bf69bcf1-9d66-4184-8950-d3a55ec15e12", "metadata": {}, "source": [ "# Spectral Element Method\n", "\n", "\n", "\\begin{align*}\n", "\\begin{cases}\n", "u_t = a(t, x)u_{xx} + b(t, x) u_x + c(t, x) u \\qquad \\forall x\\in [L, R], t\\in[0, T]\\\\\n", "u(t, L) = u_L(t)\\\\\n", "u(t, R) = u_R(t)\\\\\n", "u(0, x) = u_0(x)\n", "\\end{cases}.\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\int_L^R u_t(t, x)\\phi(x)\\,dx =& \\int_L^R a(t, x)u_{xx}(t, x)\\phi(x)\\,dx \\nonumber\\\\\n", "&+ \\int_L^R b(t, x) u_x(t, x)\\phi(x)\\,dx \\nonumber\\\\\n", "&+ \\int_L^R c(t, x) u(t, x)\\phi(x)\\,dx.\\qquad\\label{eq:weakformLR}\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "\\int_L^R f(t, x)\\,dx = \\frac{d}2 \\int_{-1}^1 f(t, x(\\xi))\\,d\\xi.\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2\\int_{-1}^1 u_t(t, \\xi)\\phi(\\xi)\\,d\\xi =& \\frac2d\\int_{-1}^1 a(t, \\xi)u_{\\xi\\xi}(t, \\xi)\\phi(\\xi)\\,d\\xi \\nonumber\\\\\n", "&+ \\int_{-1}^1 b(t, \\xi) u_\\xi(t, \\xi)\\phi(\\xi)\\,d\\xi \\nonumber\\\\\n", "&+ \\frac{d}2\\int_{-1}^1 c(t, \\xi) u(t,\n", "\\xi)\\phi(\\xi)\\,d\\xi.\\qquad\\label{eq:weakform}\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\int_{-1}^1 a u_{\\xi\\xi} \\phi\\,d\\xi &= u_{\\xi\\xi}a\\phi\\Big|_{-1}^1 - \\int_{-1}^1 u_{\\xi}(a\\phi)_{\\xi}\\,d\\xi\\\\\n", "&= u_{\\xi\\xi}a\\phi\\Big|_{-1}^1 - \\int_{-1}^1 u_{\\xi}a\\phi^\\prime\\,d\\xi - \\int_{-1}^1 u_{\\xi}a_{\\xi}\\phi\\,d\\xi\\\\\n", "&= - \\int_{-1}^1 u_{\\xi}a\\phi^\\prime\\,d\\xi - \\int_{-1}^1 u_{\\xi}a_{\\xi}\\phi\\,d\\xi,\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\int_{-1}^1 a u_{\\xi\\xi} \\phi\\,d\\xi = - \\int_{-1}^1 u_{\\xi}a\\phi^\\prime\\,d\\xi - \\frac{d}2\\int_{-1}^1 u_{\\xi}a_x\\phi\\,d\\xi.\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2\\int_{-1}^1 u_t\\phi\\,d\\xi = -\\frac2d\\int_{-1}^1\n", "au_{\\xi}\\phi^\\prime\\,d\\xi + \\int_{-1}^1 \\left(b-a_x\\right)\n", "u_\\xi\\phi\\,d\\xi + \\frac{d}2\\int_{-1}^1 c\n", "u\\phi\\,d\\xi.\\label{eq:bypart}\n", "\\end{align*}\n", "\n", "\n", "\n", "\n", "\\begin{align*}\n", "u(t, \\xi) &\\approx \\sum_{p=0}^N U_p(t)\\ell_p(\\xi),\\\\\n", "\\phi(\\xi) &\\approx \\sum_{i=0}^N \\phi_i\\ell_i(\\xi),\\\\\n", "\\int_{-1}^1 f(\\xi)\\,d\\xi &\\approx \\sum_{n=0}^N f(\\xi_n)w_n,\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2~\\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N \\dot U_p(t)\\ell_p(\\xi_n)\\phi_i\\ell_i(\\xi_n)w_n =& -\\frac2d~ \\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N U_p(t)\\ell_p^\\prime(\\xi_n)a(t, \\xi_n)\\phi_i\\ell_i^\\prime(\\xi_n)w_n \\nonumber\\\\\n", "&+~ \\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N U_p(t)\\ell_p^\\prime(\\xi_n)(b-a_x)(t, \\xi_n)\\phi_i\\ell_i(\\xi_n)w_n \\nonumber\\\\\n", "&+~ \\frac{d}2~\\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N U_p(t)\\ell_p(\\xi_n)c(t, \\xi_n)\\phi_i\\ell_i(\\xi_n)w_n \\nonumber\\\\\n", "\\label{eq:fullapprox}\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "\\ell_p(\\xi_n) =\n", "\\begin{cases}\n", "1 &\\mbox{ if }p=n\\\\\n", "0 &\\mbox{ if }p\\ne n\n", "\\end{cases}.\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2~\\sum_{i=0}^N \\dot\n", "U_i(t)\\ell_i(\\xi_i)\\phi_i\\ell_i(\\xi_i)w_i = \\frac{d}2~\n", "\\sum_{i=0}^N \\dot U_i(t)\\phi_iw_i.\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2~ \\sum_{i=0}^N \\dot U_i(t)\\phi_iw_i =& -\\frac2d~ \\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N U_p(t)\\ell_p^\\prime(\\xi_n)a(t, \\xi_n)\\phi_i\\ell_i^\\prime(\\xi_n)w_n \\nonumber\\\\\n", "&+~ \\sum_{p=0}^N\\sum_{i=0}^N U_p(t)\\ell_p^\\prime(\\xi_i)(b-a_x)(t, \\xi_i)\\phi_iw_i \\nonumber\\\\\n", "&+~ \\frac{d}2~\\sum_{i=0}^N U_i(t)c(t, \\xi_n)\\phi_iw_i \\nonumber\\\\\n", "=& -\\frac2d~ \\sum_{p=0}^N\\sum_{i=0}^N\\sum_{n=0}^N U_pD_{np}A_i\\phi_iD_{ni}w_n \\nonumber\\\\\n", "&+~ \\sum_{p=0}^N\\sum_{i=0}^N U_pD_{ip}(b-a_x)_i\\phi_iw_i \\nonumber\\\\\n", "&+~ \\frac{d}2~\\sum_{i=0}^N U_iC_i\\phi_iw_i, \\label{eq:phiieq}\n", "\\end{align*}\n", "\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}{2}~\\dot U_i(t) w_i =& -\\frac2d~ \\sum_{p=0}^N\\sum_{n=0}^N U_p(t)D_{np}A_iD_{ni}w_n \\nonumber\\\\\n", "&+~ \\sum_{p=0}^N U_p(t)D_{ip}(b-a_x)_iw_i\\nonumber\\\\\n", "&+~ \\frac{d}2~ U_i(t)C_iw_i\\qquad \\forall i=1, 2,\n", "\\ldots, N-1. \\label{eq:ODEsummation}\n", "\\end{align*}\n", "\n", "\n", "\n", "With the same notation as in (\\ref{eq:ODEsummation}), we have\n", "\n", "\n", "$\\sum_{p=0}^N\\sum_{n=0}^N U_p(t)D_{np}A_i\\phi_iD_{ni}w_n$ is the $i$-th element of the vector $D^TAWD\\vec U$;\n", "\n", "$\\sum_{p=0}^N U_p(t)D_{ip}(b-a_x)_i\\phi_iw_i$ is the $i$-th element of the vector $(B-A_x)WD\\vec U$, where\n", "\n", "\\begin{align*}\n", "&\\vec U = \\left(\n", "\\begin{array}{c}\n", "U_0(t)\\\\\n", "U_1(t)\\\\\n", "U_2(t)\\\\\n", "\\vdots\\\\\n", "U_N(t)\n", "\\end{array}\n", "\\right), A_x = \\left(\n", "\\begin{array}{ccccc}\n", "a_x(t, \\xi_0) & & & & 0 \\\\\n", "& a_x(t, \\xi_1)& & & \\\\\n", "& & a_x(t, \\xi_2)& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & a_x(t, \\xi_N)\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&A = \\left(\n", "\\begin{array}{ccccc}\n", "a(t, \\xi_0) & & & & 0 \\\\\n", "& a(t, \\xi_1)& & & \\\\\n", "& & a(t, \\xi_2)& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & a(t, \\xi_N)\n", "\\end{array}\n", "\\right), B = \\left(\n", "\\begin{array}{ccccc}\n", "b(t, \\xi_0) & & & & 0 \\\\\n", "& b(t, \\xi_1)& & & \\\\\n", "& & b(t, \\xi_2)& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & b(t, \\xi_N)\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&C = \\left(\n", "\\begin{array}{ccccc}\n", "c(t, \\xi_0) & & & & 0 \\\\\n", "& c(t, \\xi_1)& & & \\\\\n", "& & c(t, \\xi_2)& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & c(t, \\xi_N)\n", "\\end{array}\n", "\\right), W = \\left(\n", "\\begin{array}{ccccc}\n", "w_0 & & & & 0 \\\\\n", "& w_1 & & & \\\\\n", "& & w_2 & & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & w_N\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&D = \\left(\n", "\\begin{array}{ccccc}\n", " D_{00} & D_{01} & D_{02} & \\cdots & D_{0N} \\\\\n", " D_{10} & D_{11} & D_{12} & \\cdots & D_{1N} \\\\\n", " D_{20} & D_{21} & D_{22} & \\cdots & D_{2N} \\\\\n", "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " D_{N0} & D_{N1} & D_{N2} & \\cdots & D_{NN}\n", "\\end{array}\n", "\\right) = \\left(\n", "\\begin{array}{ccccc}\n", " \\ell_0^\\prime(\\xi_0) & \\ell_1^\\prime(\\xi_0) & \\ell_2^\\prime(\\xi_0) & \\cdots & \\ell_N^\\prime(\\xi_0) \\\\\n", " \\ell_0^\\prime(\\xi_1) & \\ell_1^\\prime(\\xi_1) & \\ell_2^\\prime(\\xi_1) & \\cdots & \\ell_N^\\prime(\\xi_1) \\\\\n", " \\ell_0^\\prime(\\xi_2) & \\ell_1^\\prime(\\xi_2) & \\ell_2^\\prime(\\xi_2) & \\cdots & \\ell_N^\\prime(\\xi_2) \\\\\n", "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " \\ell_0^\\prime(\\xi_N) & \\ell_1^\\prime(\\xi_N) & \\ell_2^\\prime(\\xi_N) & \\cdots & \\ell_N^\\prime(\\xi_N)\n", "\\end{array}\n", "\\right).\n", "\\end{align*}\n", "\n", "\n", "\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d}2 W\\dot{\\vec{U}} = \\left( -\\frac2d D^TAWD + \\left(B-A_x\\right)WD + \\frac{d}2CWD\\right) \\vec U.\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\left(\\int_{x_0}^{x_1} + \\int_{x_1}^{x_2} + \\int_{x_2}^{x_3}\\right) u_t(t, x)\\phi(x)\\,dx =& \\left(\\int_{x_0}^{x_1} + \\int_{x_1}^{x_2} + \\int_{x_2}^{x_3}\\right) a(t, x)u_{xx}(t, x)\\phi(x)\\,dx \\nonumber\\\\\n", "&+ \\left(\\int_{x_0}^{x_1} + \\int_{x_1}^{x_2} + \\int_{x_2}^{x_3}\\right) b(t, x) u_x(t, x)\\phi(x)\\,dx \\nonumber\\\\\n", "&+ \\left(\\int_{x_0}^{x_1} + \\int_{x_1}^{x_2} + \\int_{x_2}^{x_3}\\right) c(t, x) u(t, x)\\phi(x)\\,dx.\\qquad\\qquad\\label{eq:weakformLRelem}\n", "\\end{align*}\n", "\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\int_{x_0}^{x_1} u_t(t, x)\\phi^{(1)}(x)\\,dx =& \\int_{x_0}^{x_1} a(t, x)u_{xx}(t, x)\\phi^{(1)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_0}^{x_1} b(t, x) u_x(t, x)\\phi^{(1)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_0}^{x_1} c(t, x) u(t, x)\\phi^{(1)}(x)\\,dx,\\label{eq:weakform1}\\\\\n", "\\int_{x_1}^{x_2} u_t(t, x)\\phi^{(2)}(x)\\,dx =& \\int_{x_1}^{x_2} a(t, x)u_{xx}(t, x)\\phi^{(2)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_1}^{x_2} b(t, x) u_x(t, x)\\phi^{(2)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_1}^{x_2} c(t, x) u(t, x)\\phi^{(2)}(x)\\,dx,\\nonumber\\\\\n", "\\int_{x_2}^{x_3} u_t(t, x)\\phi^{(3)}(x)\\,dx =& \\int_{x_2}^{x_3} a(t, x)u_{xx}(t, x)\\phi^{(3)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_2}^{x_3} b(t, x) u_x(t, x)\\phi^{(3)}(x)\\,dx \\nonumber\\\\\n", "&+ \\int_{x_2}^{x_3} c(t, x) u(t, x)\\phi^{(3)}(x)\\,dx,\\nonumber\n", "\\end{align*}\n", "where we write\n", "\\begin{align*}\n", "\\phi(x) = \\begin{cases}\n", "\\phi^{(1)}(x) \\quad x\\in[x_0, x_1]\\\\\n", "\\phi^{(2)}(x) \\quad x\\in[x_1, x_2]\\\\\n", "\\phi^{(3)}(x) \\quad x\\in[x_2, x_3]\\\\\n", "\\end{cases}. \n", "\\end{align*}\n", "Note that at the interface we have $\\phi^{(1)}(x_1) = \\phi^{(2)}(x_1)$, $\\phi^{(2)}(x_2) = \\phi^{(3)}(x_2)$. \n", "\n", "\n", "\n", "\\begin{align*}\n", "u(t, \\xi) \\approx& \\sum_{p=0}^{N_1} U_p^{(1)}(t)\\ell_p^{(1)}(\\xi^{(1)}),\\\\\n", "\\phi^{(1)}(\\xi) \\approx& \\sum_{i=0}^{N_1} \\phi_i^{(1)}\\ell_i^{(1)}(\\xi^{(1)}),\\\\\n", "\\int_{-1}^1 f(\\xi)\\,d\\xi \\approx& \\sum_{n=0}^{N_1}f(\\xi_n)w_n^{(1)},\n", "\\end{align*}\n", "\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\frac{d_1}2~ \\sum_{i=0}^{N_1} \\dot U_i^{(1)}(t)\\phi_i^{(1)}w_i^{(1)} =& -\\frac2{d_1}~ \\sum_{p=0}^{N_1}\\sum_{i=0}^{N_1}\\sum_{n=0}^{N_1} U_p^{(1)}D_{np}^{(1)}A_i^{(1)}\\phi_i^{(1)}D_{ni}^{(1)}w_n^{(1)} \\nonumber\\\\\n", "&+~ \\sum_{p=0}^{N_1}\\sum_{i=0}^{N_1} U_p^{(1)}D_{ip}^{(1)}(b^{(1)}-a_x^{(1)})_i\\phi_i^{(1)}w_i^{(1)} \\nonumber\\\\\n", "&+~ \\frac{d_1}2~\\sum_{i=0}^{N_1}\n", "U_i^{(1)}C_i^{(1)}\\phi_i^{(1)}w_i^{(1)}, \\label{eq:phiieqelem1}\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "&\\frac{d_1}2~ \\sum_{i=0}^{N_1} \\dot U_i^{(1)}(t)\\phi_i^{(1)}w_i^{(1)} + \\frac{d_2}2~ \\sum_{i=0}^{N_2} \\dot U_i^{(2)}(t)\\phi_i^{(2)}w_i^{(2)} + \\frac{d_3}2~ \\sum_{i=0}^{N_3} \\dot U_i^{(3)}(t)\\phi_i^{(3)}w_i^{(3)}\\nonumber\\\\\n", "&= \\left(-\\frac2{d_1}~ \\sum_{p=0}^{N_1}\\sum_{i=0}^{N_1}\\sum_{n=0}^{N_1} U_p^{(1)}D_{np}^{(1)}A_i^{(1)}\\phi_i^{(1)}D_{ni}^{(1)}w_n^{(1)} \\right.\\nonumber\\\\\n", "&\\qquad\\left. +~ \\sum_{p=0}^{N_1}\\sum_{i=0}^{N_1} U_p^{(1)}D_{ip}^{(1)}(b^{(1)}-a_x^{(1)})_i\\phi_i^{(1)}w_i^{(1)} +~ \\frac{d_1}2~\\sum_{i=0}^{N_1} U_i^{(1)}C_i^{(1)}\\phi_i^{(1)}w_i^{(1)}\\right)\\nonumber\\\\\n", "&\\quad+ \\left(-\\frac2{d_2}~ \\sum_{p=0}^{N_2}\\sum_{i=0}^{N_2}\\sum_{n=0}^{N_2} U_p^{(2)}D_{np}^{(2)}A_i^{(2)}\\phi_i^{(2)}D_{ni}^{(2)}w_n^{(2)} \\right.\\nonumber\\\\\n", "&\\qquad\\quad\\left. +~ \\sum_{p=0}^{N_2}\\sum_{i=0}^{N_2} U_p^{(2)}D_{ip}^{(2)}(b^{(2)}-a_x^{(2)})_i\\phi_i^{(2)}w_i^{(2)} +~ \\frac{d_2}2~\\sum_{i=0}^{N_2} U_i^{(2)}C_i^{(2)}\\phi_i^{(2)}w_i^{(2)}\\right)\\nonumber\\\\\n", "&\\quad+ \\left(-\\frac2{d_3}~ \\sum_{p=0}^{N_3}\\sum_{i=0}^{N_3}\\sum_{n=0}^{N_3} U_p^{(3)}D_{np}^{(3)}A_i^{(3)}\\phi_i^{(3)}D_{ni}^{(3)}w_n^{(3)} \\right.\\nonumber\\\\\n", "&\\qquad\\quad\\left. +~ \\sum_{p=0}^{N_3}\\sum_{i=0}^{N_3}\n", "U_p^{(3)}D_{ip}^{(3)}(b^{(3)}-a_x^{(3)})_i\\phi_i^{(3)}w_i^{(3)} +~\\frac{d_3}2~\\sum_{i=0}^{N_3}\n", "U_i^{(3)}C_i^{(3)}\\phi_i^{(3)}w_i^{(3)}\\right).\\qquad\\qquad\\label{eq:fullsem}\n", "\\end{align*}\n", "and the identities at the interface translate to $\\phi_{N_1}^{(1)} = \\phi_{0}^{(2)}$, $\\phi_{N_2}^{(2)} = \\phi_{0}^{(3)}$. \n", "\n", "\n", "Setting $\\phi_{i^*}^{(1)} = 1$ for a specific $i^*$ and all other $\\phi_{i}^{(j)}$'s to zero: \n", "\\begin{align*}\n", "\\frac{d_1}{2}~\\dot U_{i^*}^{(1)}(t) w_{i^*}^{(1)} =& -\\frac2{d_1}~ \\sum_{p=0}^{N_1}\\sum_{n=0}^{N_1} U_p^{(1)}(t)D_{np}^{(1)}A_{i^*}^{(1)}D_{n{i^*}}^{(1)}w_n^{(1)} \\nonumber\\\\\n", "&+~ \\sum_{p=0}^{N_1} U_p^{(1)}(t)D_{{i^*}p}^{(1)}(b-a_x)_{i^*}^{(1)}w_{i^*}^{(1)}\\nonumber\\\\\n", "&+~ \\frac{d_1}2~U_{i^*}^{(1)}(t)C_{i^*}^{(1)}w_{i^*}^{(1)}.\\label{eq:ODEe1}\n", "\\end{align*}\n", "Similarly\n", "\\begin{align*}\n", "\\frac{d_2}{2}~\\dot U_{i}^{(2)}(t) w_{i}^{(2)} =& -\\frac2{d_2}~ \\sum_{p=0}^{N_2}\\sum_{n=0}^{N_2} U_p^{(2)}(t)D_{np}^{(2)}A_{i}^{(2)}D_{n{i}}^{(2)}w_n^{(2)} \\nonumber\\\\\n", "&+~ \\sum_{p=0}^{N_2} U_p^{(2)}(t)D_{{i}p}^{(2)}(b-a_x)_{i}^{(2)}w_{i}^{(2)}\\nonumber\\\\\n", "&+~ \\frac{d_2}2~ U_{i}^{(2)}(t)C_{i}^{(2)}w_{i}^{(2)},\\qquad\\forall i=1, 2, \\ldots, N_2-1, \\label{eq:ODEe2}\\\\\n", "\\frac{d_3}{2}~\\dot U_{i}^{(3)}(t) w_{i}^{(3)} =& -\\frac2{d_3}~ \\sum_{p=0}^{N_3}\\sum_{n=0}^{N_3} U_p^{(3)}(t)D_{np}^{(3)}A_{i}^{(3)}D_{n{i}}^{(3)}w_n^{(3)} \\nonumber\\\\\n", "&+~ \\sum_{p=0}^{N_3} U_p^{(3)}(t)D_{{i}p}^{(3)}(b-a_x)_{i}^{(3)}w_{i}^{(3)}\\nonumber\\\\\n", "&+~ \\frac{d_3}2~U_{i}^{(3)}(t)C_{i}^{(3)}w_{i}^{(3)}, \\qquad\\forall i=1, 2, \\ldots, N_3-1.\\label{eq:ODEe3}\n", "\\end{align*}\n", "\n", "\n", "Setting $\\phi_{N_1}^{(1)} = \\phi_{0}^{(2)} = 1$, all other $\\phi_{i}^{(j)}$'s to zero: \n", "\\begin{align*}\n", "&\\frac{d_1}2~ \\dot U_{N_1}^{(1)}(t)w_{N_1}^{(1)} + \\frac{d_2}2~ \\dot U_0^{(2)}(t)w_0^{(2)}\\nonumber\\\\\n", "&= \\left(-\\frac2{d_1}~ \\sum_{p=0}^{N_1}\\sum_{n=0}^{N_1} U_p^{(1)}D_{np}^{(1)}A_{N_1}^{(1)}D_{n{N_1}}^{(1)}w_n^{(1)} \\right.\\nonumber\\\\\n", "&\\qquad\\left. +~ \\sum_{p=0}^{N_1} U_p^{(1)}D_{{N_1}p}^{(1)}(b^{(1)}-a_x^{(1)})_{N_1}w_{N_1}^{(1)} +~ \\frac{d_1}2~ U_{N_1}^{(1)}C_{N_1}^{(1)}w_{N_1}^{(1)}\\right)\\nonumber\\\\\n", "&\\quad+ \\left(-\\frac2{d_2}~ \\sum_{p=0}^{N_2}\\sum_{n=0}^{N_2} U_p^{(2)}D_{np}^{(2)}A_0^{(2)}D_{n0}^{(2)}w_n^{(2)} \\right.\\nonumber\\\\\n", "&\\qquad\\quad\\left. +~ \\sum_{p=0}^{N_2}\n", "U_p^{(2)}D_{0p}^{(2)}(b^{(2)}-a_x^{(2)})_0\\phi_0^{(2)}w_0^{(2)} +~\n", "\\frac{d_2}2~\n", "U_0^{(2)}C_0^{(2)}\\phi_0^{(2)}w_0^{(2)}\\right),\\label{eq:ODEx1}\n", "\\end{align*}\n", "\n", "\n", "\n", "Setting $\\phi_{N_2}^{(2)} = \\phi_{0}^{(3)} = 1$, all other $\\phi_{i}^{(j)}$'s to zero: \n", "\\begin{align*}\n", "&\\frac{d_2}2~ \\dot U_{N_2}^{(2)}(t)w_{N_2}^{(2)} + \\frac{d_3}2~ \\dot U_0^{(3)}(t)w_0^{(3)}\\nonumber\\\\\n", "&= \\left(-\\frac2{d_2}~ \\sum_{p=0}^{N_2}\\sum_{n=0}^{N_2} U_p^{(2)}D_{np}^{(2)}A_{N_2}^{(2)}D_{n{N_2}}^{(2)}w_n^{(2)} \\right.\\nonumber\\\\\n", "&\\qquad\\left. +~ \\sum_{p=0}^{N_2} U_p^{(2)}D_{{N_2}p}^{(2)}(b^{(2)}-a_x^{(2)})_{N_2}w_{N_2}^{(2)} +~ \\frac{d_2}2~ U_{N_2}^{(2)}C_{N_2}^{(2)}w_{N_2}^{(2)}\\right)\\nonumber\\\\\n", "&\\quad+ \\left(-\\frac2{d_3}~ \\sum_{p=0}^{N_3}\\sum_{n=0}^{N_3} U_p^{(3)}D_{np}^{(3)}A_0^{(3)}D_{n0}^{(3)}w_n^{(3)} \\right.\\nonumber\\\\\n", "&\\qquad\\quad\\left. +~ \\sum_{p=0}^{N_3}\n", "U_p^{(3)}D_{0p}^{(3)}(b^{(3)}-a_x^{(3)})_0\\phi_0^{(3)}w_0^{(3)} +~\n", "\\frac{d_3}2~\n", "U_0^{(3)}C_0^{(3)}\\phi_0^{(3)}w_0^{(3)}\\right),\\label{eq:ODEx2}\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\Omega \\dot{\\vec U}(t) = M \\vec U(t),\n", "\\end{align*}\n", "\n", "\n", "\n", "(Pictures that doesn't display on Jupyter)\n", "where the overlapping region is the sum of two elements form two\n", "matrices, For example the overlapping region of $M^{(1)}$\n", "and $M^{(2)}$ is $M^{(1)}_{N_1 N_1} + M^{(2)}_{0 0}$. And\n", "\n", "\\begin{align*}\n", "M^{(i)} = \\left( -\\frac2{d_i} (D^{(i)})^TA^{(i)}W^{(i)}D^{(i)} +\n", "\\left(B^{(i)}-A_x^{(i)}\\right)W^{(i)}D^{(i)} +\n", "\\frac{d_i}2C^{(i)}W^{(i)}D^{(i)}\\right),\n", "\\end{align*}\n", "\n", "\n", "\\begin{align*}\n", "&A_x^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", "a_x(t, \\xi_0^{(i)}) & & & & 0 \\\\\n", "& a_x(t, \\xi_1^{(i)})& & & \\\\\n", "& & a_x(t, \\xi_2^{(i)})& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & a_x(t, \\xi_{N_i}^{(i)})\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&A^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", "a(t, \\xi_0^{(i)}) & & & & 0 \\\\\n", "& a(t, \\xi_1^{(i)})& & & \\\\\n", "& & a(t, \\xi_2^{(i)})& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & a(t, \\xi_{N_i}^{(i)})\n", "\\end{array}\n", "\\right), B^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", "b(t, \\xi_0^{(i)}) & & & & 0 \\\\\n", "& b(t, \\xi_1^{(i)})& & & \\\\\n", "& & b(t, \\xi_2^{(i)})& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & b(t, \\xi_{N_i}^{(i)})\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&C^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", "c(t, \\xi_0^{(i)}) & & & & 0 \\\\\n", "& c(t, \\xi_1^{(i)})& & & \\\\\n", "& & c(t, \\xi_2^{(i)})& & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & c(t, \\xi_{N_i}^{(i)})\n", "\\end{array}\n", "\\right), W^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", "w_0^{(i)} & & & & 0 \\\\\n", "& w_1^{(i)} & & & \\\\\n", "& & w_2^{(i)} & & \\\\\n", "& & & \\ddots & \\\\\n", "0 & & & & w_{N_i}^{(i)}\n", "\\end{array}\n", "\\right), \\\\\\\\\n", "&D^{(i)} = \\left(\n", "\\begin{array}{ccccc}\n", " D_{00}^{(i)} & D_{01}^{(i)} & D_{02}^{(i)} & \\cdots & D_{0{N_i}}^{(i)} \\\\\n", " D_{10}^{(i)} & D_{11}^{(i)} & D_{12}^{(i)} & \\cdots & D_{1{N_i}}^{(i)} \\\\\n", " D_{20}^{(i)} & D_{21}^{(i)} & D_{22}^{(i)} & \\cdots & D_{2{N_i}}^{(i)} \\\\\n", "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " D_{{N_i}0}^{(i)} & D_{{N_i}1}^{(i)} & D_{{N_i}2}^{(i)} & \\cdots & D_{{N_i}{N_i}}^{(i)}\n", "\\end{array}\n", "\\right) = \\left(\n", "\\begin{array}{ccccc}\n", " \\frac{d}{d\\xi^{(i)}}\\ell_0^{(i)}(\\xi_0^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_1^{(i)}(\\xi_0^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_2^{(i)}(\\xi_0^{(i)}) & \\cdots & \\frac{d}{d\\xi^{(i)}}\\ell_{N_i}^{(i)}(\\xi_0^{(i)}) \\\\\n", " \\frac{d}{d\\xi^{(i)}}\\ell_0^{(i)}(\\xi_1^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_1^{(i)}(\\xi_1^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_2^{(i)}(\\xi_1^{(i)}) & \\cdots & \\frac{d}{d\\xi^{(i)}}\\ell_{N_i}^{(i)}(\\xi_1^{(i)}) \\\\\n", " \\frac{d}{d\\xi^{(i)}}\\ell_0^{(i)}(\\xi_2^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_1^{(i)}(\\xi_2^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_2^{(i)}(\\xi_2^{(i)}) & \\cdots & \\frac{d}{d\\xi^{(i)}}\\ell_{N_i}^{(i)}(\\xi_2^{(i)}) \\\\\n", "\\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\\n", " \\frac{d}{d\\xi^{(i)}}\\ell_0^{(i)}(\\xi_{N_i}^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_1^{(i)}(\\xi_{N_i}^{(i)}) & \\frac{d}{d\\xi^{(i)}}\\ell_2^{(i)}(\\xi_{N_i}^{(i)}) & \\cdots & \\frac{d}{d\\xi^{(i)}}\\ell_{N_i}^{(i)}(\\xi_{N_i}^{(i)})\n", "\\end{array}\n", "\\right).\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\vec U(t_{n+1}) &= \\vec U(t_n) + \\int_{t_n}^{t_{n+1}} \\dot{\\vec U}(t)\\,dt\\\\\n", "&= \\vec U(t_n) + \\int_{t_n}^{t_{n+1}} L(t)\\vec U(t)\\,dt.\n", "\\end{align*}\n", "\n", "\n", "\n", "\\begin{align*}\n", "\\vec U(t_{n+1}) = \\vec U(t_n) + \\frac{\\Delta t}{2}\\left(\n", "L(t_n)\\vec U(t_n) + L(t_{n+1})\\vec U(t_{n+1}) \\right).\n", "\\end{align*}\n", "Rearrange the terms to obtain\n", "\\begin{align*}\n", "\\left(I - \\frac{\\Delta t}{2}L(t_{n+1})\\right)\\vec U(t_{n+1}) =\n", "\\left(I + \\frac{\\Delta t}{2}L(t_{n})\\right)\\vec U(t_n).\n", "\\end{align*}\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.10" } }, "nbformat": 4, "nbformat_minor": 5 }