Fluent脚本用起来挺爽,但写起来挺麻烦。比如下面的这段TUI脚本:
; 读取网格文件
/file/read-case elbow.msh.h5
; 激活能量方程
/define/models/energy? yes,,,,
; 指定边界cold-inlet的入口速度2m/s,温度350K
/define/boundary-conditions/velocity-inlet cold-inlet ,,,,,2,,,350,,,,,
; 指定边界hot-inlet的入口速度4m/s,温度450K
/define/boundary-conditions/velocity-inlet hot-inlet ,,,,,4,,,450,,,,,
; 采用Hybrid初始化
/solve/initialize/hyb-initialization
; 迭代计算100次
/solve/iterate 100
; 保存case与data文件,若文件已存在则覆盖
/file/write-case-data "elbow1.cas" ok
; 关闭Fluent
/exit
这段脚本实现的的功能很简单,看着也不复杂,但是如果要手工去写,似乎就没那么容易了,里面一堆逗号,看着就毫无逻辑性可言。目前只能是在Fluent中一边使用TUI操作,一边打开记事本手工往里面敲逗号,过程繁琐且极易出错。
1 录制TUI脚本
Fluent提供了脚本录制功能,然而如果是GUI操作的话,录制的脚本都是一堆cx-gui-do函数,而且也只能在Fluent GUI环境下使用,根本没啥意义。不过如果是TUI操作的话,则录制的脚本就是真的TUI脚本了,这样相比手工写脚本来说,不容易出错。
具体操作步骤为:
-
1. 启动Fluent -
2. 点击菜单 Flie → Write → Start Journal...,在打开的文件选择对话框中指定保存的脚本文件名 -
3. 在Fluent 控制台窗口中输入TUI命令(只需要输入命令即可,后面的参数按照屏幕提示输入),如下图所示 
-
4. TUI执行完毕后,点击菜单 File → Write → Stop Journal自动保存脚本文件
录制的脚本如下所示。
/file/set-tui-version "25.2"
/file/read-case "elbow.msh.h5"
/define/models/energy? no
/define/models/energy? yes no no no no
/define/boundary-conditions/velocity-inlet cold-inlet no no yes yes no 2 no 0. no 350 no no yes 4 8
/define/boundary-conditions/velocity-inlet hot-inlet no no yes yes no 4 no 0. no 450 no no yes 5. 10
/solve/initialize/hyb-initialization
/solve/iterate 100
/file/write-case-data "elbow.msh.h5"
2 录制Python脚本
在较新的Fluent版本中,可以支持录制Python脚本,这样可以直接在PyFluent环境中使用。
主要操作步骤为:
-
1. 启动Fluent -
2. 在TUI窗口输入 (api-start-python-journal "pyfluent_jou.py") 
-
3. 在TUI窗口输入并执行TUI命令(也可以直接读入前期准备好的jou文件) -
4. 运行完毕后输入 (api-stop-python-journal)
此时录制的脚本文件保存在pyfluent_jou.py中,其内容为:
import os
if not os.getenv('FLUENT_PROD_DIR'):
import ansys.fluent.core as pyfluent
flglobals = pyfluent.setup_for_fluent(product_version="25.2.0", mode="solver", dimension=3, precision="double", processor_count=6, ui_mode="gui", graphics_driver="dx11", gpu=False)
globals().update(flglobals)
solver.settings.file.read_case(file_name = 'elbow.msh.h5')
solver.settings.setup.models.energy = {'enabled' : True, 'inlet_diffusion' : False}
solver.settings.setup.boundary_conditions.velocity_inlet['cold-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 2.}}, 'turbulence' : {'turbulent_viscosity_ratio' : 8, 'turbulent_intensity' : 0.04}, 'thermal' : {'temperature' : {'value' : 350.}}}
solver.settings.setup.boundary_conditions.velocity_inlet['hot-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 4.}}, 'thermal' : {'temperature' : {'value' : 450.}}}
solver.settings.solution.initialization.initialization_type = 'hybrid'
solver.settings.solution.initialization.hybrid_initialize()
solver.settings.solution.run_calculation.iterate(iter_count = 100)
solver.settings.file.write(file_type = 'case-data', file_name = 'elbow.msh.h5')
如果在Fluent中启用了python console,上面录制的代码可以在Fluent中通过菜单File → Read → Journal...读取并执行。
如果安装了pyfluent的话,这里的代码也可以进行简单修改,如将setup_for_fluent改成fluent_launch函数,这样看起来更直观。
import ansys.fluent.core as pyfluent
solver = pyfluent.launch_fluent(product_version="25.2.0", mode="solver", dimension=3, precision="double", processor_count=4, ui_mode="hidden_gui", graphics_driver="dx11", gpu=False)
solver.settings.file.read_case(file_name = 'elbow.msh.h5')
solver.settings.setup.models.energy = {'enabled' : True, 'inlet_diffusion' : False}
solver.settings.setup.boundary_conditions.velocity_inlet['cold-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 2.}}, 'turbulence' : {'turbulent_viscosity_ratio' : 8, 'turbulent_intensity' : 0.04}, 'thermal' : {'temperature' : {'value' : 350.}}}
solver.settings.setup.boundary_conditions.velocity_inlet['hot-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 4.}}, 'thermal' : {'temperature' : {'value' : 450.}}}
solver.settings.solution.initialization.initialization_type = 'hybrid'
solver.settings.solution.initialization.hybrid_initialize()
solver.settings.solution.run_calculation.iterate(iter_count = 100)
solver.settings.file.write(file_type = 'case-data', file_name = 'elbow.msh.h5')
3 脚本转换
TUI脚本可以通过pyfluent中的launch_fluent函数将TUI脚本转换成py脚本。
采用下面的程序:
import ansys.fluent.core as pyfluent
solver_session = pyfluent.launch_fluent(journal_file_names="pyfluent_jou.jou", topy=True)
solver_session.exit()
转换后的代码如下所示:
import os
if not os.getenv('FLUENT_PROD_DIR'):
import ansys.fluent.core as pyfluent
flglobals = pyfluent.setup_for_fluent(product_version="25.2.0", mode="solver", dimension=3, precision="double", processor_count=1, ui_mode="hidden_gui", graphics_driver="dx11", gpu=False)
globals().update(flglobals)
solver.tui.file.set_tui_version('"25.2"')
solver.settings.file.read_case(file_name = 'elbow.msh.h5')
solver.settings.setup.models.energy = {'enabled' : True, 'inlet_diffusion' : False}
solver.settings.setup.boundary_conditions.velocity_inlet['cold-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 2.}}, 'turbulence' : {'turbulent_viscosity_ratio' : 8, 'turbulent_intensity' : 0.04}, 'thermal' : {'temperature' : {'value' : 350.}}}
solver.settings.setup.boundary_conditions.velocity_inlet['hot-inlet'] = {'momentum' : {'velocity_magnitude' : {'value' : 4.}}, 'thermal' : {'temperature' : {'value' : 450.}}}
solver.settings.solution.initialization.initialization_type = 'hybrid'
solver.settings.solution.initialization.hybrid_initialize()
可以看到自动转换还是存在一些问题,如迭代计算、保存case和data文件等操作都没有正确转换,因此在实际应用中需要仔细检查。
(完)

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








现在有fluent网页版,在网页版上gui操作,后台会直接生成py代码,不过网页版功能不太全。