A Post-processing Computational Fluid Dynamics System for Turbomachinery

Computational fluid dynamics applied to the turbomachinery domain require specialized post-processing functionality. For computational fluid dynamics turbomachinery, we have developed a lightweight post-processing software. We have developed a system utilizing the Visualization Toolkit (VTK) for rendering and the Qt toolkit as the cross-platform graphical user interface platform. The system is lightweight, which implements the fundamental postprocessing functions such as iso-surface and cut plane visualization and determines the meridional plane and the constant blade/van height plane. We designed and evaluated two different methods to determine the meridional plane and the constant blade/van height plane and used VTK filters in VTK to obtain necessary scene information. Finally, we visualized these planes by using the VTK visualization pipeline.


Introduction
Turbomachinery is widely used in the aerospace and chemical engineering industries.Data visualization has a wide range of applications in various fields and is particularly important in computational fluid dynamics to gain a deep understanding and facilitate the interpretation of physics-based simulations [1][2][3][4].Therefore, visualization and post-processing of turbomachinery are extremely important tasks with practical industrial applications.
There exist many open-source visualization post-processing software packages.Tecplot [5] is a software that contains pre-processing and post-processing, which is not easy to use for beginners.Paraview [6] and VisIt [7] are powerful and widely used cross-platform post-processing platforms.These packages use VTK for visualizing data and include a graphic user interface (GUI) with userfriendly operational logic.However, with the inclusion of powerful features, both packages are relatively heavyweight and include multiple third-party dependencies.Cassiopée [8] is a tool that includes partial pre-processing and post-processing functions.It consists of a series of Python modules, including conversion, geometry, and generation modules.Each module is independent and capable of performing functions such as grid smoothing, grid partitioning, and post-processing of results.Another example is PyVista [9], a lightweight visualization package based on Python and VTK.Compared to the previously mentioned package, PyVista is more lightweight, but it does not support a GUI, which is inconvenient to use and requires greater user proficiency.The vedo [10] package is also a Python tool for scientific data analysis and 3D object visualization, but it does not support a GUI as well.PyVt [11] is a general post-processing software package based on Python and VTK.It is more lightweight with fewer thirdparty dependencies and has a user-friendly GUI.In addition, it implements some common postprocessing functions such as cut plane and iso-surface visualization.However, it is not tailored to the specific needs of the turbomachinery domain.
Therefore, combining our post-processing needs for turbomachinery as well as the advantages and disadvantages of the software mentioned above, we have developed a dedicated post-processing software for turbomachinery based on Qt and VTK, which is mainly used for visualizing meridional planes and the constant blade/van height plane.This software utilizes Qt for GUI layout and VTK for data and information visualization, and it is designed to make it convenient for beginners, with fundamental post-processing functions and tailored turbomachinery post-processing functions.This paper introduces the overall system design and the implementation of the meridional plane and constant blade/van height plane post-processing tasks.

Graphic user interface
The GUI is developed based on Qt, which is a cross-platform C++ application development framework.It is one of the state-of-the-art and most stable programming frameworks in regular usage.In addition, Qt integrates well with VTK and has good compatibility.The layout of the GUI is primarily designed to highlight the visual content and improve the usability of the software.The GUI is simpler than other software GUIs and hides the visualization process behind the scenes, only displaying the last output of the VTK pipeline.We can click the menubar or toolbar button and set the parameters to get the desired visualization content directly.The user can directly see the information contained in the input file and the type of scalar they prefer, which reduces the complexity of the software and allows the user to observe the visualization content more directly.

VTK visualization pipeline
The visualization of the input information is made possible by using the VTK.The VTK visualization pipeline provides a structured systematic interface to the visualization process, and all visualizations in VTK rely on this pipeline.Figure 2 shows the structure of the VTK visualization pipeline.The Source section is used to read the information from the input file.The Filter section receives the output from one or more Sources, processes the input accordingly, and produces the output.Different Filter classes in VTK have different inputs and outputs.The selection of an appropriate Filter class depends on its implemented functionality and desired inputs and outputs.This is a crucial part of the VTK visualization pipeline.Functions such as cutting plane and iso-surface rely on Filters for implementation.The Mapper ties the data visualization pipeline to the graphics device.The Actor interfaces with graphical data or objects.The Render step is used to display one or more actors.
All visualization functions are realized by using the VTK visualization pipeline, including visualization of the meridional plane and constant blade/van height plane.The source receives the input file and stores the information, different visualization functions choose different filters to process the data in the source, and implementation of a function may require the use of more than one filter.Then the output of the filter is put into the mapper, the actor receives the output of the mapper, and finally, all the actors are received in render and rendered.

