在Fluent中可以利用菜单 File → Write → Start Journal… 将用户的操作过程录制为脚本,采用此方法录制的脚本为Scheme脚本。
直接录制时,软件会将用户的所有GUI操作都存储到脚本文件中,导致文件又臭又长。而且这种脚本文件只能在Fluent GUI开启的情况下使用,严重限制了脚本文件的后续使用。如下图所示的录制脚本,实际上只做了4个操作:导入了一个名为pipe.msh的网格文件,指定了边界fluid/fluid_1_1的速度为3 m/s,进行了hybrid初始化,并执行了100次迭代计算。

我们也可以在脚本文件中使用TUI命令,然而这种方式无法通过录制的方式自动完成。用户需要对TUI命令有所了解才行。如上面的操作,可以写成如下的TUI命令。
/file/read-case "pipe.msh"
/define/boundary-conditions/set/velocity-inlet inlet/fluid_1_1 () vmag no 2 q
/solve/initialize/hyb-initialization
/solve/iterate 100
TUI脚本要比录制的脚本简洁,并且这种脚本文件不仅可以在Fluent GUI中读取执行,也可以通过命令在无界面的环境下调用执行。TUI脚本可以与Scheme脚本混合使用,但如果Scheme脚本中掺杂了GUI操作的话,则整个脚本都无法在非GUI模式下使用。当然,我们可以在脚本中使用纯粹的Scheme语言是没有问题的,比如利用Scheme语言读取其他的配置文件什么的。
较新Fluent的Beta版本中支持使用Python语言脚本,支持以python语言编写的脚本文件(目前不支持直接录制python脚本),如果本机安装有PyFluent的话,也可以利用下面的代码将录制的jou脚本转换成py脚本。
import ansys.fluent.core as pyfluent
# 假设脚本文件为test.jou
solver = pyfluent.launch_fluent(journal_file_names='test.jou',topy=True)
solver.exit()
如上面的脚本1转换后的代码如下所示。

脚本2转换后的代码如下所示。
import os
if not os.getenv('FLUENT_PROD_DIR'):
import ansys.fluent.core as pyfluent
flglobals = pyfluent.setup_for_fluent(product_version="25.1.0", mode="solver", dimension=3, precision="double",
processor_count=6, ui_mode="hidden_gui", graphics_driver="dx11")
globals().update(flglobals)
solver.settings.file.read_case(file_name = "pipe.msh")
solver.settings.setup.boundary_conditions.velocity_inlet['inlet/fluid_1_1'] = {"momentum" : {"velocity_magnitude" : {"value" : 2.}}}
solver.settings.solution.initialization.initialization_type = "hybrid"
solver.settings.solution.initialization.hybrid_initialize()
solver.settings.solution.run_calculation.iter_count = 100
solver.settings.solution.run_calculation.iterate()
需要注意的是,GUI脚本转换后也只能在GUI下工作。
想要Fluent可以调用py脚本,可以在Fluent启动时,激活选项 Python Console(Beta)。

在Fluent启动后,可以利用菜单 File → Read → Journal… 打开文件选择对话框,如下图所示,可以选择jou脚本或py脚本。

py脚本最大的优势在于可以利用python强大的生态,可以很轻松地对脚本进行扩展。相比较而言,Scheme就弱很多。
(完)

本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册