计算流体力学---报告
- 格式:doc
- 大小:112.84 KB
- 文档页数:8
计算流体力学
——计算机编程报告
班级: 09083201
学号: 0908320125
: 马海涛
一.题目:非定常热传导方程
∂u
∂t =γ
∂2u
∂x 2
(γ>0)
初值问题的有限分差求解。求解域(x,t)∈[0,1]×[0,∞],初值条件和边
界条件为
{u (x ,0)=f (x )u (0,t )=a (t )u (1,t )=b (t )
其中,γ=1。处置边界条件具体取法为 F(x)= {0 0 1 0.3≤x ≤0.7−103 x +10 3 0.7≤x ≤1.0 取网格点数M x =101,要求计算t=0.01,0.1,1,10时的数据。计算中时间 步长的取法为x = γ∆t ∆x 2 =0.1,0.5,1。 差分格式:FTCS 格式,BTCS 格式 二.分析:编制通用过程,给定参数由手动输入获得,将给定参数带入相应方 程得到不同格式不同参数下的数值解,再将数据输出进行处理。程序 界 面 如 下 : 三.编程过程: (1)FTCS 格式:根据FTCS 格式解法第一步利用边界条件置n=0,为差分格式赋初值,编程步骤为: For i = 1 To 100 '赋初值 x(i) = x(i - 1) + 0.01 u(1, i) = 0 u(0, i) = 0 Next For i = 0 To 100 '求函数 If x(i) < 0.3 Then f(i) = 0 ElseIf x(i) >= 0.3 And x(i) <= 0.7 Then f(i) = 1 ElseIf x(i) > 0.7 And x(i) < 1 Then f(i) = (-10 / 3) * x(i) + 10 / 3 End If Next For i = 0 To 100 '为数组u赋初值 u(i, 0) = f(i) Next 第二步:利用循环求解点数值解,并将相应边界条件带入,在计算t 值大于等于输入t值时停止循环,因为迭代循环的一个数据只与它的前一个数据有关,为了节省存在编程时循环当中不断地用本次得到的数据赋给上一个变量,以达到释放前n-2个变量所占用的存。具体方式为: Do '迭代循环 u(0, 1) = 0 u(100, 1) = 0 for k = 1 To 99 '迭代方程 u(k, 1) = c * u(k + 1, 0) + (1 - 2 * c) * u(k, 0) + c * u(k - 1, 0) Next For k = 0 To 100 u(k, 0) = u(k, 1) ‘变量替换 Next k t = t + c * 0.01 * 0.01 Loop While t < z 第三步:将所得数据输出,利用Excel作出相应图像。其图像如下: (2)BTCS格式: 第一步:赋初始值,置n=0,用循环带入初始条件得到u k0的值 程序如下: For i = 1 To 100 '赋初值 x(i) = x(i - 1) + 0.01 Next For i = 0 To 100 '求函数 If x(i) < 0.3 Then f(i) = 0 ElseIf x(i) >= 0.3 And x(i) <= 0.7 Then f(i) = 1 ElseIf x(i) > 0.7 And x(i) < 1 Then f(i) = (-10 / 3) * x(i) + 10 / 3 End If u(i, 0) = f(i) u(0, i) = 0 u(1, i) = 0 Next For i = 2 To 100 '为矩阵元素赋初值 b(i) = -1 - 2 * w c(i) = w a(i) = w Next For i = 1 To 99 '为矩阵元素中间变量赋初值 d(i, 0) = -u(i, 0) Next 第二步:同样采用循环迭代,并利用FTCS中变量替换的方式节省存, 同时以相应步长对t从零开始累加,直到大于等于输入t值时为止,程序如下: Do '迭代循环 u(0, 1) = 0 u(100, 1) = 0 For i = 1 To 99 '迭代方程 v(i) = c(i) / (b(i) - v(i - 1) * a(i)) u(i, 0) = (d(i, 0) - u(i - 1, 0) * a(i)) / (b(i) - v(i - 1) * a(i)) Next For i = 99 To 1 Step -1 u(i, 1) = u(i, 0) - v(i) * u(i + 1, 1) Next For k = 0 To 100 '为矩阵元素赋初值 d(k, 0) = -u(k, 1) u(k, 0) = u(k, 1) Next k z = z + w * 0.01 * 0.01 Loop While z < t 第三步:将数据输出并作图表进行数据分析。图表如下: