Unstructured grid dual data parallel conversion method for flow field numerical simulation

By using a parallel conversion method for unstructured mesh dual data in flow field numerical simulation, the problem of insufficient accuracy and robustness of original mesh simulation in CFD software is solved, and rapid conversion of unstructured meshes and improvement of computational efficiency are achieved.

CN120930541APending Publication Date: 2025-11-11AVIC SHENYANG AERODYNAMICS RES INST
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511041773.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-28
Publication Date
2025-11-11

AI Technical Summary

Technical Problem

When using raw meshes for flow field numerical simulation in existing CFD software, there are problems with poor accuracy and robustness, especially in complex engineering problems where computational resources are limited and mesh quality is difficult to guarantee.

Method used

This paper presents a parallel transformation method for unstructured mesh dual data in flow field numerical simulation. The method involves inputting the original unstructured mesh based on point-surface-volume topology into the flow field numerical simulation software, creating edge-based topological information in parallel, establishing mesh topological relationships, calculating the volume and area of ​​the dual mesh in parallel, and outputting the transformed unstructured mesh.

Benefits of technology

It enables rapid conversion of input unstructured meshes, improves the accuracy and robustness of calculations, reduces computational load and time, meets the computational requirements of CFD software, and improves computational efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120930541A_ABST
    Figure CN120930541A_ABST
Patent Text Reader

Abstract

The invention discloses an unstructured grid dual data parallel conversion method for flow field numerical simulation, and belongs to the technical field of aerodynamic numerical calculation. The problem that in the prior art, a method for applying flow field numerical simulation through an original grid in traditional CFD software is poor in precision and robustness is solved. The method comprises the following steps: S1, inputting an original unstructured grid based on a point-surface body topological structure into flow field numerical simulation software; s2, according to the original unstructured grid, edge-based topological information is created in parallel; s3, establishing a grid topological relation by utilizing the edge-based topological information; and S4, according to the grid topological relation, carrying out parallel calculation on the volume and the area of the dual grid, and outputting the unstructured grid after dual conversion. According to the method, the dual control body construction of any unstructured grid is effectively realized, the orthogonality of the calculation control body and the size ratio of adjacent units are improved, the dual conversion efficiency is relatively high, and the method can be applied to rapid conversion of complex grids.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to a parallel conversion method for unstructured mesh dual data in flow field numerical simulation, belonging to the field of aerodynamic numerical calculation technology. Background Technology

[0002] With the development of Computational Fluid Dynamics (CFD) technology and the rapid improvement of high-performance computing capabilities, CFD software is now widely used in fields such as aircraft design. The grid data structure is one of the core elements of CFD software. It primarily defines the storage format of grid data in the CFD software's computational flow, and also determines the implementation of boundary conditions, spatial discretization, result monitoring, and post-processing within the software. Therefore, it has a certain impact on the computational efficiency, accuracy, and robustness of the CFD software.

[0003] Currently, most CFD software uses the finite volume method based on the original mesh for numerical calculations. This means that the discrete control volume is constructed while maintaining the shape of the original mesh cells during flow field calculations. This method is the simplest, requires no mesh data conversion, and facilitates post-processing and data transfer for multidisciplinary coupled calculations. However, the robustness and accuracy of this method heavily depend on the quality of the original mesh. For complex engineering problems, due to complex geometric models and limited computational resources, mesh quality is often difficult to guarantee, resulting in poor robustness and accuracy in engineering calculations.

[0004] Dual transformation primarily involves reconstructing the control volume based on the original mesh information, according to the mesh points, to form a new mesh (i.e., a dual mesh). The dual mesh can uniformly transform the original mesh, which contains different forms such as tetrahedrons, pyramids, and triangular prisms, into a polyhedral control volume. Compared to the original mesh, the dual mesh offers improvements in mesh orthogonality and the size ratio of adjacent elements, resulting in improved computational accuracy and robustness. Furthermore, since most complex engineering problems employ hybrid meshes of tetrahedrons, pyramids, and triangular prisms, the number of meshes after dual transformation is typically reduced to less than one-third of the original, significantly reducing computational load and time.

[0005] In summary, a parallel transformation method for unstructured mesh dual data is needed for numerical calculations in CFD software. Summary of the Invention

