计算流体力学实验报告fortran

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

中山大学

本科生实验报告书

差分格式A、B、C的fortran编程

院系工学院应用力学与工程系

专业班级理论与应用力学10级

实验课程计算流体力学

姓名程彬

学号 ******** 实验地点中山大学东校区实验中心实验时间 2012年 4 月 5日

指导教师詹杰民

一 实验目的

通过实验使用fortran 语言编写差分格式A 、B 、C 数值求解一维对流方程,更加了解不同差分格式求解方程的解的不同,熟练掌握fortran 语言编程技巧。

二 实验说明

1、一维对流方程

1

x 1 x 00) (x,1x 0 10) (x,0

x 1-x 10) (x,0 t 8x 8- ,0>-<=≤≤+-=≤≤+=>≤≤=∂∂+∂∂或ζζζζζx x

t

2、fortran 程序

主程序

program first

implicit none

integer i,j,k

real A(-160:160,0:100)

REAL R

!dt/dx=1

R=0.5

K=160

call comu(A,R,K)

OPEN (10,FILE='test2.xls')

do j=32,32 ! n=30

do i=-40,40

WRITE (10,*) A(i,j)

enddo

enddo

pause

end program first

差分A 格式的子程序

subroutine comu(A,R,K)

real A(-160:160,0:100)

A(-160:-21,0)=0

A(21:160,0)=0

do i=-20,0

a(i,0)=i*0.05+1

enddo

do i=1,20

a(i,0)=1-i*0.05

enddo

do j=1,100

do i=-k+1,k-1

A(i,j)=A(i,j-1)-R/2.0*(A(i+1,j-1)-A(i-1,j-1)) enddo

enddo

end subroutine

差分B格式的子程序

subroutine comu(A,R,K)

real A(-160:160,0:100)

A(-160:-21,0)=0

A(21:160,0)=0

do i=-20,0

a(i,0)=i*0.05+1

enddo

do i=1,20

a(i,0)=1-i*0.05

enddo

do j=1,100

do i=-k+1,k-1

A(i,j)=A(i,j-1)-R*(A(i+1,j-1)-A(i,j-1)) enddo

enddo

end subroutine

差分C格式的子程序

subroutine comu(A,R,K)

real A(-160:160,0:100)

A(-160:-21,0)=0

A(21:160,0)=0

do i=-20,0

a(i,0)=i*0.05+1

enddo

do i=1,20

a(i,0)=1-i*0.05

enddo

do j=1,100

do i=-k+1,k-1

A(i,j)=A(i,j-1)-R*(A(i,j-1)-A(i-1,j-1))

enddo

enddo

end subroutine

2、执行结果

差分A格式在t=0.5s、0.8s时不同R值下的图像差分B格式在t=0.5s、0.8s时不同R值下的图像

差分C格式在t=0.5s、0.8s时不同R值下的图像

3、实验分析

由图像可知,A格式在∆t/∆x较小时,且t也非常非常小时,图像与精确值浮动不大,而当∆t/∆x较大,且随t变化图像稳定性越差。

而B格式无论∆t/∆x与t大小,与精确解误差都很大。C格式当∆t/∆x取较小值时,稳定性较好,而随∆t/∆x取值越大,其稳定性变差,符合ABS(∆t/∆x)<=1的结论。

相关文档
最新文档