ENO2¶
ENO2 Link¶
- WENO schemes.
- Efficient Finite Difference WENO Scheme for Hyperbolic Systems with Non-Conservative Products and Stiff Source Terms.
- Prof. Chi-Wang Shu: Mathematics in Scientific Computing.
- 《Applied Numerical Methods for PDEs》第八章 双曲型方程的数值方法(23).
- Applied-Numerical-Methods.
Code¶
一维标量方程的 ENO 和 weighted ENO 格式¶
以下是一个偏微分方程及其初始条件和网格划分的描述:
考虑一维标量守恒律组
设网格剖分为
单元\(I_{i}=[x_{i-1/2},x_{i+1/2}]\), 单元中点为 \(x_i =(x_{i-1/2} + x_{i+1/2})/2\),步长为 \(\Delta x_i=x_{i+1/2}-x_{i+1/2},i=1,2,\cdots,N\)。
定义
如同前面针对 TVD 方法的讨论那样,ENO 或者 weighted ENO 方法的具体构造又有两种不同的观点。其一是积分平均型的格式,或称为有限体积型的 ENO 方法;另一种是有限差分型的 ENO 方法。
积分平均型格式或者有限体积型格式¶
将原方程在区间 \(I_i\) 上积分,并整理得
定义函数 \(u(x,t)\) 的单元平均值
则有
这里由于只有单元平均值已知,所以需要构造函数在单元边界点(半网格节点)上的值 \(u_{i-1/2}, i=0,1,\cdots,N\)。此时有限体积格式可写为
假定周期边界条件,即假定在计算区域外的数值解是可以得到的(这也适合于具有紧致支集的问题)。对于一致网格剖分 \(\Delta x_i = \Delta x\),我们可以如下构造单元节点上的函数值:
第二类换元法¶
设 \(f(x)\) 为可积函数,\(x = x(g)\) 为连续可导函数,则有:
-
确定一个模板
C++ 1 2
i-r ... i-2 i-1 i i+1 i+2 ... i+s | * | ... | * | * | * | * | * | ... | * |
例如可以取包括两个单元的模板,例如 \(S = \{I_{i-1}, I_{i}\}\)。
\[ \begin{array}{l} I_{i-1}&=[x_{i-3/2},x_{i-1/2}]\\ I_{i}&=[x_{i-1/2},x_{i+1/2}]\\ \end{array} \] -
构造多项式:
构造一个多项式,设为 \(p(x)\),使其满足
\[ \frac{1}{\Delta x_j} \int_{x_{j-\frac{1}{2}}}^{x_{j+\frac{1}{2}}} p(x) dx = \bar{u}_j, \quad j = i - 1, i \]在所选择的模板上成立。上述模板下多项式 \(p(x)\) 是唯一确定的不超过二次多项式,设
\[ p(x) = \hat{p}(\xi) = a_0 + a_1 \xi, \quad \xi = \frac{x - x_i}{\Delta x_i} \]对比第二类换元法,设 \(f(x)\) 为可积函数,\(x = x(g)\) 为连续可导函数,则有:
\[ \int_{\alpha}^{\beta} f(x) \, dx = \int_{x^{-1}(\alpha)}^{x^{-1}(\beta)} f(x(g)) x' \, dg \]\[ \int_{\alpha}^{\beta} f(x) \, dx = \int_{\xi(\alpha)}^{\xi(\beta)} f(x(\xi )) x'(\xi ) \, d\xi \]这里\(f(x)=p(x)\),\(x=x_{i}+\xi\Delta{x}_{i}\),\(x'(\xi )=\Delta{x}_{i}\),\(\alpha=x_{j-\frac{1}{2}}\),\(\beta=x_{j+\frac{1}{2}}\)
\[ \int_{\alpha}^{\beta} p(x) \, dx = \int_{\xi(\alpha)}^{\xi(\beta)} p(x(\xi )) x'(\xi ) \, d\xi \]\[ \int_{\alpha}^{\beta} p(x) \, dx = \int_{\xi(\alpha)}^{\xi(\beta)} p(x(\xi )) \Delta{x}_{i} \, d\xi \]\[ \cfrac{1}{\Delta{x}_{i}}\int_{\alpha}^{\beta} p(x) \, dx = \int_{\xi(\alpha)}^{\xi(\beta)} p(x(\xi )) \, d\xi \]\[ \cfrac{1}{\Delta{x}_{i}}\int_{\alpha}^{\beta} p(x) \, dx = \int_{\xi(\alpha)}^{\xi(\beta)} \hat{p}(\xi) \, d\xi \]\[ \cfrac{1}{\Delta{x}_{i}}\int_{x_{j-\frac{1}{2}}}^{x_{j+\frac{1}{2}}} p(x) \, dx = \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi \]\[ \Delta{x}_{i}\equiv{x}_{i+\frac{1}{2}}-x_{i-\frac{1}{2}} \]\[ \begin{array}{l} \xi = \cfrac{x - x_i}{\Delta x_i}\\ \xi(\alpha) =\xi(x_{j-\frac{1}{2}})= \cfrac{x_{j-\frac{1}{2}} - x_i}{\Delta x_i}\\ \xi(\beta) =\xi(x_{j+\frac{1}{2}})= \cfrac{x_{j+\frac{1}{2}} - x_i}{\Delta x_i}\\ \end{array} \]\[ \begin{array}{l} j=i-1\\ \xi(x_{i-\frac{3}{2}})= \cfrac{x_{i-\frac{3}{2}} - x_i}{\Delta x_i}\\ \xi(x_{i-\frac{1}{2}})= \cfrac{x_{i-\frac{1}{2}} - x_i}{\Delta x_i}\\ j=i\\ \xi(x_{i-\frac{1}{2}})= \cfrac{x_{i-\frac{1}{2}} - x_i}{\Delta x_i}\\ \xi(x_{i+\frac{1}{2}})= \cfrac{x_{i+\frac{1}{2}} - x_i}{\Delta x_i}\\ \end{array} \]\[ \begin{array}{c} x_{i-\frac{3}{2}} = x_i-\frac{3}{2}\Delta{x}\\ x_{i-\frac{1}{2}} = x_i-\frac{1}{2}\Delta{x}\\ x_{i+\frac{1}{2}} = x_i+\frac{1}{2}\Delta{x}\\ x_{i+\frac{3}{2}} = x_i+\frac{3}{2}\Delta{x}\\ \end{array} \]\[ \begin{array}{l} \xi(x_{i-\frac{3}{2}})=-\frac{3}{2}\\ \xi(x_{i-\frac{1}{2}})=-\frac{1}{2}\\ \xi(x_{i+\frac{1}{2}})=\frac{1}{2}\\ \xi(x_{i+\frac{3}{2}})=\frac{3}{2}\\ \end{array} \]\[ \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi= \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} (a_0 + a_1 \xi) \, d\xi\\ \]\[ \int_{\xi(\alpha)}^{\xi(\beta)} (a_0 + a_1 \xi) \, d\xi= (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(\alpha)}^{\xi(\beta)}\\ \]\[ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})}=\bar{u}_{j} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i-\frac{3}{2}})}^{\xi(x_{i-\frac{1}{2}})}=\bar{u}_{i-1}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i-\frac{1}{2}})}^{\xi(x_{i+\frac{1}{2}})}=\bar{u}_{i}\\ \end{array} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{-\frac{3}{2}}^{-\frac{1}{2}}=\bar{u}_{i-1}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=\bar{u}_{i}\\ \end{array} \]\[ \begin{array}{l} \xi^{2}\bigg|_{-\frac{3}{2}}^{-\frac{1}{2}}=(-\frac{1}{2})^{2}-(-\frac{3}{2})^{2}=-2\\ \xi^{2}\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=(+\frac{1}{2})^{2}-(-\frac{1}{2})^{2}=0\\ \end{array} \]\[ \begin{array}{l} a_0-a_1=\bar{u}_{i-1}\\ a_0+0a_1=\bar{u}_{i}\\ \end{array} \]\[ A=\begin{bmatrix} 1& -1 \\ 1& 0\\ \end{bmatrix} \]\[ A\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} \bar{u}_{i-1}\\ \bar{u}_{i}\\ \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} \bar{u}_{i-1}\\ \bar{u}_{i}\\ \end{bmatrix} \]\[ A^{-1}= \begin{bmatrix} 0 & 1 \\ -1 & 1 \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 0 & 1 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} 0 & 1 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} \bar{u}_{i-1}\\ \bar{u}_{i}\\ \end{bmatrix} \]\[ \begin{array}{l} a_{0}=0b_{0}+1b_{1}\\ a_{1}=-1b_{0}+1b_{1}\\ \end{array} \]\[ \begin{array}{l} a_{0}=0\bar{u}_{i-1}+1\bar{u}_{i}\\ a_{1}=-1\bar{u}_{i-1}+1\bar{u}_{i}\\ \end{array} \]\[ \begin{array}{l} p(x)=\hat{p}(\xi)=a_0+a_1\xi\\ u_{i+1/2}=p(x_{i+1/2})=\hat{p}(\xi=1/2)=(a_0+a_1\xi)\bigg|_{\xi=1/2}\\ u_{i+1/2}=a_0+\frac{1}{2}a_1\\ \end{array} \]\[ u_{i+1/2}=a_0+\frac{1}{2}a_1=\begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix} \]\[ \begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} 0 & 1 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ C=\begin{bmatrix} 1& \frac{1}{2} \end{bmatrix}\begin{bmatrix} 0 & 1 \\ -1 & 1 \end{bmatrix} \]\[ C = \left[\begin{array}{c} -\frac{1}{2} & \frac{3}{2} \end{array}\right] \]\[ u_{i+1/2}=C\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\left[\begin{array}{c} -\frac{1}{2} & \frac{3}{2} \end{array}\right]\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ u_{i+1/2}=-\frac{1}{2}b_{0}+\frac{3}{2}b_{1} \]\[ u_{i+1/2}=-\frac{1}{2}\bar{u}_{i-1}+\frac{3}{2}\bar{u}_{i} \]C++ 1 2
i-r ... i-2 i-1 i i+1 i+2 ... i+s | * | ... | * | * | * | * | * | ... | * |
再取包括两个单元的模板,\(S = \{I_{i},I_{i+1}\}\)。
\[ \cfrac{1}{\Delta{x}_{i}}\int_{x_{j-\frac{1}{2}}}^{x_{j+\frac{1}{2}}} p(x) \, dx = \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi \]\[ \Delta{x}_{i}\equiv{x}_{i+\frac{1}{2}}-x_{i-\frac{1}{2}}=\Delta{x} \]\[ \begin{array}{l} \xi = \cfrac{x - x_i}{\Delta x}\\ \xi(\alpha) =\xi(x_{j-\frac{1}{2}})= \cfrac{x_{j-\frac{1}{2}} - x_i}{\Delta x}\\ \xi(\beta) =\xi(x_{j+\frac{1}{2}})= \cfrac{x_{j+\frac{1}{2}} - x_i}{\Delta x}\\ \end{array} \]\[ \begin{array}{l} j=i\\ \xi(x_{i-\frac{1}{2}})= \cfrac{x_{i-\frac{1}{2}} - x_i}{\Delta x}\\ \xi(x_{i+\frac{1}{2}})= \cfrac{x_{i+\frac{1}{2}} - x_i}{\Delta x}\\ j=i+1\\ \xi(x_{i+\frac{1}{2}})= \cfrac{x_{i+\frac{1}{2}} - x_i}{\Delta x}\\ \xi(x_{i+\frac{3}{2}})= \cfrac{x_{i+\frac{3}{2}} - x_i}{\Delta x}\\ \end{array} \]\[ \begin{array}{c} x_{i-\frac{1}{2}} = x_i-\frac{1}{2}\Delta{x}\\ x_{i+\frac{1}{2}} = x_i+\frac{1}{2}\Delta{x}\\ x_{i+\frac{3}{2}} = x_i+\frac{3}{2}\Delta{x}\\ \end{array} \]\[ \begin{array}{l} \xi(x_{i-\frac{1}{2}})=-\frac{1}{2}\\ \xi(x_{i+\frac{1}{2}})=\frac{1}{2}\\ \xi(x_{i+\frac{3}{2}})=\frac{3}{2}\\ \end{array} \]\[ \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi= \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} (a_0 + a_1 \xi) \, d\xi\\ \]\[ \int_{\xi(\alpha)}^{\xi(\beta)} (a_0 + a_1 \xi) \, d\xi= (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(\alpha)}^{\xi(\beta)}\\ \]\[ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})}=\bar{u}_{j} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i-\frac{1}{2}})}^{\xi(x_{i+\frac{1}{2}})}=\bar{u}_{i}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i+\frac{1}{2}})}^{\xi(x_{i+\frac{3}{2}})}=\bar{u}_{i+1}\\ \end{array} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=\bar{u}_{i}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{+\frac{1}{2}}^{+\frac{3}{2}}=\bar{u}_{i+1}\\ \end{array} \]\[ \begin{array}{l} \xi^{2}\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=(+\frac{1}{2})^{2}-(-\frac{1}{2})^{2}=0\\ \xi^{2}\bigg|_{+\frac{1}{2}}^{+\frac{3}{2}}=(+\frac{3}{2})^{2}-(+\frac{1}{2})^{2}=2\\ \end{array} \]\[ \begin{array}{l} a_0+0a_1=\bar{u}_{i}\\ a_0+1a_1=\bar{u}_{i+1}\\ \end{array} \]\[ A=\begin{bmatrix} 1& 0\\ 1& 1\\ \end{bmatrix} \]\[ A\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} \bar{u}_{i}\\ \bar{u}_{i+1}\\ \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} \bar{u}_{i}\\ \bar{u}_{i+1}\\ \end{bmatrix} \]\[ A^{-1}= \begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} \bar{u}_{i}\\ \bar{u}_{i+1}\\ \end{bmatrix} \]\[ \begin{array}{l} a_{0}=1b_{0}+0b_{1}\\ a_{1}=-1b_{0}+1b_{1}\\ \end{array} \]\[ \begin{array}{l} a_{0}=1\bar{u}_{i}+0\bar{u}_{i+1}\\ a_{1}=-1\bar{u}_{i}+1\bar{u}_{i+1}\\ \end{array} \]\[ \begin{array}{l} p(x)=\hat{p}(\xi)=a_0+a_1\xi\\ u_{i+1/2}=p(x_{i+1/2})=\hat{p}(\xi=1/2)=(a_0+a_1\xi)\bigg|_{\xi=1/2}\\ u_{i+1/2}=a_0+\frac{1}{2}a_1\\ \end{array} \]\[ u_{i+1/2}=a_0+\frac{1}{2}a_1=\begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix} \]\[ \begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 1& \frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ C=\begin{bmatrix} 1& \frac{1}{2} \end{bmatrix}\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix} \]\[ C = \left[\begin{array}{c} \frac{1}{2} & \frac{1}{2} \end{array}\right] \]\[ u_{i+1/2}=C\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\left[\begin{array}{c} \frac{1}{2} & \frac{1}{2} \end{array}\right]\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ u_{i+1/2}=\frac{1}{2}b_{0}+\frac{1}{2}b_{1} \]\[ u_{i+1/2}=\frac{1}{2}\bar{u}_{i}+\frac{1}{2}\bar{u}_{i+1} \]右侧插值:再取包括两个单元的模板,\(S = \{I_{i+1},I_{i+2}\}\)。
\[ \cfrac{1}{\Delta{x}_{j}}\int_{x_{j-\frac{1}{2}}}^{x_{j+\frac{1}{2}}} p(x) \, dx = \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi \]\[ \Delta{x}_{j}\equiv{x}_{j+\frac{1}{2}}-x_{j-\frac{1}{2}}=\Delta{x} \]\[ \begin{array}{l} \xi = \cfrac{x - x_{i+1}}{\Delta x}\\ \xi(\alpha) =\xi(x_{j-\frac{1}{2}})= \cfrac{x_{j-\frac{1}{2}} - x_{i+1}}{\Delta x}\\ \xi(\beta) =\xi(x_{j+\frac{1}{2}})= \cfrac{x_{j+\frac{1}{2}} - x_{i+1}}{\Delta x}\\ \end{array} \]\[ \begin{array}{l} j=i+1\\ \xi(x_{i+\frac{1}{2}})= \cfrac{x_{i+\frac{1}{2}} - x_{i+1}}{\Delta x}\\ \xi(x_{i+\frac{3}{2}})= \cfrac{x_{i+\frac{3}{2}} - x_{i+1}}{\Delta x}\\ j=i+2\\ \xi(x_{i+\frac{3}{2}})= \cfrac{x_{i+\frac{3}{2}} - x_{i+1}}{\Delta x}\\ \xi(x_{i+\frac{5}{2}})= \cfrac{x_{i+\frac{5}{2}} - x_{i+1}}{\Delta x}\\ \end{array} \]\[ \begin{array}{c} x_{i+\frac{1}{2}} = x_{i+1}-\frac{1}{2}\Delta{x}\\ x_{i+\frac{3}{2}} = x_{i+1}+\frac{1}{2}\Delta{x}\\ x_{i+\frac{5}{2}} = x_{i+1}+\frac{3}{2}\Delta{x}\\ \end{array} \]\[ \begin{array}{l} \xi(x_{i+\frac{1}{2}})=-\frac{1}{2}\\ \xi(x_{i+\frac{3}{2}})=+\frac{1}{2}\\ \xi(x_{i+\frac{5}{2}})=+\frac{3}{2}\\ \end{array} \]\[ \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} \hat{p}(\xi) \, d\xi= \int_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})} (a_0 + a_1 \xi) \, d\xi\\ \]\[ \int_{\xi(\alpha)}^{\xi(\beta)} (a_0 + a_1 \xi) \, d\xi= (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(\alpha)}^{\xi(\beta)}\\ \]\[ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{j-\frac{1}{2}})}^{\xi(x_{j+\frac{1}{2}})}=\bar{u}_{j} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i+\frac{1}{2}})}^{\xi(x_{i+\frac{3}{2}})}=\bar{u}_{i+1}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{\xi(x_{i+\frac{3}{2}})}^{\xi(x_{i+\frac{5}{2}})}=\bar{u}_{i+2}\\ \end{array} \]\[ \begin{array}{l} (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=\bar{u}_{i+1}\\ (a_0\xi+\frac{1}{2}a_1\xi^{2})\bigg|_{+\frac{1}{2}}^{+\frac{3}{2}}=\bar{u}_{i+2}\\ \end{array} \]\[ \begin{array}{l} \xi^{2}\bigg|_{-\frac{1}{2}}^{+\frac{1}{2}}=(+\frac{1}{2})^{2}-(-\frac{1}{2})^{2}=0\\ \xi^{2}\bigg|_{+\frac{1}{2}}^{+\frac{3}{2}}=(+\frac{3}{2})^{2}-(+\frac{1}{2})^{2}=2\\ \end{array} \]\[ \begin{array}{l} a_0+0a_1=\bar{u}_{i+1}\\ a_0+1a_1=\bar{u}_{i+2}\\ \end{array} \]\[ A=\begin{bmatrix} 1& 0\\ 1& 1\\ \end{bmatrix} \]\[ A\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} \bar{u}_{i+1}\\ \bar{u}_{i+2}\\ \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=A^{-1}\begin{bmatrix} \bar{u}_{i+1}\\ \bar{u}_{i+2}\\ \end{bmatrix} \]\[ A^{-1}= \begin{bmatrix} 1& 0\\ -1& 1\\ \end{bmatrix} \]\[ \begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 1& 0\\ -1& 1\\ \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} \bar{u}_{i+1}\\ \bar{u}_{i+2}\\ \end{bmatrix} \]\[ \begin{array}{l} a_{0}=1b_{0}+0b_{1}\\ a_{1}=-1b_{0}+1b_{1}\\ \end{array} \]\[ \begin{array}{l} a_{0}=1\bar{u}_{i+1}+0\bar{u}_{i+2}\\ a_{1}=-1\bar{u}_{i+1}+1\bar{u}_{i+2}\\ \end{array} \]\[ \begin{array}{l} p(x)=\hat{p}(\xi)=a_0+a_1\xi\\ u_{i+1/2}=p(x_{i+1/2})=\hat{p}(\xi=-1/2)=(a_0+a_1\xi)\bigg|_{\xi=-1/2}\\ u_{i+1/2}=a_0-\frac{1}{2}a_1\\ \end{array} \]\[ u_{i+1/2}=a_0-\frac{1}{2}a_1=\begin{bmatrix} 1& -\frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix} \]\[ \begin{bmatrix} 1& -\frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} a_{0}\\ a_{1}\\ \end{bmatrix}=\begin{bmatrix} 1& -\frac{1}{2}\\ \end{bmatrix}\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix}\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ C=\begin{bmatrix} 1& -\frac{1}{2} \end{bmatrix}\begin{bmatrix} 1 & 0 \\ -1 & 1 \end{bmatrix} \]\[ C = \left[\begin{array}{c} \frac{3}{2} & -\frac{1}{2} \end{array}\right] \]\[ u_{i+1/2}=C\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix}=\left[\begin{array}{c} \frac{3}{2} & -\frac{1}{2} \end{array}\right]\begin{bmatrix} b_{0}\\ b_{1}\\ \end{bmatrix} \]\[ u_{i+1/2}=\frac{3}{2}b_{0}-\frac{1}{2}b_{1} \]\[ u_{i+1/2}=\frac{3}{2}\bar{u}_{i+1}-\frac{1}{2}\bar{u}_{i+2} \]
Given the cell averages of a function \(v(x)\):
find a polynomial \(p_i(x)\), of degree at most \(k-1\), for each cell \(I_i\), such that it is a \(k\)-th order accurate approximation to the function \(v(x)\) inside \(I_i\):
In particular, this gives approximations to the function \(v(x)\) at the cell boundaries
which are \(k\)-th order accurate:
Given the location \(I_i\) and the order of accuracy \(k\), we first choose a “stencil”, based on \(r\) cells to the left, \(s\) cells to the right, and \(I_i\) itself if $r, s \geq 0 $, with $ r + s + 1 = k$:
There is a unique polynomial of degree at most \(k-1 = r + s\), denoted by \(p(x)\) (we will drop the subscript \(i\) when it does not cause confusion), whose cell average in each of the cells in \(S(i)\) agrees with that of \(v(x)\):
This polynomial \(p(x)\) is the \(k\)-th order approximation we are looking for, as it is easy to prove (2.5), see the discussion below, as long as the function \(v(x)\) is smooth in the region covered by the stencil \(S(i)\).
For solving Problem 2.1, we also need the approximations to the values of \(v(x)\) at the cell boundaries, (2.6). Since the mappings from the given cell averages \(\bar{v}_j\) in the stencil \(S(i)\) to the values \(v_{i+\frac{1}{2}}^{-}\) and \(v_{i-\frac{1}{2}}^{+}\) in (2.6) are linear, there exist constants \(c_{r,j}\) and \(\tilde{c}_{r,j}\), which depend on the left shift of the stencil \(r\) of the stencil \(S(i)\) in (2.8), on the order of accuracy \(k\), and on the cell sizes \(\Delta x_j\) in the stencil \(S_i\), but not on the function \(v\) itself, such that
We note that the difference between the values with superscripts ± at the same location \(x_{i+\frac{1}{2}}\) is due to the possibility of different stencils for cell \(I_i\) and for cell \(I_{i+1}\). If we identify the left shift \(r\) not with the cell \(I_i\) but with the point of reconstruction \(x_{i+\frac{1}{2}}\), i.e. using the stencil (2.8) to approximate \(\tilde{x}_{i+\frac{1}{2}}\), then we can drop the superscripts ± and also eliminate the need to consider \(\tilde{c}_{r,j}\) in (2.10), as it is clear that
We summarize this as follows: given the \(k\) cell averages
there are constants \(c_{r,j}\) such that the reconstructed value at the cell boundary \(x_{i+\frac{1}{2}}\):
对于\(k=2\),有
具体为
\(r=-1\)时,有
\(r=0\)时,有
\(r=1\)时,有
To describe the WENO3 finite difference spatial discretization, we start with the scalar conservation law
and assume \(\frac{\partial f}{\partial u} > 0\) (the wind direction is to the right). The computational domain is discretized with \(N + 1\) grid points \(x_i = i \Delta x, i = 0, 1, \ldots, N\). A conservative numerical approximation \(u_i(t)\) to the exact solution \(u(x_i, t)\) of (8.150) satisfies the ODE system
where \(F_{i+\frac{1}{2}}\) is the numerical flux function.
Text Only | |
---|---|
1 2 3 4 |
|
For third-order WENO, the numerical flux is defined as
where the two second-order accurate numerical fluxes are given by
with \(f_i \equiv f(u_i(t))\). \(F_{i-\frac{1}{2}}\) is constructed by shifting \(i \rightarrow i - 1\):
Note that the stencil \(\{i-2, i-1, i, i+1\}\) for (8.151) is biased to the left due to the positive wind direction.
qi+1/2,L
qi+1/2,R
where the nonlinear weights are defined as
in which the smoothness indicators are defined as