[0006] A brief overview of the invention is given below to provide a basic understanding of certain aspects of it. It should be understood that this overview is not an exhaustive summary of the invention. It is not intended to identify key or essential parts of the invention, nor is it intended to limit the scope of the invention. Its purpose is merely to present certain concepts in a simplified form as a prelude to the more detailed description that follows.

[0007] In view of this, in order to solve the problem of poor accuracy and robustness of the traditional CFD software method of using raw mesh for numerical simulation of application flow field, the present invention provides a parallel conversion method of unstructured mesh dual data for numerical simulation of flow field.

[0008] The technical solution is as follows: A parallel transformation method for unstructured mesh dual data in flow field numerical simulation, comprising the following steps:

[0009] S1. Input the original unstructured mesh based on point-surface-volume topology into the flow field numerical simulation software;

[0010] S2. Based on the original unstructured mesh, create edge-based topology information in parallel;

[0011] S3. Utilize edge-based topological information to establish grid topological relationships;

[0012] S4. Based on the mesh topology, calculate the volume and area of ​​the dual mesh in parallel and output the unstructured mesh after dual transformation.

[0013] Furthermore, in S1, the original unstructured mesh includes nodes, faces, and elements. Nodes include node coordinates, faces include face center coordinates, area size, face normal vector, element numbers on both sides of the face, and node numbers contained in the face, and elements include body center coordinates, volume size, face number contained in the element, and node number contained in the element.

[0014] Furthermore, step S2 includes the following steps:

[0015] S21. Traverse all faces of the original unstructured mesh, count and output the number of faces with all points in common;

[0016] S22. Allocate a two-dimensional array space for the common node face numbers according to the number of common nodes;

[0017] S23. Traverse all faces of the original unstructured mesh, traverse all points of each face, and generate a two-dimensional array of common node face numbers;

[0018] S24. Traverse all nodes of the original unstructured mesh, and based on the two-dimensional array of common node face numbers, traverse all original unstructured mesh faces adjacent to each node, and generate in parallel the identifiers of all nodes that generate new edges.

[0019] S25. Traverse all nodes of the original unstructured mesh, generate new edge identifiers based on all nodes, and output the count of edges;

[0020] S26. Traverse all nodes of the original unstructured mesh, generate new edges based on the identifiers of all nodes, traverse all node numbers that generate new edges for each node, and generate all edges and the numbers of the edges connected to the nodes in parallel.

[0021] S27. Traverse all faces of the original unstructured mesh, find all edges formed by a node and its adjacent nodes within the face, and the numbers of the edges connected to the node. Generate an array of edge numbers contained in the face in parallel to obtain the topology information.

[0022] Furthermore, step S3 includes the following steps:

[0023] S31. Based on the topology information, allocate the number of elements and the number of internal faces of the dual mesh;

[0024] S32. Traverse all boundary surfaces of the original unstructured mesh, form an array of boundary node numbers of the original unstructured mesh, and determine the number of boundary surfaces of the dual mesh.

[0025] S33. Traverse the array of boundary node numbers of all original unstructured meshes, generate the dual mesh boundary surface, and determine the topological relationship between the dual mesh boundary surface and the element based on the numbers of the original unstructured mesh boundary nodes.

[0026] S34. Traverse all edges of the original unstructured mesh, i.e., all edges and edges connected to nodes, to generate the internal surfaces of the dual mesh;

[0027] S35. Traverse all faces of the dual mesh, i.e., the boundary faces and interior faces of the dual mesh, and fill in the face number data of all dual mesh elements according to the face number of the dual mesh element on both sides.

[0028] S36. Traverse all elements of the dual mesh, check the number of faces in each element, and complete the mesh topology relationship establishment.

[0029] Furthermore, step S4 includes the following steps:

[0030] S41. Traverse all cells of the original unstructured mesh, build an array of all edge numbers for each cell in parallel, calculate the area vector of the internal face of the dual mesh according to the relationship between the edge and the face, update the area size and the face unit normal vector, and modify the face center coordinates of the internal face of the dual mesh to the midpoint of the edge.

