WENO 格式基本思想、推导过程、基本形式等
WENO
主要思想
ENO格式 (Essentially Non-Oscillatory, 本质无振荡) 基于各种离散模板 (Stencil) 对不同的控制体计算出不同的重构多项式,选择其中最小振荡的多项式进行重构
WENO 对 ENO 格式的 Stencil 进行加权并结合,权重与振荡成反比,从而使得间断不会过度耗散
WENO-JS
位置 I i I_i I i 创建一个 k k k 阶精度的 Stencil,包括左侧 r r r 个网格单元和右侧 s s s 个网格单元,则 r + 1 + s = k r + 1 + s = k r + 1 + s = k 且有
S ≡ { I i − r , ⋯ , I i + s } \begin{equation}
S \equiv \begin{Bmatrix*}
I_{i-r}, \cdots, I_{i+s}
\end{Bmatrix*}
\end{equation} S ≡ { I i − r , ⋯ , I i + s }
五阶 WENO 格式 数值通量 为
f ^ i + 1 / 2 = ∑ k = 0 2 ω k q k \begin{equation}
\hat{f}_{i+1/2} = \sum_{k = 0}^{2} \omega_k q_k
\end{equation} f ^ i + 1/2 = k = 0 ∑ 2 ω k q k
三阶通量 q k q_k q k 模板为 S k 3 = ( i + k − 2 , i + k − 1 , i + k ) S_k^3 = (i+k-2, i+k-1, i+k) S k 3 = ( i + k − 2 , i + k − 1 , i + k ) ,通过 ENO 方法计算
[ q 0 q 1 q 2 ] = 1 6 [ 2 − 7 11 0 0 0 − 1 5 2 0 0 0 2 5 − 1 ] [ f i − 2 f i − 1 f i f i + 1 f i + 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} q 0 q 1 q 2 = 6 1 2 0 0 − 7 − 1 0 11 5 2 0 2 5 0 0 − 1 f i − 2 f i − 1 f i f i + 1 f i + 2
Jiang & Shu 给出的 Stencil S k S_k S k 权重 ω k \omega_k ω k 计算方法为
ω k = α k α 0 + α 1 + α 2 , α k = c k ( I S k + ϵ ) 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} ω k = α 0 + α 1 + α 2 α k , α k = ( I S k + ϵ ) 2 c k
式中,c k c_k c k 为生成五阶上游格式的最佳权重
c 0 = 0.1 , c 1 = 0.6 , c 2 = 0.3 \begin{equation}
c_0 = 0.1,\quad c_1 = 0.6,\quad c_2 = 0.3
\end{equation} c 0 = 0.1 , c 1 = 0.6 , c 2 = 0.3
I S k IS_k I S k 为 LSI (local smoothness indicator, 局部光滑指示器) 用于计算子模板 S k S_k S k 上解的相对光滑程度,正实数 ϵ = 1 0 − 6 \epsilon = 10^{-6} ϵ = 1 0 − 6 用于避免其计算值为零
{ I S 0 = 13 12 ( f i − 2 − 2 f i − 1 + f i ) 2 + 1 4 ( f i − 2 − 4 f i − 1 + 3 f i ) I S 1 = 13 12 ( f i − 1 − 2 f i + f i + 1 ) 2 + 1 4 ( f i − 1 − f i + 1 ) I S 2 = 13 12 ( f i − 2 f i + 1 + f i + 2 ) 2 + 1 4 ( 3 f i − 4 f i + 1 + f i + 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} ⎩ ⎨ ⎧ I S 0 = 12 13 ( f i − 2 − 2 f i − 1 + f i ) 2 + 4 1 ( f i − 2 − 4 f i − 1 + 3 f i ) I S 1 = 12 13 ( f i − 1 − 2 f i + f i + 1 ) 2 + 4 1 ( f i − 1 − f i + 1 ) I S 2 = 12 13 ( f i − 2 f i + 1 + f i + 2 ) 2 + 4 1 ( 3 f i − 4 f i + 1 + f i + 2 )
FDM
有限差分法求解器一般直接对面通量 f i ± 1 / 2 ± f_{i \pm 1/2}^\pm f i ± 1/2 ± 进行 WENO 重构,获得 f ^ i ± 1 / 2 \hat{f}_{i \pm 1/2} f ^ i ± 1/2 后计算无粘通量残差
R c = − f ^ i + 1 / 2 − f ^ i + 1 / 2 Δ r i \begin{equation}
\bold{R_c} = - \frac{\hat{f}_{i+1/2} - \hat{f}_{i+1/2}}{\Delta \bold{r}_i}
\end{equation} R c = − Δ r i f ^ i + 1/2 − f ^ i + 1/2
GLF Spliting
采用矢通量分裂方法
F c = L − 1 Λ + L + L − 1 Λ L \begin{equation}
\bold{F_c} = \bold{L}^{-1} \bold{\Lambda}^+ \bold{L} +
\bold{L}^{-1} \bold{\Lambda}^ \bold{L}
\end{equation} F c = L − 1 Λ + L + L − 1 Λ L
采用 Steger-Warming (SW) 方法,分裂特征值为
λ j ± = 1 2 ( λ j ± ∣ λ j ∣ ) \begin{equation}
\lambda_j^\pm = \frac{1}{2} (\lambda_j \pm |\lambda_j|)
\end{equation} λ j ± = 2 1 ( λ j ± ∣ λ j ∣ )
采用 Global Lax-Friedrichs (GLF) 方法,分裂特征值为
λ j ± = 1 2 ( λ j ± α ) \begin{equation}
\lambda_j^\pm = \frac{1}{2} (\lambda_j \pm \alpha)
\end{equation} λ j ± = 2 1 ( λ j ± α )
其中,α \alpha α 为整个计算域中的最大特征值,最简单 GLF 方法实现方式是
F ^ ± = 1 2 ( F ± α Q ) \begin{equation}
\bold{\hat{F}}^\pm = \frac{1}{2} (\bold{F} \pm \alpha \bold{Q})
\end{equation} F ^ ± = 2 1 ( F ± α Q )
面通量为
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} f ^ i ± 1/2 = f ^ i ± 1/2 + + f ^ i ± 1/2 −
FVM
有限体积法求解器对守恒变量 Q i ± 1 / 2 \bold{Q}_{i \pm 1/2} Q i ± 1/2 进行重构,然后再通过通量分裂方法计算面通量,选择的 Stencil 为
{ S L = I i − 2 , I i − 1 , I i , I i + 1 , I i + 2 S R = I i − 1 , I i , I i + 1 , I i + 2 , I i + 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} { S L = I i − 2 , I i − 1 , I i , I i + 1 , I i + 2 S R = I i − 1 , I i , I i + 1 , I i + 2 , I i + 3
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.