首页/文章/ 详情

PyFluent文档|04 使用TUI命令

精品
作者优秀平台推荐
详细信息
文章亮点
作者优秀
优秀教师/意见领袖/博士学历/特邀专家
平台推荐
内容稀缺
9天前浏览1127

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之道
MeshingFluentpython控制ANSYS
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-06-22
最近编辑:9天前
CFD之道
博士 | 教师 探讨CFD职场生活,闲谈CFD里外
获赞 2485粉丝 10646文章 683课程 27
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