PyFluent入门之旅(6)结果的可视化

PyFluent同样支持运算结果的可视化,借助 PyFluent-Visualization 对 Fluent 结果进行后处理可以显示图形对象和绘图数据。

  • 对于网格、云图、矢量图等图像结果可以调用PyVista进行可视化。
  • 对于残差图、XY折线图等数据结果可以调用Matplotlib进行可视化。

我们使用3D排气歧管模型进行演示,通过歧管的气流是湍流的并且涉及共轭传热。

1. 网格的可视化

需要显示网格我们仍然需要启动求解器并读取网格或case文件。首先通过下述代码导入后续操作所调用的库。

import ansys.fluent.core as pyfluent
from ansys.fluent.visualization import set_config
from ansys.fluent.visualization.matplotlib import Plots
from ansys.fluent.visualization.pyvista import Graphics
set_config(blocking=True, set_view_on_display="isometric")

接着启动求解器并读取案例及数据文件

solver_session = pyfluent.launch_fluent(
    precision="double", processor_count=2, mode="solver"
)

solver_session.tui.file.read_case_data('exhaust_system.cas.h5')

打开edge的显示并设置需要显示的边界,即可显示网格

graphics = Graphics(session=solver_session)
mesh1 = graphics.Meshes["mesh-1"]
mesh1.show_edges = True
mesh1.surfaces_list = [
    "in1",
    "in2",
    "in3",
    "out1",
    "solid_up:1",
    "solid_up:1:830",
    "solid_up:1:830-shadow",
]
mesh1.display("window-1")

如图所示可以在窗口中自由拖动与缩放网格图像

可以在此基础上创建平面,例如以XY平面为基础创建。

surf_xy_plane = graphics.Surfaces["xy-plane"]
surf_xy_plane.definition.type = "plane-surface"
plane_surface_xy = surf_xy_plane.definition.plane_surface
plane_surface_xy.z = -0.0441921
surf_xy_plane.display("window-3")

效果如下:

还可以创建等值面,例如在出口处创建等值面。

surf_outlet_plane = graphics.Surfaces["outlet-plane"]
surf_outlet_plane.definition.type = "iso-surface"
iso_surf1 = surf_outlet_plane.definition.iso_surface
iso_surf1.field = "y-coordinate"
iso_surf1.iso_value = -0.125017
surf_outlet_plane.display("window-3")

2. 云图显示

在此基础上可以继续进行云图的显示,使用下述代码进行速度云图的绘制

surf_vel_contour = graphics.Surfaces["surf-vel-contour"]
surf_vel_contour.definition.type = "iso-surface"
iso_surf3 = surf_vel_contour.definition.iso_surface
iso_surf3.field = "velocity-magnitude"
iso_surf3.rendering = "contour"
iso_surf3.iso_value = 0.0
surf_vel_contour.display("window-5")

同样可以选择平面进行云图绘制,例如选择中心面和出口面

temperature_contour = graphics.Contours["contour-temperature"]
temperature_contour.field = "temperature"
temperature_contour.surfaces_list = ["mid-plane-x", "outlet-plane"]
temperature_contour.display("window-6")

温度云图

temperature_contour_manifold = graphics.Contours["contour-temperature-manifold"]
temperature_contour_manifold.field = "temperature"
temperature_contour_manifold.surfaces_list = [
    "in1",
    "in2",
    "in3",
    "out1",
    "solid_up:1",
    "solid_up:1:830",
]
temperature_contour_manifold.display("window-7")

同样可以创建速度矢量图

velocity_vector = graphics.Vectors["velocity-vector"]
velocity_vector.surfaces_list = ["solid_up:1:830"]
velocity_vector.scale = 2
velocity_vector.display("window-8")

3. 数据图显示

数据图显示需要先创建绘图对象

plots_session_1 = Plots(solver_session)

接着就可以创建XY图

xy_plot = plots_session_1.XYPlots["xy-plot"]

设置绘图表面和 Y 轴功能

xy_plot.surfaces_list = ["outlet"]
xy_plot.y_axis_function = "temperature"

设置完成后就可以进行显示

xy_plot.plot("window-9")

同样地我们还可以绘制残差图

matplotlib_plots1 = Plots(solver_session)
residual = matplotlib_plots1.Monitors["residual"]
residual.monitor_set_name = "residual"
residual.plot("window-10")

  • 13
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值