Meridional plane
The meridional plane is an extremely important function in this software, which is mainly implemented by using the vtkPointInterpolator class, and the vtkGaussianKernel class is chosen for scalar interpolation.

Source
Filter Mapper Actor Render Figure 3 shows the visualization of the input file.The determination of the meridional plane involves converting the points and cells from the periodic surface into the specified angle in the cylindrical coordinate system.For the scalar information on the meridional plane, all points and their attribute information in the input file are converted to the specified angle and stored by using the vtkPolyData class.By inputting the information of the meridional plane and all the points into the vtkPointInterpolator class and choosing the specified kernel, the desired result can be obtained.In this study, the specified angle was set to 0, as shown in Figure 4.The meridional plane is on the top of Figure 4.

Constant blade/van height plane
The Constant blade/van height plane is another critical function in this software.It is mainly generated by using the vtkRotationalExtrusionFilter and vtkIntersectionPolyDataFilter classes in VTK, and the vtkProbeFilter class is used to obtain the scalar information of the constant blade/van height plane.The first step in obtaining the constant blade/van height plane is to extract the intersection lines between the hub and shroud surfaces and periodic surfaces.Next, these two intersection lines are used with vtkRotationalExtrusionFilter to create a surface with the specified height.Then, vtkIntersectionPolyDataFilter is used to obtain the intersection line between the surface and the blade.The vtkImplicitSelectionLoop class is utilized to obtain the implicit function of the intersection line.The vtkClipPolyData class is applied to the clipped portion between the intersection lines.Finally, vtkProbeFilter is used to acquire the scalar data, thus obtaining the constant blade/van height plane, as shown in Figure 5.An example visualization of the constant blade/van height plane in Figure 5 sets the height to 50%, and to display the internal constant blade/van height plane, the opacity of the input file is set to 0.6.

Conclusion
We have developed a tailored and lightweight post-processing software for turbomachinery based on Qt and VTK.This software includes visualization functions for meridional plane and constant blade/van height plane visualization, as well as other common post-processing functions such as cutting plane and iso-surface visualization.In the future, we plan to develop more specialized functions and provide more detailed and comprehensive visualization information.

Figure 1 .
Figure 1.A representative snapshot of the graphic user interface.

Figure 1
Figure1shows a snapshot of the GUI which consists of three main parts: the menubar and toolbar at the top, the information display section on the left, and the VTK rendering window on the right.The top menubar and toolbar are primarily composed of buttons implemented by the QMenu and QAction classes.They are divided into two main parts: one for importing files and the other for implementing post-processing functions.The meridional plane and constant blade/van height plane functions are found under Tools in the menu bar, while the general functions for slicing, isoparametric surfaces, switching viewpoints, and other functions are found both on the toolbar and under Tools in the menu bar.The left panel uses the QComboBox class to implement the selection of the scalar field to display and the QTreeWidget class to display the grid information of the imported file.The primary subcomponent uses the QVTKOpenGLNativeWidget class to visualize and post-process the imported file.The GUI is simpler than other software GUIs and hides the visualization process behind the scenes, only displaying the last output of the VTK pipeline.We can click the menubar or toolbar button and set the parameters to get the desired visualization content directly.The user can directly see the information contained in the input file and the type of scalar they prefer, which reduces the complexity of the software and allows the user to observe the visualization content more directly.

Figure 3 .
Figure 3. Example visualization of an input file.

Figure 4 .
Figure 4. Example visualization of the meridional plane.

Figure 5 .
Figure 5. Example visualization of the constant blade/van height plane.