算例收集6:二维Riemann问题
1.问题描述
二维Riemann问题是计算流体力学(CFD)中用于测试数值格式在多维复杂流场中的性能的经典算例,尤其擅长验证格式处理激波、接触间断、涡结构及其相互作用的能力。其核心特点是通过简单的初始条件设计,诱导出极其复杂的多尺度物理现象。
1)基本定义
在二维矩形计算域内,通过四条相互垂直的初始间断线将区域划分为四个象限,每个象限赋予不同的初始流体状态(密度 、压力 、速度 )。初始状态在交界线处发生跳跃,形成四个接触面。随着时间演化,这些间断会分解并相互作用,产生复杂的波系结构。
2)核心物理过程
初始分解:每条间断线会独立分解为激波、膨胀波和接触间断(滑移线),符合一维Riemann问题的解。
多维耦合:不同方向的波系在计算域中心区域强烈相互作用,形成:
a)斜激波碰撞与反射
b)涡结构的生成与演化(由滑移线失稳导致)
c)激波-涡相互作用
d)射流与剪切层
3)典型结构:中心区域通常出现对称或非对称的涡核、马赫杆、射流尖点等特征结构。
二维Riemann问题通过极简的初始条件(四分区域状态跳跃)诱发了极度复杂的物理演化(激波、涡、剪切层、射流),可以检验CFD格式的鲁棒性。
1.1控制方程
控制方程采用二维Euler方程:
\(\frac{ \partial q}{\partial t} + \frac{\partial F}{\partial x} + \frac{\partial G}{\partial y}= 0\)
其中:
\(q=\begin{pmatrix}
\rho \\\rho u \\\rho v
\\\rho e
\end{pmatrix},F=\begin{pmatrix}
\rho u \\\rho u^2+p \\\rho uv
\\u(\rho e+p)
\end{pmatrix},G=\begin{pmatrix}
\rho v \\\rho uv \\\rho v^2+p
\\v(\rho e+p)
\end{pmatrix}\)
1.2 初始条件及边界条件
该算例的初始条件是将[0,1]x[0,1]的区域分割成4块,具体条件如下:

分别是右上角的高压静止区域、左下角的低压扩散区域、左上的低压向右运动区域、右下的低压向上运动区域。
上、下、左、右4条边界均可设置为无反射边界条件。
计算至\(t_{end}==0.8s\)
gama=1.4
nx=501
ny=501
tf=0.8
dt=2e-4
num_iter=round(Int,tf/dt)
dx=1/(nx-1)
dy=1/(ny-1)
pr = 1.5
rho = 1.5
u = 0.0
v = 0.0
q1=turn_var(gama,rho,u,v,pr)
pr = 0.3
rho = 0.5323
u = 1.206
v = 0.0
q2=turn_var(gama,rho,u,v,pr)
pr = 0.029
rho = 0.138
u = 1.206
v = 1.206
q3=turn_var(gama,rho,u,v,pr)
pr = 0.3
rho = 0.5323
u = 0.0
v = 1.206
q4=turn_var(gama,rho,u,v,pr)
x=Array{Float64}(undef,nx)
y=Array{Float64}(undef,ny)
qn=Array{Float64}(undef,4,ny,nx)
for j=1:ny
for i=1:nx
x[i]=(i-1)*dx
y[j]=(j-1)*dy
if(x[i]>=0.8 && y[j]>=0.8)
qn[:,j,i]=q1
elseif(x[i]<0.8 && y[j]>=0.8)
qn[:,j,i]=q2
elseif(x[i]<0.8 && y[j]<0.8)
qn[:,j,i]=q3
else
qn[:,j,i]=q4
end
end
end
2.数值方法
采用格点格式有限差分法。
2.1 插值格式
采用5阶精度的WENO-JS格式进行插值,计算单元的左右界面的守恒变量。
2.2 重构格式
采用AUSMPW+格式。
2.3 时间推进
采用3步Runge-Kutta格式。
3.计算结果
计算时间等于0.8s时的流场密度分布云图如下:
下图的计算网格格点数采用201x201,因此结果看起来比较粗糙。两幅图中采用的插值格式不同(左:MUSCL格式 右:5阶WENO-JS),通过对比两图的密度分布可以明显看出,WENO格式的分辨率显著提高了,对激波界面的捕捉以及剪切层、滑移层、涡结构演化刻画的更为清楚。
插值格式 左:MUSCL格式 右:5阶WENO-JS

浙公网安备 33010602011771号