[知识分享]WENO格式保姆级教程(1):Euler方程的通量表达式

写这篇文章,一方面是对我的学习过程做个总结,另一方面是想帮助后来的同学快速入门。我将从初学者的视角分享WENO-JS格式,力求详细、易懂,把各种背景知识介绍清楚。各位大佬珠玉在前,学生只是拾人牙慧,水平有限,还请各位不吝赐教。

Euler方程的通量表达式

WENO格式的作用是对N-S方程中的对流项做离散化。为了便于研究,我们去掉N-S方程中的粘性项和源项,保留瞬态项和对流项。这样N-S方程就退化为Euler方程了:

\frac{\partial{U}}{\partial{t}}+\frac{\partial{F_{1}(U)}}{\partial{x}}+\frac{\partial{F_{2}(U)}}{\partial{y}}+\frac{\partial{F_{3}(U)}}{\partial{z}}=0

守恒量

U=\begin{pmatrix} \rho \\ \rho u \\ \rho v \\ \rho w \\ E \end{pmatrix},

包含质量密度、动量密度和能量密度。流通矢量

F_{1}(U)=\begin{pmatrix} \rho u\\ \rho u^2+p \\ \rho uv \\ \rho uw \\ u(E+P) \end{pmatrix},F_{2}(U)=\begin{pmatrix} \rho v\\ \rho vu \\ \rho v^2+p \\ \rho vw \\ v(E+P) \end{pmatrix},F_{3}(U)=\begin{pmatrix} \rho w\\ \rho wu \\ \rho wv \\ \rho w^2+p \\ w(E+P) \end{pmatrix},

包含质量、动量和能量的通量。有兴趣可以验证一下。接下来我将以有限差分法为例进行说明。

假如我们将计算区域划分成很多个小的正方体单元,单元中心点的守恒量 U|_{(i,j,k)}已知,而单元边界的信息未知(有限差分法的性质)。将单元

x\in{(i-\frac{1}{2},i+\frac{1}{2})}, y\in{(j-\frac{1}{2},j+\frac{1}{2})}, z\in{(k-\frac{1}{2},k+\frac{1}{2})}

视作一个控制体,如图1所示。

 图1

将Euler方程写成半离散的形式:

\frac{\partial{U}}{\partial{t}}|_{(i,j,k)} + \frac {\hat{F}_{1,i+1/2} - \hat{F}_{1,i-1/2}} {\Delta{x}}+ \frac {\hat{F}_{2,j+1/2} - \hat{F}_{2,j-1/2}} {\Delta{y}}+ \frac {\hat{F}_{3,k+1/2} - \hat{F}_{3,k-1/2}} {\Delta{z}} =0

可以看出守恒量 的更新完全依赖于单元边界的数值通量。WENO格式就是一种构造数值通量的方法。

注释:1.式(1.2)采用了守恒格式,将流通矢量的导数表达为 \frac{\partial{F_{2}}} {\partial{y}}|_{j} = \frac {\hat{F}_{2,j+1/2} - \hat{F}_{2,j-1/2}} {\Delta{y}},其中\hat{F}_{2,j+1/2}是单元边界处的数值通量,上标"^"表示估计值。

2.为什么是数值通量\hat{F}而不是流通矢量 F?因为单元边界处的流通矢量 F_{j+1/2}是未知的,我们得采用各种各样的数值格式构造出数值通量\hat{F}_{j+1/2},WENO格式便是其中一种。

3.这个流通矢量的导数表达式是准确的,没有误差的。证明方法:以有限差分法为例,引入重构函数P(y)。重构函数的定义为:(1)重构函数在单元内的积分平均等于流通矢量在单元中心点的值,

\frac{1} {\Delta{y}} \int_{y_{j}-\Delta{y}/2}^{y_{j}+\Delta{y}/2} P(y)dy = F(y_{j})

(2)重构函数在单元边界的值等于数值通量

P_{j+1/2} = \hat{F}_{j+1/2}

利用这两个定义可证。

4.为什么要写成守恒格式?

\frac{\partial{F_{2}}} {\partial{y}}|_{j} = \frac {\hat{F}_{2,j+1/2} - \hat{F}_{2,j-1/2}} {\Delta{y}},

等式右边对所有网格点求和

\Sigma^{n}_{j=1} (\frac{\hat{F}_{2,j+1/2} - \hat{F}_{2,j-1/2}} {\Delta{y}}) = \frac {1} {\Delta{y}} (\hat{F}_{2,n+1/2} - \hat{F}_{2,-1/2}),

可以看到计算域内部的误差互相抵消了。从整个计算域来看,质量动量能量的流入流出取决于计算域边界处的数值通量。这种方法非常适合模拟包含激波的流场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值