吾生有涯 学海无涯
析模有界 知识无界

一个极简的Fluent ACT开发流程

内容纲要

本文简单且完整地介绍如何利用ACT定义Fluent仿真计算流程。

案例ACT要实现的功能包括:

  • 导入msh文件
  • 指定湍流模型
  • 指定进出口边界
  • 指定迭代次数
  • 执行计算

1 计算模型描述

用一个最简单的计算模型进行ACT测试。测试模型如图所示。

尽可能简单的案例。考虑一个长度100 mm,直径20 mm的圆管,入口速度1 m/s,流体介质为液态水(密度1000 kg/m3,动力粘度0.001 Pa.s)。

雷诺数:

采用SST k-omega湍流模型进行计算。计算中采用2D轴对称模型,计算模型如图所示。

案例边界示例

2 准备TUI

Fluent ACT开发,其核心功能实现来源于TUI。因此先把TUI命令挑出来,多调试几次,确保运行顺畅。

;打开网格文件Ex.msh
/file/read-case "EX.msh"
;修改空间形式为轴对称
/define/models/axisymmetric? yes
;设置湍流模型为realizable k-epsilon模型
/define/models/viscous/ke-realizable? yes
;改变默认材料air为water,并修改其密度与粘度值
/define/materials/change-create air water yes,1000,,yes,0.001,,,yes
;设置入口速度为2m/s
/define/boundary-conditions/set/velocity-inlet ,,vmag,2 q
;采用混合初始化
/solve/initialize/hyb-initialization
;指定迭代次数为300次并执行计算
/solve/iterate/300
;保存cas及dat文件
/file/write-case-data EX2.cas

3 搭建ACT

现在搭建一个ACT框架,从网格导入到求解计算。界面GUI构造可利用ANSYS提供的APP Builder来完成。

  • 启动ANSYS Workbench,点击工具栏按钮ACT Start Page打开ACT Home面板
ACT工具按钮
  • 点击按钮Open App Builder打开APP设计程序
打开App Builder
  • 选中按钮新项目打开项目创建对话框
创建新项目
  • 设置项目名称及路径
输入项目名称及路径
  • 点击按钮添加产品
选择目标模块
  • 选择产品为Fluent,点击OK按钮关闭对话框
  • 点击按钮新建向导创建新的向导
  • 指定新的向导名称及标签
  • 点击下图所示按钮,添加文件打开对话框控件
  • 指定控件属性及属性标签,如下图所示
  • 添加浮点数控件Density,指定属性名、标签、默认值及单位
  • 添加浮点数控件viscosity,指定属性名、标签、默认值及单位
  • 添加浮点数控件velocity,指定属性名、标签、默认值及单位
  • 添加整数控件numIteration,指定属性名、标签、默认值及单位
  • 构建完毕后如下图所示
  • 右侧面板选择回调函数为Update,并输入代码

输入以下代码:

tui = ExtAPI.Application.ScriptByName("TUI")

filename = step.Properties["importFile"].Value
tui.SendCommand("""/file/read-mesh {0} """.format(filename))
tui.SendCommand("""/file/read-case EX.msh""")
tui.SendCommand("""/display/mesh ok""")

tui.SendCommand("""/define/models/axisymmetric? yes""")
tui.SendCommand("""/define/models/viscous/ke-realizable? yes""")

dens = step.Properties["Density"].Value
vis = step.Properties["viscosity"].Value
vel = step.Properties["velocity"].Value
nt = step.Properties["numIteration"].Value

tui.SendCommand("""/define/materials/change-create air water yes,{0},,yes,{1},,,yes""".format(dens,vis))

tui.SendCommand("""/define/boundary-conditions/set/velocity-inlet ,,vmag,{0} q""".format(vel))
tui.SendCommand("""/solve/initialize/hyb-initialization""")
tui.SendCommand("""/solve/iterate/{0}""".format(nt))
  • 点击如下图所示工具栏按钮输出为脚本扩展

此时文件夹内结构如图所示。

4 代码

用文本编辑器打开pipeDemo.xml文件,其内容为:


<extension name="pipeDemo">
<imagedirectory>.imagedirectory>
<guid>c8d33dfd-dc23-4b56-ba87-ffe89f3ba132guid>
<script src="IDEGeneratedMain.py" />
<wizard name="mywizard" caption="mywizard" version="1" context="Fluent">
<step name="workflow" version="0" caption="工作流程">
<property control="fileopen" name="importFile" caption="导入文件:" persistent="False" parameterizable="False" />
<property control="float" name="Density" caption="密度:" persistent="False" parameterizable="False" default="1000 [kg m^-3]" unit="Density" />
<property control="float" name="viscosity" caption="粘度:" persistent="False" parameterizable="False" default="0.001 [Pa s]" unit="Dynamic Viscosity" />
<property control="float" name="velocity" caption="入口速度:" persistent="False" parameterizable="False" default="2.0 [m s^-1]" unit="Velocity">
<help>输入入口速度help>

property>
<property control="integer" name="numIteration" caption="迭代次数:" persistent="False" parameterizable="False" default="300">
<help>输入迭代次数help>
property>
<callbacks>
<onupdate>onupdateSteponupdate>
callbacks>
step>
wizard>
extension>

可以看到前面的界面搭建工作实际上是构造了这么一个文件,所有信息都在此文件中。

注意文件中原本有2个回调函数onupdateStep及onresetStep,我这里删掉了onresetStep。在onupdateStep用于实现脚本功能。函数在文件IDEGeneratedMain.py中定义。

在在onupdateStep函数中执行TUI脚本。

def onupdateStep(step):
tui = ExtAPI.Application.ScriptByName("TUI")

filename = step.Properties["importFile"].Value
tui.SendCommand("""/file/read-mesh {0} """.format(filename))
tui.SendCommand("""/file/read-case EX.msh""")
tui.SendCommand("""/display/mesh ok""")

tui.SendCommand("""/define/models/axisymmetric? yes""")
tui.SendCommand("""/define/models/viscous/ke-realizable? yes""")

dens = step.Properties["Density"].Value
vis = step.Properties["viscosity"].Value
vel = step.Properties["velocity"].Value
nt = step.Properties["numIteration"].Value

tui.SendCommand("""/define/materials/change-create air water yes,{0},,yes,{1},,,yes""".format(dens,vis))

tui.SendCommand("""/define/boundary-conditions/set/velocity-inlet ,,vmag,{0} q""".format(vel))
tui.SendCommand("""/solve/initialize/hyb-initialization""")
tui.SendCommand("""/solve/iterate/{0}""".format(nt))

  • 如下图所示点击按钮编译ACT
  • 对话框中指定输出文件夹,点击构建按钮编译ACT
  • 生成扩展名为wbex的ACT

5 测试

  • 启动Fluent,注意勾选选项Load ACT选项
  • 点击按钮Manage Extensions打开管理面板
  • 点击Install按钮并选择前面生成的wbex文件安装ACT
  • 如下图所示加载扩展
  • 点击按钮Launch Wizards按钮打开扩展运行面板
  • 点击扩展mywizard按钮以运行
  • 启动后如下图所示,指定msh文件并点击Finish按钮运行脚本
  • 此时会锁定ACT,直至ACT运行完成。

相关文件下载链接:

本篇文章来源于微信公众号: CFD之道

赞(0) 打赏
版权声明:未经允许,请勿随意用于商业用途。
文章名称:《一个极简的Fluent ACT开发流程》
文章链接:https://www.topcfd.cn/13986/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

说两句 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者吧

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册