[0031] S42. Traverse all edges of the original unstructured mesh, accumulate the contribution of the edge to the volume of the dual mesh surface relative to the volume of the dual mesh element, and obtain the volume of the dual mesh element;

[0032] S43. Traverse all nodes of the original unstructured mesh and modify the volume center coordinates of the dual mesh elements to the coordinates of the original unstructured mesh nodes;

[0033] S44. Traverse all boundary surfaces of the original unstructured mesh. Based on the output of steps S26 and S27, calculate the area vector of the boundary surface of the dual mesh, update the area size and the surface unit normal vector, modify the coordinates of the face center of the boundary surface to the coordinates of the boundary points of the original unstructured mesh, and output the dual-transformed unstructured mesh.

[0034] The beneficial effects of this invention are as follows: This invention provides a parallel transformation method for dual data of unstructured meshes used in numerical simulation of flow fields. It can construct grid control volumes from input unstructured meshes, meeting the grid calculation requirements of CFD software and laying the foundation for improving software accuracy, robustness, and computational efficiency. This invention constructs dual control volumes of arbitrary unstructured meshes by building an edge-based data structure and combining multi-threaded parallelism. Through dual data transformation, the orthogonality of the calculated control volume and the size ratio of adjacent cells can be improved, while significantly reducing the computational load. This invention has a clear process, combining pre-allocated space, multi-threaded parallelism, and other methods, resulting in high dual transformation efficiency and enabling rapid transformation of meshes for complex engineering cases. Attached Figure Description

[0035] The accompanying drawings, which are included to provide a further understanding of the invention and form part of this invention, illustrate exemplary embodiments of the invention and are used to explain the invention, but do not constitute an undue limitation of the invention. In the drawings:

[0036] Figure 1 This is a flowchart illustrating a parallel transformation method for unstructured mesh dual data in numerical simulation of flow fields.

[0037] Figure 2 These are schematic diagrams of two-dimensional and three-dimensional unstructured meshes, where (a) is a schematic diagram of a two-dimensional unstructured mesh and (b) is a schematic diagram of a three-dimensional unstructured mesh.

[0038] Figure 3 The diagrams show the structural transformations of two-dimensional and three-dimensional unstructured duality. (a) is a structural diagram of two-dimensional unstructured duality transformation, and (b) is a structural diagram of three-dimensional unstructured duality transformation.

[0039] Figure 4 This is a schematic diagram of the volume and area of ​​the dual mesh. Detailed Implementation

[0040] To make the technical solutions and advantages of the embodiments of the present invention clearer, the exemplary embodiments of the present invention will be further described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of the present invention, and not an exhaustive list of all embodiments. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of the present invention can be combined with each other.

[0041] refer to Figures 1-4 This embodiment details a method for parallel transformation of unstructured mesh dual data in flow field numerical simulation, specifically including the following steps:

[0042] S1. Input the original unstructured mesh based on point-surface-volume topology into the flow field numerical simulation software;

[0043] S2. Based on the original unstructured mesh, create edge-based topology information in parallel;

[0044] S3. Utilize edge-based topological information to establish grid topological relationships;

[0045] S4. Based on the mesh topology, calculate the volume and area of ​​the dual mesh in parallel and output the unstructured mesh after dual transformation.

[0046] Furthermore, in S1, the original unstructured mesh includes nodes, faces, and elements. Nodes mainly include node coordinates, faces mainly include face center coordinates, area size, face normal vector, element numbers on both sides of the face, and node numbers contained in the face, and elements mainly include body center coordinates, volume size, face number contained in the element, and node number contained in the element.

[0047] For details, please refer to Figure 2 The original unstructured mesh forms in two-dimensional and three-dimensional modes are shown. Since the face and edge of the two-dimensional mesh coincide, the face center and the midpoint of the edge also coincide. The following descriptions will be uniformly based on the three-dimensional mode. The parts with algorithmic differences will be explained separately for two-dimensional and three-dimensional modes. Among them, (b) shows the tetrahedral mesh element. Its surface , , , Composition, body center is The centers of the four faces are as follows: , , , ;

[0048] refer to Figure 3The red hollow dots are the dual mesh centers (original unstructured mesh nodes), the red solid dots are the dual mesh nodes (original unstructured mesh centers), the green solid dots are the dual mesh nodes (original unstructured mesh face centers), and the blue solid dots are the dual mesh face centers (original unstructured mesh edge midpoints).

