FLUENT批处理技巧:让你的工作变得有乐趣

我们在使用计算流体力学软件研究一个课题的时候,经常会计算很多不同的工况(例如,不同的流动马赫数或雷诺数、某个局部几何尺寸的不同取值,等等)。当工况的数量很多的时候,人工操作会令人非常厌烦,而且还容易出错。这时候,可以利用软件所提供的批处理功能来实现自动化。


举个例子,我们计算三维圆球绕流,算了6种不同的流动雷诺数(图1)。我们想把这6种工况的子午面速度分布导出成Tecplot数据文件,然后在Tecplot中绘图。 


右视图1.jpg

图1  6种不同工况的计算结果文件


最直接的办法是依次打开每一个case和data文件,在每一个case中建立一个surface(用来表示子午面),然后对每一个case导出子午面的数据。这里为了举例只算了6种工况,但是如果实际的工况数量很多,这样做会非常麻烦。


有没有更自动化的办法呢?答案是有的。我们可以编写一个小程序(图2),生成一个FLUENT的命令文件。(注:用百分号“%”标记的注释可以省去。)


clear fid=fopen('j1.jou','wt'); % 打开FLUENT的命令文件 listing=dir('d:\a\'); % 列出文件夹中的所有文件 for i=1:length(listing) % 依次检查每一个文件    if ~isempty(strfind(listing(i).name,'.cas'))  % 如果文件名中含有".cas"        fprintf(fid,'file r-c-d "d:\\a\\%s"\n',listing(i).name);  % 让FLUENT读取这个文件                % 让FLUENT建立一个surface来表示子午面        fprintf(fid,'surface iso-surf x-coordinate surface1 () () (0)\n');        [pathstr, name, ext] = fileparts(listing(i).name); % 将文件名中的扩展名去掉                % 让 FLUENT输出子午面的速度场        fprintf(fid,'file export tecplot "d:\\a\\%s_tec.dat" (surface1) velocity-magnitude q\n',name);    end end fclose(fid); % 关闭FLUENT的命令文件

图2 用MATLAB语言编写一个小程序


程序运行后生成的FLUENT命令文件如图3所示。可以看出,在这个文件里面已经写入了对6种工况的计算结果依次进行处理的命令。关于FLUENT文本命令系统,读者可以参阅FLUENT的User’s Guide中的“Text User Interface(TUI)”这一章。对于在图形界面(菜单栏、导航窗格)中的每个功能,文本命令系统中都有相应的命令。

 

右视图2.jpg

图3 程序运行后生成的FLUENT命令文件


最后,我们运行FLUENT,在菜单栏选择[File]->[Read]->[Journal…],选取刚才生成的命令文件,然后FLUENT就会自动地依次处理6种工况的结果了(图4)。


右视图3.jpg

图4 在FLUENT中执行命令文件的结果


当我们再次打开文件夹的时候,里面已经对每种工况都生成了Tecplot数据文件(图5)。


右视图4.jpg

图5 生成的Tecplot数据文件


图6和图7分别给出了雷诺数为100和300的结果。可以看出Re=100的时候,尾迹中的速度分布是对称的;而Re=300的时候,则变成不对称的。这是层流流动失稳的结果。实际上,根据[1]的计算结果,存在两个临界雷诺数,第一临界雷诺数约为212,第二临界雷诺数为270~285。当流动雷诺数小于第一临界值的时候,圆球绕流的尾迹是轴对称的;当雷诺数增大到位于第一临界值和第二临界值之间的时候,流动发生失稳,尾迹变为非轴对称的,但是仍然是定常流动;当雷诺数增大到大于第二临界值的时候,流动再次发生失稳,出现非定常的涡脱落现象。


右视图5.jpg

图6   Re=100时的速度分布

 

右视图6.jpg

图7   Re=300时的速度分布




来源:流体的那些事儿(ID:happyfluid转载分享


登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP

1
2