PyFluent同样支持运算结果的可视化,借助 PyFluent-Visualization 对 Fluent 结果进行后处理可以显示图形对象和绘图数据。我们使用3D排气歧管模型进行演示,通过歧管的气流是湍流的并且涉及共轭传热。 如需模型可以回复:“歧管”,获取下载链接。 网格的可视化 需要显示网格我们仍然需要启动求解器并读取网格或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")
云图显示 在此基础上可以继续进行云图的显示,使用下述代码进行速度云图的绘制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")
数据图显示 数据图显示需要先创建绘图对象
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"
设置完成后就可以进行显示 同样地我们还可以绘制残差图
matplotlib_plots1 = Plots(solver_session) residual = matplotlib_plots1.Monitors["residual"] residual.monitor_set_name = "residual" residual.plot("window-10")
|