|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位大虾,我问一个有关Van Leer 格式的问题
我想用有限体积迎风格式计算翼型,但是出了一点问题,不知道怎么解决,请高手指教,问题具体描述如下:
我的程序是有限体Euler程序,想改为迎风格式,其中无量纲化方法采用的是
(rho)=hro/rho(无穷) , (u)=u/sqrt(p(无穷)/rho(无穷)), (t)=t/L*sqrt(p(无穷)/rho(无穷)),(E)=rho(无穷)*(E - H(无穷))/p(无穷) ......
我按照朱自强老师的《应用计算流体力学》P48面的公式将F和G都分裂了,然后再按照P51的迎风偏置格式(3-67),取k=1,试验了一下中心差分格式, 分别计算了控制面中心
处的Wi+1/2+和Wi+1/2-, 最后分别对F+、G+ 和F-、G-进行通量积分,前三个方程的通量项计算与不采用分裂的中心差分的一般有限体程序的结果都一样, 可就是能量方程的结果
很离谱,不知道为什么。我推了一下公式,将F+、F-相加,结果正好是rho*u*H,将G+、G-相加,结果也正好是rho*v*H, 可是在程序中F+、F-相加就是不等于中心差分的rho*u*H,
而且越靠近外边界,结果差得越多,都能差五六个量级。
我怀疑是无量纲化的问题,于是我也推了一下,发现有量纲无量纲形式都是一样的。我实在不知道是为什么,求高手指教.
源程序如下:
无量纲化方法
cinf = sqrt(1.4d0)
vinf = fminf*cinf
vxinf = vinf*cos(alpha)
vyinf = vinf*sin(alpha)
hinf = 3.5d0 + 0.7d0*fminf**2
sinf = 1.0
我发现问题处在能量方程在数值上分裂之后的和并不等于原来没有分裂的项,比如在中心差分的时候,某一网格边上的F值不分裂的正确值为
-8.011150191376515E-005 而分裂之后的和为 3.17158955945420,具体的比较程序如下
temp = 2*(gamma*gamma-1)
do i = 2, i2 ! Qi-1/2,j (-)
do j = 15, j2
ra = 0.5d0*(r(i-1,j) +r(i,j))
rua = 0.5d0*(ru(i-1,j)+ru(i,j))i 方向中心插分
rva = 0.5d0*(rv(i-1,j)+rv(i,j))
rea = 0.5d0*(re(i-1,j)+re(i,j))
rha = 0.5d0*(rh(i-1,j)+rh(i,j))
ua = rua/ra
va = rva/ra
pa = (rha-rea)
c = sqrt(gamma*pa/ra)
ma = ua/c
temp1= 0.25d0*ra*c*(ma+1)**2
ma = va/c
temp2= 0.25d0*ra*c*(ma+1)**2
tt1 = temp1*(((gamma-1)*ua+2*c)*((gamma-1)*ua+2*c)/temp+va*va/2) ! (F+)
tt2 = temp2*(((gamma-1)*va+2*c)*((gamma-1)*va+2*c)/temp+ua*ua/2) ! (G+)
ma = ua/c
temp1=-0.25d0*ra*c*(ma-1)**2
ma = va/c
temp2=-0.25d0*ra*c*(ma-1)**2
tt1 =tt1+ temp1*(((gamma-1)*ua-2*c)*((gamma-1)*ua-2*c)/temp+va*va/2) ! (F-)
tt2 =tt2+ temp2*(((gamma-1)*va-2*c)*((gamma-1)*va-2*c)/temp+ua*ua/2) ! (G-)
aa = ua*(rea+pa) !F正确直
bb = va*(rea+pa) !G正确直
continue
end do
end do
求求各位帮我侃侃是怎么回事
|
|