首页/文章/ 详情

PyFluent文档|01 总体介绍

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

任何想要使用PyFluent的人都可以导入其Python模块,并开发Python代码来控制和监控ANSYS Fluent。

1 概览

用户可以使用 launch_fluent() 方法启动作为后台服务器运行的 Fluent 实例。

  • 使用以下代码以Solution模式启动 Fluent:
from ansys.fluent.core import launch_fluent
solver = launch_fluent(mode="solver")
  • 使用以下代码可以在Meshing模式下启动 Fluent:
from ansys.fluent.core import launch_fluent
meshing = launch_fluent(mode="meshing")

PyFluent 允许创建和初始化多个独立的会话对象,每个对象都对其当前模式(Solution或Meshing)相关的 Fluent 组件具有完全访问权限。

2 Solution模式会话

Solution模式会话有一个活动的 solver 对象,其为求解器提供了两个不同的接口:

  • tui 对象
  • root 对象

2.1 tui对象

求解器的 tui 对象是 Fluent 求解器 TUI(文本用户界面)的完整 Python 封装。该对象允许直接执行求解器命令和修改求解设置,对于现有 Fluent 用户来说,其使用方式很简单:

tui = solver.tui
tui.file.read_case("pipe.cas.h5")
tui.define.models.energy("yes")

2.2 root对象

求解器 root 对象不仅暴露了大部分 tui 对象所涵盖的求解器功能,还提供了一些通过 tui 对象无法实现的额外接口特性:

solver.file.read(file_type="case", file_name="pipe.cas.h5")
solver.setup.models.energy.enabled = True
energy_is_enabled = solver.setup.models.energy.enabled()

3 Meshing模式会话

Meshing模式会话有一个活动的 meshing 对象,其为网格生成器提供了两个不同的接口:

  • tui 对象
  • 网格工作流,由 meshingworkflow 属性以及 PartManagementPMFileManager 类组成

3.1  tui 对象

网格化 tui 对象是 Fluent Meshing TUI(文本用户界面)的完整 Python 封装。该对象允许直接执行网格生成命令和修改网格设置,其使用方式如下:

tui = meshing_session.tui
tui.mesh.prepare_for_solve("yes")
tui.file.write_case("pipe.cas.h5")

3.2 Meshing 和Workflow属性

meshing 对象包含 meshingworkflow 属性,它们共同提供了对 Fluent Meshing工作流程的访问。此接口与 Fluent Meshing直接暴露的 Python 网格化工作流程接口保持一致:

workflow = meshing_session.workflow
workflow.InitializeWorkflow(WorkflowType="Watertight Geometry")
import_geometry = workflow.TaskObject["Import Geometry"]
import_geometry.Arguments = {"FileName":"pipe.scdoc.pmdb"}
import_geometry.Execute()

meshing = meshing_session.meshing
meshing.GlobalSettings.LengthUnit.set_state("mm")

4 搜索 Fluent 设置或命令

提供了一个全局搜索方法用于查找 Fluent 设置或命令:

>>> import ansys.fluent.core as pyfluent
>>> pyfluent.search("geometry")
<meshing_session>.tui.file.import_.cad_geometry (Command)
<meshing_session>.tui.display.update_scene.select_geometry (Command)
<meshing_session>.meshing.ImportGeometry (Command)
<meshing_session>.meshing.LoadCADGeometry (Command)
<solver_session>.tui.solve.initialize.compute_defaults.geometry (Command)
<solver_session>.tui.report.reference_values.compute.geometry (Command)
<solver_session>.tui.define.geometry (Command)
<solver_session>.tui.mesh.geometry (Object)
<solver_session>.setup.boundary_conditions.geometry["<name>"] (Object)
<solver_session>.setup.geometry (Object)
<solver_session>.solution.report_definitions.surface["<name>"].geometry (Parameter)
<solver_session>.solution.report_definitions.volume["<name>"].geometry (Parameter)
<solver_session>.results.graphics.mesh["<name>"].geometry (Parameter)
<solver_session>.results.graphics.contour["<name>"].geometry (Parameter)

5 会话对象

在Solution或Meshing模式会话中,session 对象通过其 scheme_eval 属性提供更直接的交互方式:

unsteady = solver.scheme_eval.scheme_eval("(rp-unsteady?)")

scheme_eval 属性的参数是可以针对当前模式在 Fluent 中执行的任意 Scheme 代码的字符串。

表面物理场和网格数据服务仅在Solution模式下通过会话对象的 field_data 对象属性可用:

surface_data = solver.fields.field_data.get_fields()

任何会话的连接状态都可通过以下方式验证:

health = solver.health_check_service.status()

当且仅当连接正常时,返回 "SERVING"

6 数据流式传输

默认情况下 Fluent transcript的流式传输会自动开启。用户可以手动停止和启动transcript的流式传输:

solver.transcript.stop()
solver.transcript.start()

可以通Solution模式会话的 events_manager 属性启用和禁用与各种求解器事件类型相关的事件流式传输:

solver.events_manager.start()

7 将日志记录到文件和调试

PyFluent 默认禁用了到文件的日志记录。可以通过以下方式启用日志记录:

import ansys.fluent.core as pyfluent
pyfluent.logging.enable()

最后一条命令等同于 pyfluent.logging.enable('DEBUG'),其使用 PyFluent 的默认日志级别。

PyFluent 默认情况下会在当前工作目录下创建一个名为 pyfluent.log 的文件进行日志记录。要了解更多细节,可以参考 ansys.fluent.core.logging.enable() 方法的文档说明。

一旦启用了日志记录,还可以调整 PyFluent 的全局日志等级,操作方式如下:

pyfluent.logging.set_global_level('DEBUG')

这条命令等同于 pyfluent.logging.set_global_level(10),其中 'DEBUG'10 都代表调试级别,是日志级别中最详细的,包含了最多的日志信息。

除了上述方法外,还可以参考以下函数以获取更多与日志管理相关的功能:

  • ansys.fluent.core.logging.enable():用于启用日志记录。
  • ansys.fluent.core.logging.list_loggers():列出所有可用的日志记录器。
  • ansys.fluent.core.logging.set_global_level(level):设置全局日志记录等级。

PyFluent 的日志记录器采用了 Python 标准库中的日志模块,这意味着你可以利用标准库中所有的日志处理功能来自定义日志行为,比如日志的输出格式、处理程序(handler)以及过滤器(filter)等。更多关于 PyFluent 日志模块的详细信息,请查阅专门的 logging module documentation(日志模块文档)。

7.1 环境变量

可以通过环境变量 PYFLUENT_LOGGING 在 PyFluent 启动时自动启用全局日志记录,例如可将其设置为 DEBUG10。将 PYFLUENT_LOGGING 设置为 0OFF 不会在启动时将初始化日志记录到文件,这与未设置此变量时的行为相同。

 

注:本文取自PyFluent UserGuide。


(完毕)

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