[0049] Furthermore, step S2 includes the following steps:

[0050] S21. Traverse all faces of the original unstructured mesh, count and output the number of faces with all points in common;

[0051] S22. Allocate a two-dimensional array space for the common node face numbers according to the number of common nodes;

[0052] S23. Traverse all faces of the original unstructured mesh, traverse all points of each face, and generate a two-dimensional array of common node face numbers;

[0053] S24. Traverse all nodes of the original unstructured mesh, and based on the two-dimensional array of common node face numbers, traverse all original unstructured mesh faces adjacent to each node, and generate in parallel the identifiers of all nodes that generate new edges.

[0054] S25. Traverse all nodes of the original unstructured mesh, generate new edge identifiers based on all nodes, and output the count of edges;

[0055] S26. Traverse all nodes of the original unstructured mesh, generate new edges based on the identifiers of all nodes, traverse all node numbers that generate new edges for each node, and generate all edges and the numbers of the edges connected to the nodes in parallel.

[0056] S27. Traverse all faces of the original unstructured mesh, find all edges formed by a node and its adjacent nodes within the face, and the numbers of the edges connected to the node. Generate an array of edge numbers contained in the face in parallel to obtain the topology information.

[0057] Specifically, edge-based topology information includes edge composition information, edge numbers connected to nodes, and edge numbers possessed by faces;

[0058] In step S22, the outer size of the two-dimensional array is the number of nodes, and the inner size is the number of faces adjacent to the same node.

[0059] In step S23, the two-dimensional array of common node face numbers stores the numbers of all the original unstructured mesh faces adjacent to each node. This mainly utilizes the data space allocated in step S22 to improve the generation efficiency of the two-dimensional array of common node face numbers, and avoids the efficiency impact caused by repeated adjustments to the data memory space required for large meshes.

[0060] In step S24, the node number is determined to be less than the number of its neighboring node in the face based on whether the node can form a new edge. If it is less, a new edge can be formed and the neighboring node number is stored in the identifier of the node generating a new edge. In the outermost traversal, each node forms data independently and there is no conflict between nodes. Using OpenMP multi-threaded parallelism can effectively accelerate the data formation process in this step.

[0061] In step S26, during the outermost traversal, each node independently generates edge data, and there are no conflicts between nodes. Using OpenMP multi-threaded parallelism can effectively accelerate the data generation process in this step.

[0062] In step S27, during the outermost traversal, each face independently searches for and generates edge number data, and there are no conflicts between faces. Using OpenMP multi-threaded parallelism can effectively accelerate the data generation process in this step.

[0063] Furthermore, step S3 includes the following steps:

[0064] S31. Based on the topology information, allocate the number of elements and the number of internal faces of the dual mesh;

[0065] S32. Traverse all boundary surfaces of the original unstructured mesh, form an array of boundary node numbers of the original unstructured mesh, and determine the number of boundary surfaces of the dual mesh.

[0066] S33. Traverse the array of boundary node numbers of all original unstructured meshes, generate the dual mesh boundary surface, and determine the topological relationship between the dual mesh boundary surface and the element based on the numbers of the original unstructured mesh boundary nodes.

[0067] S34. Traverse all edges of the original unstructured mesh, i.e., all edges and edges connected to nodes, to generate the internal surfaces of the dual mesh;

[0068] S35. Traverse all faces of the dual mesh, i.e., the boundary faces and interior faces of the dual mesh, and fill in the face number data of all dual mesh elements according to the face number of the dual mesh element on both sides.

[0069] S36. Traverse all elements of the dual mesh, check the number of faces in each element, and complete the mesh topology relationship establishment.

[0070] Specifically, step S3 mainly includes three parts: basic information of the dual mesh, topological information, and topological check. Among them, the formation of topological information is the most complex. It is constructed according to the unstructured geometric topological relationship of arbitrary polygons / polyhedra and is applicable to unstructured meshes of any form, including triangles, tetrahedrons, hexahedrons, pyramids, polygons, polyhedra, etc.

