本教程暂时仅限于稳态计算使用
Fluent的计算无非两种,稳态和瞬态,一个项目里稳态case的工作量往往体现于数量,而瞬态case的工作量则体现于时间,如果数量和时间都占了,那你应该需要大量的计算资源。
以前研一做项目时,使用Fluent计算的稳态case数量非常多,而且往往都是重复性case,时间都花在了画模型、网格、设置case和后处理上了,只要人不在那么Fluent计算完一个case后被迫停止,一天下来有效的CPU计算时间也就不到10个小时,还极大地占用了人力成本。
这个教程的目的就是实现Fluent计算稳态case的高效率、自动化操作,计算效率翻几倍甚至十几倍,还能解放你的双手
下面一一介绍从建立几何模型到后处理全流程的高效率自动化操作:
一、DM-Workbench参数化建模
DesignerModeler 软件支持将草图或立体操作中的几乎任何设置为参数,这些参数可以直接在Workbench中修改,只需要改一个数字就可以让DM自动更新几何体,下面这张图是一个画了两个多小时的复杂3D翅片模型,其中添加了近20个变量,可自由修改的有4-5个,剩下的都是被约束变量,由表达式赋值(类似 P1+P2 等),约束变量非常重要,在建模的时候一定一定要处理好各个变量之间的约束关系,否则一变参数几何体直接生成错误(这里Workbench显示的有些问题,存成.agdb后约束信息全部丢失,只留下了图中的数字结果)
二、Fluent mesh 网格自动更新
在Workbench内打开Fluent mesh,默认就是如下的水密工作流,根据流程画好一个网格后,直接在Workbench内右键点击update就可以重复流程生成网格,需要注意:带有共享拓扑可能无法成功更新边界条件,对于有边界层的网格就无法正常更新,目前19R3版本无法解决。
三、Fluent jou和scm脚本设置case
需要说一下:一个完整的计算过程在Workbench里面是可以直接用参数化+工作流实现的,当然弊端就是目前Workbench这个自动更新做的不是太好(包括Fluent mesh的自动更新 和 Fluent设置的自动更新,即replace mesh经常有bug),经常会有更新失败并卡死的情况,这个教程提供的方法不存在上述问题,每个过程都是单独分开的,而且每一步自动化都是由你自己控制的,出现bug可适当调整
用脚本设置case;控制case计算-保存-输出结果-更新边界-再次计算 这一循环
四、Python 高效率后处理与绘图
Fluent支持将一些后处理结果(如面平均温度,面流量等参数导出到txt文件),按照一定规律命名这些txt文件(脚本自动实现),然后用Python中的库函数读取txt,用numpy 、pandas 、matplotlib 库配合数据处理与绘图,直接由计算结果生成最终图像
例如如下命令就是使用pandas读取fluent中plot XY输出的.txt结果
df1 = pd.read_table('./变结构数据/田口/PLOT-tian' + str(i + 1) + '.txt', sep=' ', header=None, skiprows=4,
comment=')', encoding='utf-8', names=['z', 'v'])