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

PyFluent文档|04 使用TUI命令

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之道

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

说两句 抢沙发

评论前必须登录!

 

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

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

支付宝扫一扫

微信扫一扫

登录

找回密码

注册