TUI 命令是一种编程接口,其模仿了 Fluent TUI(文本用户界面)的功能。Fluent针对 meshing 和 solution 这两种模式,分别定义了一套 TUI 命令层级结构。当前激活的层级结构取决于 Fluent 正处于哪种模式。本主题中的指导内容对这两种模式均适用。
PyFluent的TUI命令能够自动化工作流程。Fluent TUI中包含的所有功能(其本身就是一个全面的自动化接口)都在PyFluent中得以展现。PyFluent的TUI命令是Fluent控制台中所用命令的Python风格版本。
PyFluent的TUI命令不支持如别名或命令缩写等TUI特性。为了便于在交互式会话中使用PyFluent命令,可以安装诸如pyreadline3这样的工具,其提供了命令行补全和历史记录功能。若要更深入地检查任何PyFluent TUI对象,可以使用Python内置的help和dir函数。例如,要查看Viscous 模型菜单下的可用选项,假设solver
是通过launch_fluent
返回的会话实例,可以使用以下代码:
>>> dir(solver.tui.define.models.viscous)
['add_intermittency_transition_model', 'add_transition_model',
'corner_flow_correction', 'curvature_correction',
'detached_eddy_simulation', 'inviscid', 'k_kl_w', 'ke_realizable', 'ke_rng',
'ke_standard', 'kw_bsl', 'kw_geko', 'kw_low_re_correction', 'kw_sst',
'kw_standard', 'kw_wj_bsl_earsm', 'laminar', 'large_eddy_simulation',
'mixing_length', 'near_wall_treatment', 'reynolds_stress_model', 'sas',
'spalart_allmaras', 'transition_sst', 'turbulence_expert', 'user_defined']
要查看viscous模型菜单选项的文档,可以执行:
>>> help(solver.tui.define.models.viscous)
Help on viscous in module ansys.fluent.core.solver.tui_241 object:
class viscous(ansys.fluent.core.services.datamodel_tui.TUIMenu)
| viscous(service, version, mode, path)
|
| Enters the viscous model menu.
|
| Method resolution order:
| viscous
| ansys.fluent.core.services.datamodel_tui.TUIMenu
| builtins.object
|
| Methods defined here:
|
| __init__(self, service, version, mode, path)
| __init__ method of TUIMenu class.
|
| add_intermittency_transition_model(self, *args, **kwargs)
| Enable/disable the intermittency transition model to account for transitional effects.
...
从Fluent 2023 R2版本开始,Fluent的Python日志中包含了与在Fluent控制台直接执行的TUI命令相对应的Python调用。如果存在对应的设置API命令,Python日志功能将生成对该API的调用。不论是meshing还是solution模式,都可以利用这一Beta功能来为PyFluent构建TUI命令。下面部分详细说明了在不同Fluent版本中如何构造PyFluent的TUI命令。
1 TUI命令构造
-
从2023 R2版起,通过Fluent运行时开启Python日志,TUI命令的执行会在日志中转化为Python调用。例如,在solution模式下,直接在Fluent控制台输入如下命令设置速度入口边界条件:
/define/boundary_conditions/set/velocity-inlet
随后按照提示输入响应,或一次性输入完整命令:
/define/boundary_conditions/set/velocity-inlet velocity-inlet-5 () temperature no 293.15 quit
对应生成的日志中会包含可以直接在PyFluent中执行的代码,假设
solver
是通过launch_fluent
获得的会话实例:solver.setup.boundary_conditions.velocity_inlet['inlet1'] = {"t" : 293.15}
-
对于没有直接对应设置API的命令,如设置压力单位:
/define/units pressure "Pa"
日志会记录为:
solver.tui.define.units('pressure', '"Pa"')
-
引入了
-topy
命令行标志,用于将现有Fluent日志转换为Python日志,例如:fluent.exe 3ddp -i my_journal.jou -topy
2 TUI命令转换规则
-
TUI路径中的斜杠 /
在Python中被转换为点.
表示法。 -
路径元素中的非法Python标识符字符(如破折号 -
转为下划线_
,问号?
被移除)需进行替换或移除。 -
字符串处理规则包括: -
字符串类型的参数必须用引号包围。 -
原TUI中用双引号包围的字符串参数在Python中需额外包裹一层单引号以保留原双引号。 -
字符串参数的内容保持不变。
在Fluent 2023 R1版本中,只有存在设置API的TUI命令才会被转换为API形式记录,其余则以非Python风格记录,需要手动转换。而2022 R2版本尚不支持Python日志功能,所有TUI命令都需要依据上述规则手动转换。
注:本文内容翻译自PyFluent用户文档。
”
(完)
本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册