3

Am reading Shu's WENO notes to build a 1-D WENO reconstruction and stumbled on Eq. 2.61: $$ \beta_r = \int_{x_{i - 0.5}}^{x_{i + 0.5}} (\Delta x)^1 \cdot \left[\frac{dp_r(x)}{dx}\right]^2 + (\Delta x)^3 \cdot \left[\frac{d^2p_r(x)}{dx^2}\right]^2 + (\Delta x)^5 \cdot \left[\frac{d^3p_r(x)}{dx^3}\right]^2 + \cdots + (\Delta x)^{2k - 3} \cdot \left[\frac{d^{k - 1}p_r(x)}{dx^{k - 1}}\right]^2 \,dx $$

which $p_r(x)$ comes from Eq. 2.19. Does anyone know the explicit formula of all the derivatives in Eq. 2.61? The formulas will be very useful for writing algorithms.

Yuki.F
  • 751

1 Answers1

3

Let's start with an image ($k=3$, WENO5 scheme) stencils

The polynomials $p_r(x), r = 0, \dots, k-1$ defined each on its stencil $S_r$ are obtained by solving the following systems of equations $$ \frac{1}{\Delta x}\int_{x_{j-1/2}}^{x_{j+1/2}} p_r(x) dx = v_{j}, \qquad j = i-r, \dots, i-r+k-1 $$ Here $v_j$ denotes the cell-averaged value of $v(x)$ in $[x_{i-1/2}, x_{i+1/2}]$. We're trying to reconstruct $v(x)$ on $S_r$ from its cell averages as $p_r(x)$.

Each system has $k$ equations and $k$ unknown coefficients in $p_r(x)$. To simplify equations a bit I will use dimensionless form of the polynomials' argument: $$ p_r(x) = \tilde p_r\left(\frac{x - x_i}{\Delta x}\right)\\ \tilde p_r(\xi) = p_r(x_i + \xi \Delta x) $$