[0071] In step S32, to ensure that the boundary node numbers of the original unstructured mesh are not repeated and to avoid searching inside the boundary, a marker for the global nodes of the original unstructured mesh is established. Whether the marker is modified is used to determine whether the node already exists in the node number list of the boundary. At the same time, the determined number of dual mesh boundary surfaces can also avoid dynamically adjusting the surface data size when generating dual mesh boundary surfaces.

[0072] In step S34, during the outermost traversal, each edge of the original unstructured mesh forms a unique face of the dual mesh, and there is no conflict between faces. Using OpenMP multi-threaded parallelism can effectively accelerate the data formation process in this step.

[0073] In step S36, the main task is to check the number of faces that make up each dual mesh unit to ensure that there are at least 3 faces in two dimensions and at least 4 faces in three dimensions.

[0074] Furthermore, step S4 includes the following steps:

[0075] S41. Traverse all cells of the original unstructured mesh, build an array of all edge numbers for each cell in parallel, calculate the area vector of the internal face of the dual mesh according to the relationship between the edge and the face, update the area size and the face unit normal vector, and modify the face center coordinates of the internal face of the dual mesh to the midpoint of the edge.

[0076] S42. Traverse all edges of the original unstructured mesh, accumulate the contribution of the edge to the volume of the dual mesh surface relative to the volume of the dual mesh element, and obtain the volume of the dual mesh element;

[0077] S43. Traverse all nodes of the original unstructured mesh and modify the volume center coordinates of the dual mesh elements to the coordinates of the original unstructured mesh nodes;

[0078] S44. Traverse all boundary surfaces of the original unstructured mesh. Based on the output of steps S26 and S27, calculate the area vector of the boundary surface of the dual mesh, update the area size and the surface unit normal vector, modify the coordinates of the face center of the boundary surface to the coordinates of the boundary points of the original unstructured mesh, and output the dual-transformed unstructured mesh.

[0079] Specifically, in step S4, based on the established topological relationship, the geometric information of the dual mesh is further calculated. Under the framework of the finite volume method, the geometric quantities required for the control volume mainly include element volume, volume center, area, and face center. Among them, the volume center of the dual mesh is the node of the original unstructured mesh, and the face center of the dual mesh is the midpoint of the edge of the original unstructured mesh. The element volume and area of ​​the dual mesh need to be recalculated.

[0080] In step S41, the area contribution of each cell to each node in the original unstructured mesh is obtained by traversing all nodes of the cell. Considering the potential data conflicts that may occur in multi-threaded parallel processing, atomic operations are used to update the area vector of the dual mesh. (Refer to...) Figure 4 The calculation of the volume and area of ​​the 3D dual mesh involves traversing all faces passing through each edge. Taking edge AB as an example, the face center D and the body center O of the adjacent cells are obtained. For cells with only one side adjacent to each other, the face center, the midpoint of the edge, and the body center form a triangle △OCD (triangular facet). Based on the side length... and The area of ​​a triangular facet is calculated using the vector of the area vector, where the angle between the area vector and the side vector is less than 90°. The formula for calculating the area vector is: Therefore, we can see the area contribution of the triangular facet to the dual mesh facet containing the midpoint of the side.

[0081] In step S42, the volume of the dual mesh element is calculated by utilizing the edge information and adding the tetrahedral volume formed by the edge nodes, volume center, and face center. Considering the potential data conflicts that may occur in multi-threaded parallel processing, atomic operations are used to implement the volume of the dual mesh element. For updates, please refer to Figure 4 According to the area vector and side length vector The volume contribution of the dual mesh element containing the two endpoints of the opposite side of the triangular facet is calculated using the following formula: .

[0082] Although the invention has been described with reference to a limited number of embodiments, those skilled in the art will understand from the foregoing description that other embodiments are conceivable within the scope of the invention described herein. Furthermore, it should be noted that the language used in this specification has been chosen primarily for readability and instructional purposes, and not for the purpose of interpreting or limiting the subject matter of the invention. Therefore, many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the appended claims. The disclosure of the invention is illustrative and not restrictive, and the scope of the invention is defined by the appended claims.

Claims

