全球旧事资料 分类
附录A一维Riema
问题数值解与计算程序
一维Riema
问题,即激波管问题,是一个典型的一维可压缩无黏气体动力学问题,并有解析解。对它采用二阶精度MacCormack两步差分格式进行数值求解。同时,为了初学者入门和练习方便这里给出了用C语言和Fortra
77编写的计算一维Riema
问题的计算程序,供大家学习参考。
A1利用MacCormack两步差分格式求解一维Riema
问题
1一维Riema
问题
一维Riema
问题实际上就是激波管问题。激波管是一根两端封闭、内部充
满气体的直管,如图A1所示。在直管中由一薄膜将激波管隔开,在薄膜两侧充
有均匀理想气体(可以是同一种气体,
也可以是不同种气体),薄膜两侧气体
的压力、密度不同。当t0时,气体
处于静止状态。当t0时,薄膜瞬时
突然破裂,气体从高压端冲向低压端,
同时在管内形成激波、稀疏波和接触间
断等复杂波系。2基本方程组、初始条件和边界条件
图A1激波管问题示意图
设气体是理想气体。一维Riema
问题在数学上可以用一维可压缩无黏气体
Euler方程组来描述。在直角坐标系下量纲为一的一维Euler方程组为:
uf01x1tx
其中
u
u


u


f


u2

p

E
Epu
A1A2
这里、u、p、E分别是流体的密度、速度、压力和单位体积总能。理想气体
状态方程:
p


1
e


1
E

12

u2

v2

(A3)
初始条件:11u10p11;20125u20p201。
A1
f边界条件:x1和x1处为自由输出条件,u0u1uNuN1。
3二阶精度MacCormack差分格式
MacCormack两步差分格式:

1
uj2
u
j
r
f

j

f
j1
u
1j

12

u
j

1
uj2

12
r

1
f2j1


1
fj2

A4
其中rt。计算实践表明,MacCormack两步差分格式不能抑制激波附近非物x
理振荡。因此在计算激波时,必须采用人工黏性滤波方法:
u
ij
ui
j

12
u
i1j

2ui
j

u
i1j
A5
为了在激波附近人工黏性起作用,而在光滑区域人工黏性为零,需要引入一个与
密度(或者压力)相关的开关函数:
i1iii1i1iii1
A6
由式A6可以看出,在光滑区域,密度变化很缓,因此值也很小;而在激波
附近密度变化很陡,值就很大。带有开关函数的前置人工黏性滤波方法为:
u
ij

u
ij

12
u
i1j
2ui
j

u
i1
j
A7
其中参数往往需要通过实际试算来确定,也可采用线性近似方法得到:


tax
1
tax

A8
由于声速不会超过3,所以取a3,在本计算中取025。
4计算结果分析计算分别采用标准的C语言和Fortra
77语言编写程序。计算中网格数r
好听全球资料 返回顶部