无粘通量-高精度 WENO 格式

WENO 格式基本思想、推导过程、基本形式等

WENO

主要思想

  • ENO格式 (Essentially Non-Oscillatory, 本质无振荡) 基于各种离散模板 (Stencil) 对不同的控制体计算出不同的重构多项式,选择其中最小振荡的多项式进行重构
  • WENO 对 ENO 格式的 Stencil 进行加权并结合,权重与振荡成反比,从而使得间断不会过度耗散

WENO-JS

位置 IiI_i 创建一个 kk 阶精度的 Stencil,包括左侧 rr 个网格单元和右侧 ss 个网格单元,则 r+1+s=kr + 1 + s = k 且有

S{Iir,,Ii+s}\begin{equation} S \equiv \begin{Bmatrix*} I_{i-r}, \cdots, I_{i+s} \end{Bmatrix*} \end{equation}

五阶 WENO 格式 数值通量

f^i+1/2=k=02ωkqk\begin{equation} \hat{f}_{i+1/2} = \sum_{k = 0}^{2} \omega_k q_k \end{equation}

三阶通量 qkq_k 模板为 Sk3=(i+k2,i+k1,i+k)S_k^3 = (i+k-2, i+k-1, i+k),通过 ENO 方法计算

[q0q1q2]=16[2711000152000251][fi2fi1fifi+1fi+2]\begin{equation} \begin{bmatrix} q_0 \\ q_1 \\ q_2 \end{bmatrix} = \frac{1}{6} \begin{bmatrix} 2 & -7 & 11 & 0 & 0 \\ 0 & -1 & 5 & 2 & 0 \\ 0 & 0 & 2 & 5 & -1\\ \end{bmatrix} \begin{bmatrix} f_{i-2} \\ f_{i-1} \\ f_{i} \\ f_{i+1} \\ f_{i+2} \end{bmatrix} \end{equation}

Jiang & Shu 给出的 Stencil SkS_k 权重 ωk\omega_k 计算方法为

ωk=αkα0+α1+α2,αk=ck(ISk+ϵ)2\begin{equation} \omega_k = \frac{\alpha_k}{\alpha_0 + \alpha_1 + \alpha_2}, \quad \alpha_k = \frac{c_k}{(IS_k + \epsilon)^2} \end{equation}

式中,ckc_k 为生成五阶上游格式的最佳权重

c0=0.1,c1=0.6,c2=0.3\begin{equation} c_0 = 0.1,\quad c_1 = 0.6,\quad c_2 = 0.3 \end{equation}

ISkIS_k 为 LSI (local smoothness indicator, 局部光滑指示器) 用于计算子模板 SkS_k 上解的相对光滑程度,正实数 ϵ=106\epsilon = 10^{-6} 用于避免其计算值为零

{ IS0=1312(fi22fi1+fi)2+14(fi24fi1+3fi) IS1=1312(fi12fi+fi+1)2+14(fi1fi+1) IS2=1312(fi2fi+1+fi+2)2+14(3fi4fi+1+fi+2)\begin{equation} \begin{cases} \text{ } IS_0 = \frac{13}{12} (f_{i-2} - 2 f_{i-1} + f_i)^2 + \frac{1}{4} (f_{i-2} - 4 f_{i-1} + 3 f_i) \\ \text{ } IS_1 = \frac{13}{12} (f_{i-1} - 2 f_{i} + f_{i+1})^2 + \frac{1}{4} (f_{i-1} - f_{i+1}) \\ \text{ } IS_2 = \frac{13}{12} (f_{i} - 2 f_{i+1} + f_{i+2})^2 + \frac{1}{4} (3 f_{i} - 4 f_{i+1} + f_{i+2}) \\ \end{cases} \end{equation}

FDM

有限差分法求解器一般直接对面通量 fi±1/2±f_{i \pm 1/2}^\pm 进行 WENO 重构,获得 f^i±1/2\hat{f}_{i \pm 1/2} 后计算无粘通量残差

Rc=f^i+1/2f^i+1/2Δri\begin{equation} \bold{R_c} = - \frac{\hat{f}_{i+1/2} - \hat{f}_{i+1/2}}{\Delta \bold{r}_i} \end{equation}

GLF Spliting

采用矢通量分裂方法

Fc=L1Λ+L+L1ΛL\begin{equation} \bold{F_c} = \bold{L}^{-1} \bold{\Lambda}^+ \bold{L} + \bold{L}^{-1} \bold{\Lambda}^ \bold{L} \end{equation}

采用 Steger-Warming (SW) 方法,分裂特征值为

λj±=12(λj±λj)\begin{equation} \lambda_j^\pm = \frac{1}{2} (\lambda_j \pm |\lambda_j|) \end{equation}

采用 Global Lax-Friedrichs (GLF) 方法,分裂特征值为

λj±=12(λj±α)\begin{equation} \lambda_j^\pm = \frac{1}{2} (\lambda_j \pm \alpha) \end{equation}

其中,α\alpha 为整个计算域中的最大特征值,最简单 GLF 方法实现方式是

F^±=12(F±αQ)\begin{equation} \bold{\hat{F}}^\pm = \frac{1}{2} (\bold{F} \pm \alpha \bold{Q}) \end{equation}

面通量为

f^i±1/2=f^i±1/2++f^i±1/2\begin{equation} \hat{f}_{i \pm 1/2} = \hat{f}_{i \pm 1/2}^+ + \hat{f}_{i \pm 1/2}^- \end{equation}

FVM

有限体积法求解器对守恒变量 Qi±1/2\bold{Q}_{i \pm 1/2} 进行重构,然后再通过通量分裂方法计算面通量,选择的 Stencil 为

{ SL=Ii2,Ii1,Ii,Ii+1,Ii+2 SR=Ii1,Ii,Ii+1,Ii+2,Ii+3\begin{equation} \begin{cases} \text{ } S^L = {I_{i-2}, I_{i-1}, I_i, I_{i+1}, I_{i+2}} \\ \text{ } S^R = {I_{i-1}, I_i, I_{i+1}, I_{i+2}, I_{i+3}} \\ \end{cases} \end{equation}

Reference

  • Shu C W. High-order finite difference and finite volume WENO schemes and discontinuous Galerkin methods for CFD[J]. International Journal of Computational fluid dynamics, 2003, 17(2): 107-118.
  • Titarev V A, Toro E F. Finite-volume WENO schemes for three-dimensional conservation laws[J]. Journal of Computational Physics, 2004, 201(1): 238-260.
0%