格子boltzmann顶盖流热力学模拟程序VB版.docVIP

  • 12
  • 0
  • 约1.01万字
  • 约 19页
  • 2017-08-09 发布于重庆
  • 举报

格子boltzmann顶盖流热力学模拟程序VB版.doc

格子boltzmann顶盖流热力学模拟程序VB版.doc

顶盖流热力学模拟程序(VB版)概述 天大热能 李扬 一、程序介绍 本程序用格子-Boltzmann法模拟顶盖流运动的速度场和温度场分布,编写语言为VB。程序可以实时绘制速度场及温度场的分布情况并在任意时刻输出图片,可以自由设定格子数、迭代精度等各项参数,可以随时暂停循环并定义每循环多少次时自动输出数据。 二、几个代表时刻的温度场、速度场分布(100*100格) 温度场: 速度场(注意最终稳定时会出现中心、左下角、右下角的漩涡): 三、程序注意事项 1. 实时显示速度场及温度场大大降低了计算的速度,64*64格迭代30000次需要约2个小时,因而建议在不随时观察的情况下将绘制频率加大 2. 以密度作为迭代精度判定条件时收敛性不好,因而在程序中加入不考虑终止精度的选择。以速度作为迭代精度较为合适,程序可以选择采用密度或速度作为判定条件(对于速度场,50*50格大概在迭代15000次之后稳定,100*100格大概在迭代30000次后稳定) 对于用密度作为迭代残差不收敛的问题如果有同学知道原因请不吝赐教!万分感谢!本程序还有许多许多不完善、不科学的地方,尤其计算速度很慢,望诸位高人海涵! QQ:513682028 四、程序代码 声明:本代码仅供学习参考之用,请有选择性、学习性的借鉴,切勿不加思考简单修改就用于作业或考试!谢谢!(我在编写计算部分时也是很头疼参考了很多程序并和同学商量,借鉴没关系,但一定要有自己的收获哦~) 控件代号: 程序部分(红字部分为主要计算程序): Dim w(8), cs2, midu0, c(8, 1), tf, tg 定义全局变量 Dim u0, re, pr, np Dim midu, f, u, miduold, fp, ip, jp, m, n, start, g, gp, t, t0, color, xx, v Private Sub Combo4_click() 切换误差种类 Label5.Caption = 两轮 Right(Combo4.Text, Len(Combo4.Text) - 1) :未开始 End Sub Private Sub Command1_Click() 初始化 If start = 0 Then 取得雷诺数re和普朗特数pr re = Val(Text1.Text) pr = Val(Text2.Text) 取得顶盖流速度u0 u0 = Val(Text3.Text) 取得每行格子数np np = Val(Text4.Text) 计算tf、tg tf = u0 * np * 3 / re + 0.5 tg = 0.5 + (tf - 0.5) / pr 定义各点u ReDim u(np, np, 1) ReDim t(np, np) 定义第一行水平速度为u0 For i = 0 To np u(i, np, 0) = u0 t(i, np) = t0 Next 定义其他点x、y方向速度均为0 For i = 0 To np For j = 0 To np - 1 u(i, j, 0) = 0 u(i, j, 1) = 0 t(i, j) = 0 Next Next 定义各点初始midu ReDim midu(np, np) ReDim v(i, j) For i = 0 To np For j = 0 To np midu(i, j) = midu0 v(i, j) = (u(i, j, 0) ^ 2 + u(i, j, 1) ^ 2) ^ 0.5 Next Next 计算初始feq ReDim f(np, np, 8) ReDim g(np, np, 8) For i = 0 To np For j = 0 To np For k = 0 To 8 f(i, j, k) = feq(k, midu(i, j), u(i, j, 0), u(i, j, 1)) g(i, j, k) = feq(k, midu(i, j), u(i, j, 0), u(i, j, 1)) * t(i, j) Next Next Next 改变桌面控件属性 Text1.Enabled = False Text2.Enabled = False Text3.Enabled = False Text4.Enabled = False start = 1 Command1.Caption = 暂停 ElseIf start = 1 Then start = 2 Command1.Caption = 继续 Command2.Enabled = True Command3.Enabled = True ElseIf start = 2 Then start

文档评论(0)

1亿VIP精品文档

相关文档