用有限体积方法求解欧拉方程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

有限体积法求解二维可压缩Euler方程

——计算流体力学课程大作业

老师:夏健、刘学强

学生:徐锡虎

学号:SQ***********

日期:2010年2月5日

目录

一、内容摘要 (2)

二、流动控制方程 (2)

三、有限体积法的空间离散 (2)

四、人工耗散 (3)

五、时间离散 (4)

六、边界条件 (5)

七、计算结果 (8)

八、结论与展望 (11)

参考文献 (11)

一、内容摘要

本文通过运用JAMESON 有限体积法求解了二维定常和非定常可压缩Euler 方程。程序实现语言为C++。其中,使用的网格是三角形非结构网格。在时间推进上使用的是四步龙—库塔推进格式。推进的时间步长取的是当地的时间步长。为了消除迭代误差、round-off 等误差,本文采用了添加人工耗散项的办法。另外,本文计算了NACA0012翼型在跨音速下不同迎角的情况,并与fluent 软件的计算结果进行了比较,来验证程序的准确性。

二、流动控制方程

守恒形式的Euler 方程:

0=-+Ω∂∂

⎰⎰Ω

Gdx Fdy wd t S

(1) 其中x 和y 代表笛卡儿坐标系。W 是守恒变量。

⎥⎥⎥⎥

⎤⎢⎢⎢⎢⎣⎡=E V U W ρρρρ (2)

F,G 表示通量

⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+=UH UV P U U F ρρρρ2, ⎥⎥⎥⎥

⎤⎢⎢⎢⎢⎣⎡+=VH P V UV V G ρρρρ2

(3) ρ,P , H 和E 表示密度,压强,单元总焓和单元总能量。U,V 表示笛卡儿坐标系下

的速度矢量。这些量由理想气体的单位体积的总能量和总焓相互联系。

2/122)()(V U P E ++-=ργρ (4)

P E H +=ρρ (5)

三、有限体积法的空间离散

计算域被划分为互不重叠的单元。在每个单元运用守恒形式的Euler 方程。由于每个单

元相对于时间都是不变的,所以等式(1)可以写成:

⎰⎰Ω

Ω

--=∂∂d Gdx Fdy t

W

S )

( (8)

其中Ω和S 是单元的体积和边界。W 是单元的平均值。

在对上述方程进行时间离散前,先对空间进行离散,则方程(6)可以写为:

k k k Q

dt

dW Ω-= (9)

其中k Ω表示第k 个单元的体积,k W 是第k 个单元的守恒变量。k Q 表示第k 个单元的通量。方程(7)的右边项可以写成:

∑=∆-∆=

kedges

i i

k x G y F Q 1

)

( (10)

其中 a b i a b i y y y x x x -=∆-=∆, (11) (8)式中的求和是对第k 个单元的所有边进行的。守恒参数的量是单元中心值,在求通量时,第I 条边的守恒参数值是用左右单元的平均来表示的:

2/)(W p k i W W += (12)

引入变量:

i i i i i x V y U Z ∆-∆= (13)

则第k 单元的Euler 方程可以写为:

∑=⎥

⎦⎤⎢⎢⎢⎢⎣⎡∆-∆+Ω-=kedges i i

k k H Z x P V Z y P U Z Z dt dW 11ρρρρ (14) 在本文中,采用的是JAMENSON 有限体积法,为了减少存储的相关信息的量,其存储的

方式选择的是按边存储的方法。在存储的每条边的信息中,包含了这条边的边号,左右单元号和边的端点。在计算通量时采用按边循环的方式:

do I=1,nedge

k=connmatrix(I,1) a=connmatrix(I,2) b=connmatrix(I,3) p=connmatrix(I,4)

flux=function(k,a,b,p) sum(k)=sum(k)+flux sum(p)=sum(p)-flux end do

这里给出的是FOTRAN 语言的形式,我编写采用的是C ,具体表现在上交的程序中。 在计算时间步长、人工耗散项等也可用象这样按边循环,从此处我们可以看出求解时与单元的形状无关。

四、人工耗散

人工粘性模型对方法的成功应用起着关键作用,人工粘性抑制解在激波附近的振荡,又阻尼解在光滑区域内的高阶误差,对解的线性稳定和收敛于定态是很重要的。本文在方程(14)的右端加入了人工耗散项,如对于单元k ,其表达式可以表示为:

()

k k k k D Q dt

dW Ω--= (15)

在有限体积法中,耗散项的公式可以表示为:

∑∑==+

=

kedges

i i

kedges

i i

k d

d

D 1

)4(1

)2( (16)

其中:

()()i

k p

i

i i

i k p i i i W W

d

W W d 2

2

)4()4()2()2(∇-∇=-=εαεα (17)

其中的I 表示单元k 和p 的公共边,2

∇定义为:

()∑=-=

∇kedges i k j

k W W

W 1

2

(18)

上面的j 表示与k 相邻的单元。

∑∑==+-=

kedges i i

k p

kedges

i i

k p

k P P

P P

1

1)()(ν (19)

)

,0max(),max()2()

4()4()2()2(i

i

i k p i k

k ε

ε

ννε-== (20)

其中的量)4()

2(,k k

的范围是:0.121,12561)2()4(<<<

在计算时发现上面方法得到的人工耗散项并不太适合。其在光滑区域耗散项太大,而在大剃度区域又显得太小,为了弥补上面的不足,作下面的修改:

k

p k p i P P P P +-=

ν (21)

自适应系数为:

)

,0max()2()

4()4()2()2(i

i

i i k

k ε

ε

νε-== (22)

尺度系数为:

()22y x c x V y U i ∆+∆+∆-∆=α (23)

其中的U,V 表示边上的值,C 表示当地声速。

五、时间离散

方程最后的稳定解是通过时间上的迭代得到的,可以写为:

k k

R dt

dW = (24) 右边项的表达式为:

相关文档
最新文档