计算流体力学实验报告fortran
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的结论。