The equations become clearer: $$ \int_{j-1/2}^{j+1/2} \tilde p_r(\xi) d\xi = v_{i+j}, \qquad j = -r, \dots, k-r-1 $$ So do the smoothness indicators $\beta_r$: $$ \beta_r = \int_{-1/2}^{1/2} [\tilde p_r'(\xi)]^2 + [\tilde p_r''(\xi)]^2 + \dots + [\tilde p_r^{(k-1)}(\xi)]^2 d\xi $$ and the values at the interfaces $v_{i+1/2}^{(r)} = \tilde p_r(1/2)$.

Stencils $S_0, \dots, S_{k-1}$ differ only by shift. This implies that $p_r$ are not completely independent. Indeed, let's compare equations for $\tilde p_0$ and $\tilde p_r$: $$ \int_{j-1/2}^{j+1/2} \tilde p_0(\xi) d\xi = v_{i+j}, \qquad j = 0, \dots, k-1\\ \int_{j'-1/2}^{j'+1/2} \tilde p_r(\xi) d\xi = v_{i+j'}, \qquad j' = -r, \dots, k-r-1 $$ Plugging $j' = j-r$ we get $$ \int_{j-r-1/2}^{j-r+1/2} \tilde p_r(\xi) d\xi = v_{i+j-r}, \qquad j = 0, \dots, k-1 $$ Now change $\eta = \xi + r$ $$ \int_{j-1/2}^{j+1/2} \tilde p_r(\eta - r) d\eta = v_{i-r+j}, \qquad j = 0, \dots, k-1 $$ We obtained pretty obvious (from the image above) property $$ \tilde p_r(\xi) = \tilde p_0(\xi + r)\Big|_{v_i \mapsto v_{i-r}} $$ All $\beta_r$ can be expressed in $\tilde p_0$ only: $$ \beta_r = \left.\int_{r-1/2}^{r+1/2} [\tilde p_0'(\xi)]^2 + [\tilde p_0''(\xi)]^2 + \dots + [\tilde p_0^{(k-1)}(\xi)]^2 d\xi\right|_{v_i \mapsto v_{i-r}}. $$ So are the values at the interfaces $v_{i+1/2}^{(r)} = \left.\tilde p_0(r + 1/2)\right|_{v_i \mapsto v_{i-r}}$.

Now we can finally focus on finding the exact form of $\tilde p_0(\xi)$.

Approach 1. Brute force. Simply let $\tilde p_0(\xi) = c_0 + c_1 \xi + \dots + c_{k-1} \xi^{k-1}$. Equations $$ \int_{j-1/2}^{j+1/2} \tilde p_0(\xi) d\xi = v_{i+j}, \qquad j = 0, \dots, k-1 \tag{*} $$ are basically a system of $k$ linear equations for $k$ unknowns $c_m$. This gives the following form for $\tilde p_0(\xi)$: $$ \tilde p_0(\xi) = \begin{pmatrix} 1 & \xi & \cdots & \xi^{k-1} \end{pmatrix} A^{-1} \begin{pmatrix} v_i\\ v_{i+1}\\ \vdots\\ v_{i+k-1} \end{pmatrix} $$ where entries of $A$ are given by $$ a_{jm} = \int_{j-1/2}^{j+1/2} \xi^m d\xi = \frac{(j+1/2)^{m+1} - (j-1/2)^{m+1}}{m+1}, \qquad j,m = 0, \dots, k-1. $$

Example for $k = 3$: $$ A = \begin{pmatrix} 1 & 0 & 1/12\\ 1 & 1 & 13/12\\ 1 & 2 & 49/12\\ \end{pmatrix}, \quad A^{-1} = \frac{1}{24}\begin{pmatrix} 23 & 2 & -1\\ -36 & 48 & -12\\ 12 & -24 & 12 \end{pmatrix} $$ $$ \tilde p_0(\xi) = \frac{23 v_i + 2v_{i+1} - v_{i+2}}{24} + \frac{-3 v_i + 4v_{i+1} - v_{i+2}}{2} \xi + \frac{v_i - 2v_{i+1} + v_{i+2}}{2} \xi^2. $$

Approach 2. Reducing to the interpolation problem. Consider the antiderivative $P(\xi) = \int \tilde p_0(\xi) d\xi$. Rewriting the equations (*) using $P(\xi)$ gives $$ P(j+1/2) - P(j-1/2) = v_{i+j}, \qquad j = 0, \dots, k-1. $$ Function $P(\xi)$ is a polynomial of degree $k$ and has $k$ constraining equation. One more equation may be imposed. Let's use $P(-1/2) = 0$. The system becomes $$ P(-1/2) = 0\\ P(1/2) - P(-1/2) = v_{i}\\ \vdots\\ P(k-1/2) - P(k-3/2) = v_{i+k-1}\\ $$ Summing the $j+1$ first equation gives $$ P(j-1/2) = \sum_{m=0}^{j-1} v_{i+m}, \quad j = 0, \dots, k. $$ This is clearly an interpolation problem now: find a polynomial $P(\xi)$ of degree $k$ by its known values $P(j-1/2) = V_j = \sum_{m=0}^{j-1} v_{i+m}$. The $P(\xi)$ might be expressed using Newton's interpolation formula $$ P(\xi) = 0 + v_i (\xi + 1/2) + \frac{v_{i+1} - v_{i}}{2} (\xi + 1/2) (\xi - 1/2) + \dots {} \\ {} \dots + [V_0, \dots, V_k] (\xi + 1/2) \cdots (\xi - k + 3/2). $$ Example for $k = 3$. The diveded difference table: $$ \begin{array}{c|cccccc} -1/2 & 0\\ && v_i\\ 1/2 & v_i&&\frac{v_{i+1} - v_i}{2}\\ && v_{i+1} && \frac{v_{i+2} - 2v_{i+1} + v_i}{6}\\ 3/2 & v_i + v_{i+1}&&\frac{v_{i+2} - v_{i+1}}{2}\\ && v_{i+2}\\ 5/2 & v_i + v_{i+1} + v_{i+2}\\ \end{array} $$ $$ P(\xi) = v_i (\xi + 1/2) + \frac{v_{i+1} - v_i}{2} (\xi + 1/2) (\xi - 1/2) + {} \\ {} + \frac{v_{i+2} - 2v_{i+1} + v_i}{6} (\xi + 1/2) (\xi - 1/2) (\xi - 3/2) $$ $$ \tilde p_0(\xi) = P'(\xi) = v_i + (v_{i+1} - v_i)\xi + \frac{v_{i+2} - 2v_{i+1} + v_i}{24} (12\xi^2 - 12\xi - 1). $$

P.S. The computations become much more complex with large $k$ values so I suggest using some computer algebra system instead of doing computations manually.

uranix
  • 7,503
  • Hmm. Looks nice. Imma back from successfully plugging ENO into 1D rotations. – Yuki.F Jul 28 '20 at 14:57
  • Hi @uranix, do both methods work for any $x$ within the range $[x_{i−2.5},x_{i+2.5}]$ or just $x_{i + 0.5}$? – Yuki.F Jul 29 '20 at 01:33
  • 1
    @Yuki.F The both methods reconstruct the polynomial $p_r(x)$, which is defined everywhere. You may safely evaluate $p_r(x)$ at any point of $S_r$. Evaluating outside is also technically possible, but extrapolating error would be large. – uranix Jul 29 '20 at 08:20
  • I see. By the way, isn't the upper limit of the last integral before the 1st approach to solve $\tilde{p}(x)$ $r + 0.5$? – Yuki.F Aug 05 '20 at 00:44
  • It was a typo, fixed it, thanks – uranix Aug 05 '20 at 07:04