1. A parallel conversion method for unstructured mesh dual data in flow field numerical simulation, characterized in that, Includes the following steps: S1. Input the original unstructured mesh based on point-surface-volume topology into the flow field numerical simulation software; S2. Based on the original unstructured mesh, create edge-based topology information in parallel; S3. Utilize edge-based topological information to establish grid topological relationships; S4. Based on the mesh topology, calculate the volume and area of ​​the dual mesh in parallel and output the unstructured mesh after dual transformation.

2. The method for parallel conversion of unstructured mesh dual data in numerical simulation of flow field according to claim 1, characterized in that, In S1, the original unstructured mesh includes nodes, faces, and elements. Nodes include node coordinates, faces include face center coordinates, area size, face normal vector, element numbers on both sides of the face, and node numbers contained in the face, and elements include body center coordinates, volume size, face numbers contained in the element, and node numbers contained in the element.

3. The method for parallel conversion of unstructured mesh dual data in numerical simulation of flow field according to claim 2, characterized in that, S2 includes the following steps: S21. Traverse all faces of the original unstructured mesh, count and output the number of faces with all points in common; S22. Allocate a two-dimensional array space for the common node face numbers according to the number of common nodes; S23. Traverse all faces of the original unstructured mesh, traverse all points of each face, and generate a two-dimensional array of common node face numbers; S24. Traverse all nodes of the original unstructured mesh, and based on the two-dimensional array of common node face numbers, traverse all original unstructured mesh faces adjacent to each node, and generate in parallel the identifiers of all nodes that generate new edges. S25. Traverse all nodes of the original unstructured mesh, generate new edge identifiers based on all nodes, and output the count of edges; S26. Traverse all nodes of the original unstructured mesh, generate new edges based on the identifiers of all nodes, traverse all node numbers that generate new edges for each node, and generate all edges and the numbers of the edges connected to the nodes in parallel. S27. Traverse all faces of the original unstructured mesh, find all edges formed by a node and its adjacent nodes within the face, and the numbers of the edges connected to the node. Generate an array of edge numbers contained in the face in parallel to obtain the topology information.

4. The method for parallel conversion of unstructured mesh dual data in numerical simulation of flow field according to claim 3, characterized in that, S3 includes the following steps: S31. Based on the topology information, allocate the number of elements and the number of internal faces of the dual mesh; S32. Traverse all boundary surfaces of the original unstructured mesh, form an array of boundary node numbers of the original unstructured mesh, and determine the number of boundary surfaces of the dual mesh. S33. Traverse the array of boundary node numbers of all original unstructured meshes, generate the dual mesh boundary surface, and determine the topological relationship between the dual mesh boundary surface and the element based on the numbers of the original unstructured mesh boundary nodes. S34. Traverse all edges of the original unstructured mesh, i.e., all edges and edges connected to nodes, to generate the internal surfaces of the dual mesh; S35. Traverse all faces of the dual mesh, i.e., the boundary faces and interior faces of the dual mesh, and fill in the face number data of all dual mesh elements according to the face number of the dual mesh element on both sides. S36. Traverse all elements of the dual mesh, check the number of faces in each element, and complete the mesh topology relationship establishment.

5. The method for parallel conversion of unstructured mesh dual data in numerical simulation of flow field according to claim 4, characterized in that, S4 includes the following steps: S41. Traverse all cells of the original unstructured mesh, build an array of all edge numbers for each cell in parallel, calculate the area vector of the internal face of the dual mesh according to the relationship between the edge and the face, update the area size and the face unit normal vector, and modify the face center coordinates of the internal face of the dual mesh to the midpoint of the edge. S42. Traverse all edges of the original unstructured mesh, accumulate the contribution of the edge to the volume of the dual mesh surface relative to the volume of the dual mesh element, and obtain the volume of the dual mesh element; S43. Traverse all nodes of the original unstructured mesh and modify the volume center coordinates of the dual mesh elements to the coordinates of the original unstructured mesh nodes; S44. Traverse all boundary surfaces of the original unstructured mesh. Based on the output of steps S26 and S27, calculate the area vector of the boundary surface of the dual mesh, update the area size and the surface unit normal vector, modify the coordinates of the face center of the boundary surface to the coordinates of the boundary points of the original unstructured mesh, and output the dual-transformed unstructured mesh.