任何想要使用PyFluent的人都可以导入其Python模块,并开发Python代码来控制和监控ANSYS Fluent。
# 1 概览
用户可以使用 方法启动作为后台服务器运行的 Fluent 实例。
from ansys.fluent.core import launch_fluent
solver = launch_fluent(mode="solver")
复制成功
from ansys.fluent.core import launch_fluent
meshing = launch_fluent(mode="meshing")
复制成功
PyFluent 允许创建和初始化多个独立的会话对象,每个对象都对其当前模式(Solution或Meshing)相关的 Fluent 组件具有完全访问权限。
Solution模式会话有一个活动的 对象,其为求解器提供了两个不同的接口:
求解器的 对象是 Fluent 求解器 TUI(文本用户界面)的完整 Python 封装。该对象允许直接执行求解器命令和修改求解设置,对于现有 Fluent 用户来说,其使用方式很简单:
代码块
tui = solver.tui
tui.file.read_case("pipe.cas.h5")
tui.define.models.energy("yes")
复制成功
2.2 root对象
求解器 对象不仅暴露了大部分 对象所涵盖的求解器功能,还提供了一些通过 对象无法实现的额外接口特性:
代码块
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模式会话有一个活动的 对象,其为网格生成器提供了两个不同的接口:
网格化 对象是 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属性
对象包含 和 属性,它们共同提供了对 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模式会话中, 对象通过其 属性提供更直接的交互方式:
代码块
unsteady = solver.scheme_eval.scheme_eval("(rp-unsteady?)")
复制成功
属性的参数是可以针对当前模式在 Fluent 中执行的任意 Scheme 代码的字符串。
表面物理场和网格数据服务仅在Solution模式下通过会话对象的 对象属性可用:
代码块
surface_data = solver.fields.field_data.get_fields()
复制成功
任何会话的连接状态都可通过以下方式验证:
代码块
health = solver.health_check_service.status()
复制成功
当且仅当连接正常时,返回 。
默认情况下 Fluent transcript的流式传输会自动开启。用户可以手动停止和启动transcript的流式传输:
代码块
solver.transcript.stop()
solver.transcript.start()
复制成功
可以通Solution模式会话的 属性启用和禁用与各种求解器事件类型相关的事件流式传输:
代码块
solver.events_manager.start()
复制成功
7 将日志记录到文件和调试
PyFluent 默认禁用了到文件的日志记录。可以通过以下方式启用日志记录:
代码块
import ansys.fluent.core as pyfluent
pyfluent.logging.enable()
复制成功
最后一条命令等同于 ,其使用 PyFluent 的默认日志级别。
PyFluent 默认情况下会在当前工作目录下创建一个名为 的文件进行日志记录。要了解更多细节,可以参考 方法的文档说明。
一旦启用了日志记录,还可以调整 PyFluent 的全局日志等级,操作方式如下:
代码块
pyfluent.logging.set_global_level('DEBUG')
复制成功
这条命令等同于 ,其中 和 都代表调试级别,是日志级别中最详细的,包含了最多的日志信息。
除了上述方法外,还可以参考以下函数以获取更多与日志管理相关的功能:
PyFluent 的日志记录器采用了 Python 标准库中的日志模块,这意味着你可以利用标准库中所有的日志处理功能来自定义日志行为,比如日志的输出格式、处理程序(handler)以及过滤器(filter)等。更多关于 PyFluent 日志模块的详细信息,请查阅专门的 (日志模块文档)。
可以通过环境变量 在 PyFluent 启动时自动启用全局日志记录,例如可将其设置为 或 。将 设置为 或 不会在启动时将初始化日志记录到文件,这与未设置此变量时的行为相同。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删