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

Fluent脚本录制及转换

 

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. 1. 启动Fluent
  2. 2. 点击菜单Flie → Write → Start Journal...,在打开的文件选择对话框中指定保存的脚本文件名
  3. 3. 在Fluent 控制台窗口中输入TUI命令(只需要输入命令即可,后面的参数按照屏幕提示输入),如下图所示

  4. 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 510 
/solve/initialize/hyb-initialization 
/solve/iterate 100 
/file/write-case-data "elbow.msh.h5"

2 录制Python脚本

在较新的Fluent版本中,可以支持录制Python脚本,这样可以直接在PyFluent环境中使用。

主要操作步骤为:

  1. 1. 启动Fluent
  2. 2. 在TUI窗口输入 (api-start-python-journal "pyfluent_jou.py")

  3. 3. 在TUI窗口输入并执行TUI命令(也可以直接读入前期准备好的jou文件)
  4. 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之道

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

说两句 1

评论前必须登录!

 

  1. #1

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

    Sphenscidae3个月前 (09-04)

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册