Parallel hexahedron (hex)-mesh generation method applied to direct numerical simulation (DNS) on flow field of helical structure

The parallel hex-mesh generation method addresses the challenges of creating consistent meshes for complex helical structures by automating the transformation process, reducing resource consumption and enhancing simulation accuracy.

GB2643344APending Publication Date: 2026-02-11UNIV OF SCI & TECH BEIJING
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
GB2024018582
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-31
Filing Date
2024-12-18
Publication Date
2026-02-11

AI Technical Summary

Technical Problem

Conventional mesh generation technologies face challenges in creating high-quality, consistent quadrilateral (quad)/hex meshes for complex geometrical flow fields, particularly in helical structures, leading to laborious manual preprocessing, computational errors, and high resource consumption.

Method used

A parallel hex-mesh generation method involving hybrid mesh domain decomposition, dual graph generation, node weight computation, multi-level graph partitioning, parallel spectral element mesh generation, node ID synchronization, and submesh merging to transform hybrid meshes into high-quality hex meshes efficiently.

Benefits of technology

The method automates the mesh transformation process, reduces computational errors, lowers resource requirements, and improves transformation efficiency, ensuring accurate and reliable simulations for complex helical structures.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The application discloses a parallel hexahedron (hex)-mesh generation method applied to direct numerical simulation (DNS) on a flow field of a helical structure for use in computation fluid dynamic si
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the technical field of computational fluid dynamics (CFD), and in particular to a parallel hexahedron (hex)-mesh generation method applied to direct numerical simulation (DNS) on a flow field of a helical structure. BACKGROUND

[0002] In modem engineering, CFD simulation has become a key tool to solve complex flow problems in liquid, magnetofluids, gases and the like for its powerful analysis capability. Particularly, helical structures are widely present in various devices and systems. These structures cause complex and special phenomena in the flow and heat exchange process for their unique geometrical shapes. Accurate simulation of the structures is the basis to optimize the design and improve the efficiency. For example, in the field of nuclear energy, the wire-wrapped fuel rod assemblies are used in the core of the fast reactor to improve the flow efficiency and heat exchange efficiency of the coolant. In aerospace engineering, helical structures are incorporated into engine component designs, such as the helical cooling channels in turbine blades. These channels improve cooling efficiency by effectively lowering blade temperatures when high-temperature gas flows through them, thereby enhancing engine performance and extending its service life. In hydraulic systems, especially in hydraulic machines and some pumps, a helical flow channel is also used frequently to guide the fluid, thereby reducing vortices and turbulent flows, and improving the fluid transmission efficiency. In order to thoroughly understand and optimize the special flow phenomena caused by the complex helical structures, high-order-accuracy CFD direct numerical simulation (DNS) is required. That is, the governing equation is directly solved without any simplification and assumption. In this case, a large number of high-quality meshes are used to ensure the accuracy and efficiency of the simulation.

[0003] As a high-order and high-precision numerical computation method, the spectral element method shows excellent performance to solve the complex flow field, and thus is widely used. According to the basic idea of the spectral element method, the partial differential equation is first transformed into a weak form. Then, isoparametric mapping is applied to an integral domain. The integral equation is discretized approximately using integral interpolating points and interpolation formulas. Finally, the continuous problem is transformed into discrete linear equations for solving. Featuring low numerical dissipation, low numerical dispersion, and a fast convergence speed, the method is particularly applied to the DNS. However, the spectral element method depends on the number and quality of meshes, both of which directly affect the accuracy, efficiency, and authenticity of the simulation.

[0004] Particularly, for engineering problems about the complex geometrical flow fields of the helical structures and the like, the conventional mesh generation technologies face a significant challenge. These complex geometries require meshes that are highly adaptive and accurate enough to capture the details of the flow field. However, the generation of massive high-quality meshes for these complex geometrical shapes, particularly consistent quadrilateral (quad) / hex meshes to be used by the spectral element method (consistent meshes and inconsistent meshes are as shown in FIG. 1), is a challenging task. Hex meshes are highly rigid and typically depend on user input or detailed preprocessing of the geometric model. For example, in the case of the wire-wrapped fuel assembly of a fast reactor (shown in FIG. 2), if block-structured meshes are used, the complex geometry is manually cut into a plurality of subdomains to reflect geometrical features. The plurality of subdomains are then mapped to a complex helical structure. This is laborious and highly difficult. If a sweep algorithm (which is to "sweep" the whole volume along a specific direction from one or more initial faces to generate the hex meshes) is used, although rotationally stretched meshes can be created on the helical winding portion, the meshes cannot match completely at an intersection between an inner flow channel and an outer flow channel, and are inconsistent meshes overall (FIG. 3), thus causing the computational error.

[0005] In view of the above background, the present disclosure provides a parallel hex-mesh generation method applied to DNS on a complex flow field of a helical structure.

[0006] With parallel processing and optimization, the present disclosure effectively transforms the hybrid meshes in the complex flow field of the helical structure into the high-quality hex meshes, thereby overcoming the problems of automation difficulty and high resource consumption in the conventional method. While processing the common complex hybrid meshes in the complex flow field of the helical structure, the technique can keep consistency of the meshes, significantly improves the transformation efficiency, and reduces the requirements on the computing resources, thereby providing an efficient and reliable mesh generation solution for the DNS based on the spectral element method. SUMMARY

[0007] An objective of the present disclosure is to provide a parallel hex-mesh generation method applied to DNS on a flow field of a helical structure, to solve the problems in the background.

[0008] To achieve the above objective, the present disclosure adopts the following technical solutions:

[0009] A parallel hex-mesh generation method applied to DNS on a flow field of a helical structure includes the following steps:

[0010] SI: hybrid mesh domain decomposition: [OOH] Sl.l: dual graph generation: processing a hybrid mesh file to generate a dual graph, where mesh elements are respectively taken as nodes of the graph, and a neighboring relation between the elements is taken as an edge of the graph;

[0012] SI.2: node weight computation: determining a mesh type, and assigning corresponding weights to the nodes according to different mesh types; and

[0013] SI.3: domain decomposition with a multi-level graph partitioning algorithm: reducing a size of the graph through collaboration to obtain a rough graph; performing initial partition on the rough graph according to a number of processors; and performing refinement on the original graph, and optimizing a partitioned result;

[0014] S2: parallel spectral element mesh generation:

[0015] S2.1: mesh dimension determination: determining whether a mesh is a two-dimensional (2D) mesh or a three-dimensional (3D) mesh;

[0016] S2.2: mesh type determination: determining a mesh type according to a number of nodes in each mesh element, and classifying the mesh into different branches according to different compositions of the mesh type;

[0017] S2.3: homogeneous mesh grouping: grouping meshes of a same type to a same mesh set, and sequentially numbering the mesh set; and

[0018] S2.4: mesh type transformation: performing segmentation on the 2D mesh and the 3D mesh to realize the mesh type transformation;

[0019] S3: node identity (ID) synchronization: establishing communication between the processors, and synchronizing a global ID of a newly added node at a boundary to ensure consistency of meshes; and

[0020] S4: submesh merging and spectral element mesh data output:

[0021] S4.1: upon completion of local computation of all processors, performing a global merging operation, and merging into a complete spectral element mesh according to mesh subdomains and a global ID of a boundary node;

[0022] S4.2: processing a boundary condition in a merging process, so as to ensure no repeated node at an interface between the subdomains and a consistent element topology; and

[0023] S4.3: upon completion of the merging, outputting spectral element mesh data of a whole computing domain for subsequent CFD simulated computation.

[0024] Preferably, the mesh type includes a triangle (tri) and a quad in two dimensions, as well as a tetrahedron (tet), a hex, and a wedge in three dimensions.

[0025] Preferably, the step S2.2 specifically includes:

[0026] for the 2D mesh, classifying a pure tri into one branch, and a hybrid of a tri and a quad into one branch; and

[0027] for the 3D mesh, classifying a pure tet into one branch, a pure wedge into one branch, a hybrid of a tet and a wedge into one branch, and a hybrid of a tet, a hex, and a wedge into one branch.

[0028] Preferably, the step S2.4 specifically includes:

[0029] for the 2D mesh, performing the segmentation by taking an edge midpoint and a face center, where upon the segmentation, one quad is transformed into four quads, and one tri is transformed into three quads; and

[0030] for the 3D mesh, performing the segmentation by taking an edge midpoint, a face center, and a body center, where upon the segmentation, one hex is transformed into eight hexes, one tet is transformed into four hexes, and one wedge is transformed into six hexes.

[0031] Preferably, the step S3 specifically includes:

[0032] S3.1: for a boundary of each subdomain, identifying and recording a node to be synchronized; and

[0033] S3.2: synchronizing node information between the processors with a message passing interface (MPI) library, where each processor sends a local ID and a coordinate of a boundary node, receives boundary information of other processors, and assigns a global ID to a newly added node.

[0034] Compared with the prior art, the parallel hex-mesh generation method applied to DNS on a flow field of a helical structure provided by the present disclosure has the following beneficial effects:

[0035] (1) The present disclosure provides an automatic transformation tool: For transformation from the hybrid meshes in the complex flow field of the helical structure to the spectral element meshes, the present disclosure effectively saves the time required for manually transforming the meshes, and significantly improves the robustness in the transformation. Through automatic processing, the present disclosure lowers the mesh inconsistent error caused by human misoperation, thereby ensuring the quality and reliability of the computing model.

[0036] (2) The present disclosure breaks through limitations of the spectral element meshes: For conventional solvers based on the spectral element method, such as Nek5000, only the quad or hex meshes can be used. The present disclosure provides the method for generating the quad / hex spectral element meshes without manual intervention. This alleviates the burden of the researcher and the user in a preprocessing stage of the numerical simulation, makes the model more approximate to the real geometrical shape, and improves the accuracy of the solving process.

[0037] (3) The present disclosure realizes parallel processing: With a parallel algorithm in the mesh transformation, the present disclosure assigns the original serially-processed task to a plurality of processors, thereby improving the mesh transformation efficiency, and significantly lowering requirements on computing resources. Even in case of a large-scale mesh transformation task, the present disclosure can complete it within acceptable time. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] FIG. 1 is a schematic view illustrating consistent meshes and inconsistent meshes according to a background of the present disclosure, where (a) illustrates tri consistent meshes, two meshes being connected through a same node; (b) illustrates quad consistent meshes, two meshes being connected through a same edge; (c) illustrates tri inconsistent meshes, in which nodes on connecting edges of two meshes are not the same (that is, there is a dangling node); and (c) illustrates quad inconsistent meshes, in which nodes on connecting edges of two meshes are not the same (that is, there is a dangling node);

[0039] FIG. 2 is a schematic structural view of a complex helical structure of a core of a fast reactor according to a background of the present disclosure, where a left side illustrates a single-rod flow channel, in which from a geometrical shape, a helical wrapping wire is wound uniformly on a cylinder; a middle illustrates an assembly flow channel geometrically, in which 61 wire-wrapped fuel rods are provided in a hex outer sleeve; and a right side illustrates meshes of the assembly flow channel;

[0040] FIG. 3 illustrates inconsistent hex meshes generated by a sweep algorithm according to a background of the present disclosure, where the inconsistent hex meshes are combined meshes, meshes at an inner flow channel (a wire wrapping portion) are rotationally stretched, but meshes at an interface between the inner flow channel and an outer flow channel cannot match, and are inconsistent meshes;

[0041] FIG. 4 is a flowchart of a parallel hex-mesh generation method applied to DNS on a flow field of a helical structure according to Embodiment 1 of the present disclosure;

[0042] FIG. 5 is a flowchart of an algorithm for transforming a hybrid mesh into a spectral element mesh according to Embodiment 1 of the present disclosure; and

[0043] FIG. 6 is a schematic view of mesh type transformation according to Embodiment 1 of the present disclosure. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0044] The technical solutions in the embodiments of the present disclosure are clearly and completely described below with reference to the drawings in the embodiments of the present disclosure. Apparently, the described embodiments are merely a part rather than all of the embodiments of the present disclosure.

[0045] In order to adapt to complex helical 3D geometrical structures better, hybrid meshes, namely meshes combined with a tet, a hex, a wedge and the like, are usually used. Besides, in research on flow characteristics of a tangent plane of the complex helical geometrical structure, 2D hybrid meshes, namely meshes combined with a tri and a quad, are also usually used, and the tangent plane is partitioned according to specific features of each part to achieve an optimal simulation effect. In order to perform DNS on the hybrid meshes of the tet, the hex and the wedge in three dimensions and the hybrid meshes of the tri and the quad in two dimensions with a spectral element method, and solve the problem that the transformation process cannot be realized automatically with long time consumption and high memory requirements, the present disclosure provides a parallel hex-mesh generation method applied to DNS on a flow field of a helical structure. With the parallel processing and the optimization algorithm, the present disclosure effectively transforms the hybrid meshes in the complex flow field of the helical structure into the high-quality hex meshes, thereby overcoming the problems of automation difficulty and high resource consumption of the conventional method. While processing the common complex hybrid meshes in the complex flow field of the helical structure, the technique can keep consistency of the meshes, significantly improves the transformation efficiency, and reduces the requirements on the computing resources, thereby providing an efficient and reliable mesh generation solution for the DNS based on the spectral element method.

[0046] The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure provided by the present disclosure is described below in conjunction with the accompanying drawings and the specific examples. Specifically:

[0047] Example 1

[0048] Referring to FIG. 4, the present disclosure provides a parallel hex-mesh generation method applied to DNS on a flow field of a helical structure, including the following steps:

[0049] 1): Hybrid mesh domain decomposition:

[0050] a) Dual graph generation: A dual graph is generated from a hybrid mesh file. Mesh elements are respectively taken as nodes of the graph, and a neighboring relation between the elements is taken as an edge of the graph.

[0051] b): Node weight computation: A mesh type is determined, and corresponding weights are assigned to the nodes according to different mesh types.

[0052] c): Domain decomposition with a multi-level graph partitioning algorithm: A size of the graph is reduced through collaboration to obtain a rough graph. Initial partition is performed on the rough graph according to a number of processors. Refinement is performed on the original graph, and a partitioned result is optimized.

[0053] 2) Parallel spectral element mesh generation: On each processor, a following solution is executed, with a flowchart as shown in FIG. 5:

[0054] a) Mesh dimension determination: Whether a mesh is a 2D mesh or a 3D mesh is determined.

[0055] b) Mesh type determination: According to a number of nodes in each mesh element, a mesh type (a tet, a hex, a wedge, a tri, and a quad) is determined, and the mesh is classified to different branches according to different compositions of the mesh type. For two dimensions, a pure tri is classified into one branch, and a hybrid of the tri and the quad is classified into one branch. For three dimensions, a pure tet is classified into one branch, a pure wedge is classified into one branch, a hybrid of the tet and the wedge is classified into one branch, and the tet, the hex, and the wedge are classified into one branch. (Note: The mesh to be transformed is not the spectral element mesh by default. Hence, there is neither a pure hex branch nor a pure quad branch).

[0056] c) Homogeneous mesh grouping: Meshes of a same type are classified to a same block (the block represents a mesh set), and the block is sequentially numbered.

[0057] d) Mesh type transformation: Segmentation is performed on the 2D mesh by taking an edge midpoint and a face center. Segmentation is performed on the 3D mesh by taking an edge midpoint, a face center, and a body center. Upon the segmentation, one quad is transformed into four quads, one tri is transformed into three quads, one hex is transformed into eight hexes, one tet is transformed into four hexes, and one wedge is transformed into six hexes, as shown in FIG. 6. It is to be noted that since a dangling point (the edge midpoint and the face center) is generated when other meshes hybridized with the quad mesh and the hex mesh are segmented and transformed, the quad mesh and the hex mesh in the hybrid mesh are also to be transformed. In order to achieve consistent meshes on the whole upon the transformation, the segmentation is also performed on the quad mesh and the hex mesh.

[0058] 3): Node ID synchronization: In order to keep consistency of meshes, communication is established between the processors, so as to synchronize a global ID of a newly added node at a boundary:

[0059] a) For a boundary of each subdomain, a node to be synchronized is identified and recorded.

[0060] b) Node information is synchronized between the processors with an MPI library. Each processor sends a local ID and a coordinate of a boundary node, receives boundary information of other processors, and assigns a global ID to a newly added node.

[0061] 4) Submesh merging and spectral element mesh data output:

[0062] a) Upon completion of local computation of all processors, a global merging operation is performed. A complete spectral element mesh is obtained according to mesh subdomains and a global ID of the boundary node.

[0063] b) A boundary condition is processed in a merging process, so as to ensure no repeated node at an interface between the subdomains and a consistent element topology.

[0064] c) Upon completion of the merging, spectral element mesh data of a whole computing domain is output for subsequent CFD simulated computation.

[0065] Further, the above contents are described below in conjunction with specific examples. Specifically:

[0066] Step 1 : Hybrid mesh domain decomposition:

[0067] Step 1.1: Dual graph generation: A corresponding dual graph is generated from a hybrid mesh file. First of all, a null dual graph G(V, E) is initialized. Then, each mesh element u is traversed, and taken as a node added to a graph G(V). Next, each element v neighboring to the element u is checked, and a relation between each pair of neighboring elements is taken as an edge (u,v) added to a graph G(E), provided that the edge does not exist in the graph. At last, the dual graph G(V, E) is output, with the nodes representing the mesh elements, and the edge representing the neighboring relation between the elements.

[0068] Step 1.2: Node weight calculation: With the dual graph G(V, E) generated in the previous step as an input, a weight of each node u is calculated, thereby generating a weighted dual graph Gw(Vw, E). Each node u in the dual graph is traversed. A type of the mesh element u represented by the node is determined. According to a calculated amount of the type, a corresponding weight is assigned. For example, for the tet, six edge midpoints, four face centers and one body center are to be calculated, and thus the weight is 11. Specifically, if the type of the element is the tri, the weight is set as 4. 5 is set for the quad. 11 is set for the tet. 19 is set for the hex. 15 is set for the wedge. After the weight is assigned, the node and the weight thereof are added to a weighted dual graph G_w(V_w). At last, the weighted dual graph G_w(V % E) is returned.

[0069] Step 1.3: Multi-level graph partitioning algorithm: The weighted dual graph G_w(V_w, E) is segmented into P subgraphs, P being a number of processors.

[0070] a) Collaboration: In this step, the graph is simplified continuously. Candidate node pairs are selected continuously, and evaluated based on weights of nodes and a neighboring relation between the nodes. The node pair having small weights and closely connected is merged priorly (standard for determining the closely connected node pair: There are the minimum weight difference, and the most common neighboring nodes), so as to ensure that a merged new node does not affect the subsequent partition for a large weight. In each merging operation, the weight of the new node is updated as a sum of the weights of the original two nodes. This process is continued all the time, until the graph cannot be further merged. At last, a collaborated rough graph (i c is returned.

[0071] b) Initial partition: P approximately balanced subgraphs are found on the rough graph G_c with a Kernighan-Lin algorithm. These graphs form an initially partitioned subgraph set {S'_l, S'_2, ..., S'_P}-

[0072] c) Refinement: In the refinement stage, the initially partitioned subgraph set {S'_l, S'_2, ..., S'_P} is projected back to the original graph G w. Each subgraph S'_i is optimized locally with a Fiduccia-Mattheyses algorithm, so as to reduce a weight sum of a boundary edge between the subgraphs. A refined subgraph set {S_1, S 2...., S P} is returned.

[0073] Step 2 : Parallel spectral element mesh generation:

[0074] With transformation from the tri mesh to the quad mesh and from the tet mesh to the hex mesh as an example, descriptions are made on an implementation of mesh type transformation in the algorithm for transforming the hybrid mesh into the spectral element mesh in each processor. It is to be noted that the idea and process of the transformation algorithm is applied to not only the tri mesh and the tet mesh, but also other types of meshes. Hereinafter, the tenn "a number of meshes" refers to a number of meshes distributed to the processor.

[0075] Tri element num represents a number of tri meshes, tet element num represents a number of tet meshes, quad_element_num represents a number of quad spectral element meshes upon the transformation, hcxdcmcnt jium represents a number of hex spectral element meshes upon the transformation, sub element represents a submesh ID after each mesh is segmented, vertex represents a present mesh point ID (including a vertex and a mesh edge midpoint), face represents a present face ID, dim represents a dimension, orimeshorder represents an ID of each mesh before the transformation, with a value domain being [1 :trinclement jium / tcGclcmcntjium], transjnesh order represents an ID of each mesh upon the transformation, with a value domain being [1:3*tridcmentjium]. mesh_ori[ori_mesh_order] [vertex] [dim] stores a coordinate of a tri / tet mesh point before the transformation, and mesh_trans[ori_mesh_order] [vertex] [dim] stores a coordinate of a quad / hex spectral element mesh point upon the transformation.

[0076] Transformation from the tri mesh to the quad mesh:

[0077] 1) Data preparation:

[0078] Mesh_ori[ori_mesh_order] [vertex] [dim] stores a coordinate of the tri mesh point before the transformation, ori mesh order = [1: tri element num], vertex = [1:3], and dim = [1:2].

[0079] MeshJrans[transjiieshjjrder] [vertex] [dim] stores a coordinate of the quad spectral element mesh point upon the transformation, trans mesh order = [1: 3*tri_element_num], vertex = [1:4], and dim = [1:2],

[0080] Tri_vertex[vertex][dim] stores a coordinate of a vertex of the tri mesh element, vertex =[1:6], and dim = [1:2].

[0081] Tri_face[dim] stores a coordinate of a face center of the tri mesh element, and dim = [1:2].

[0082] Quad_vertex[sub_element] [vertex] [dim] stores the quad mesh element upon the transformation, sub element = [1:3], vertex = [1:4], and dim = [1:2] .

[0083] Orimeshorder = trans mesh order = 1 is initialized.

[0084] 2) All tri meshes are traversed with cri me until ori^mesh^order = tri_element_num:

[0085] (1) Node coordinate information is read from a tri mesh file. Three vertex coordinates are stored to mesh_ori[ori_mesh_order][l :3][ 1:2], and assigned to tri_vertex[l :3][1:2].

[0086] (2) Midpoints of three edges of the tri mesh are calculated, and three midpoints are stored to trivertcx[4:6] [1:2].

[0087] (3) A face center of the tri mesh is calculated, and stored to tri facc[ 1:2].

[0088] (4) For each sub element, midpoints of two intersecting edges in tri_vertex[l :6][1:2], an intersection between the two edges, and the tri_face[l:2] are assigned to quad_vertex[sub_element] [ 1:4] [ 1:2].

[0089] (5) Each sub_element is traversed. In each traversal, the value of the trans_mesh_order is added by 1. The quad v :4][1:2] is assigned to mesh_trans[trans_mesh_order][l:4] [1:2],

[0090] Transformation from the tet mesh to the hex mesh:

[0091] 1) Data preparation:

[0092] Mesh_ori[ori_mesh_order][ vertex] [dim] stores a coordinate of the tet mesh point before the transformation, ori jnesh ordcr = [1: tet clementjium], vertex = [1:4], and dim = [1:3].

[0093] Mcsh_trans[transjncsh_ordcr][vertcx][dim] stores a coordinate of the hex spectral element mesh point upon the transformation, trans mesh order = [1: 4*tet_element_num], vertex = [1:8], and dim = [1:3].

[0094] Tet_vertex[vertex][dim] stores a coordinate of a vertex of the tet mesh element, vertex =[1:10], and dim = [1:3].

[0095] Tet_face[face][dim] stores a coordinate of a face center of the tet mesh element, face= [1:4], and dim =[1:3].

[0096] Tet_center[dim] stores a coordinate of a body center of the tet mesh element, and dim = [1:3].

[0097] Hex_vertex[sub_element] [vertex] [dim] stores the hex mesh element upon the transformation, sub element = [1:4], vertex = [1:8], and dim = [1:3],

[0098] Orimeshorder = trans mesh order = 1 is initialized.

[0099] 2) All tet meshes are traversed with orimeshorder, until orimeshorder = tet_elcmcntnu m:

[0100] (1) Node coordinate information is read from a tet mesh file. Four vertex coordinates are stored to mesh_ori[ori_mesh_order][l :4][1:3], and assigned to tet_vertex[l :4][1:3].

[0101] (2) Midpoints of six edges of the tet mesh are calculated, and six midpoints are stored to tetvertex [4:10] [ 1:3 ].

[0102] (3) A face center of each face of the tet mesh is calculated, and stored to tet_face[l:4][l:3].

[0103] (4) A body center of the tet mesh is calculated, and stored to tet_center[ 1:3].

[0104] (5) For each sub element, midpoints of three intersecting edges in tet_vertex[l:10][l:3], an intersection among the three edges, face centers of three intersecting faces in tet face[ 1:4J[ 1:3J, and the tct ccntcr[l :3] are assigned to hcx_vcrtcx[subdcmcnt][l:8J[l:3J.

[0105] (6) Each sub clcm is traversed. In each traversal, the value of the trans jncsh order is added by 1. The hex_vertex[sub_element][l:8][l:3] is assigned to mesh_trans[trans_mesh_order][l :8] [1:4],

[0106] Step 3 : Node ID synchronization:

[0107] Step 3.1: A key data structure is defined:

[0108] (1) Boundary node array: boundaryNodes, including:

[0109] • locallD: local ID

[0110] • globallD: global ID

[0111] • coordinates[dim]: coordinates, having a same dim as the mesh ori and the mesh trans.

[0112] • subdomainlD: subdomain ID

[0113] (2) Global node coordinate array: globalNodeCoordinates

[0114] (3) Spectral element global node ID array: hexElementNodelDs

[0115] Step 3.2: A boundary node is identified: All mesh elements in each subdomain are traversed. For each node in each element, if the node is neighboring to at least one element in other subdomains, the locallD, the coordinates, and the subdomainlD of the node are recorded to the boundaryNodes.

[0116] Step 3.3: Node information synchronization:

[0117] (1) BoundaryNodes infonnation of all processors are synchronized with MPI Allgather.

[0118] (2) For received information of each boundary node, whether a node having same coordinates exists on all processors is checked.

[0119] (3) If the node having the same coordinates exists, a smallest globallD is uniformly distributed by the processors to the node, and the globallD is updated in the boundaryNodes.

[0120] Step 4: Submesh merging and spectral element mesh data output:

[0121] Step 4.1: Global merging operation:

[0122] (1) BoundaryNodes information on all processors, particularly a globallD and coordinates of each node, is acquired.

[0123] (2) Repetition is eliminated based on the globallD to construct globalNodeCoordinates.

[0124] (3) Mesh data of each subdomain is merged, and hexElementNodelDs is updated, so as to ensure that each spectral element has a correct globallD.

[0125] Step 4.2: Boundary condition processing:

[0126] Each element in the hexElementNodelDs is checked, so as to ensure that the node at the boundary is correctly connected in different subdomains, and maintain the consistent element topology.

[0127] Step 4.3: Spectral element mesh data output:

[0128] (1) The hexElementNodelDs is traversed, and a node global ID list of each spectral element is output.

[0129] (2) The globalNodeCoordinates is traversed, and coordinates of each node are output.

[0130] The above are merely preferred specific implementations of the present disclosure, and the protection scope of the present disclosure is not limited thereto. The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure provided by the present disclosure includes a hybrid mesh domain decomposition algorithm, a parallel spectral element mesh generation method, a node ID synchronization algorithm, a submesh merging method and a spectral element mesh data output method, all of which belong to the protection scope of the present disclosure. The foregoing are descriptions of preferred implementation of the present disclosure. It should be noted that a person of ordinary skill in the art can make several improvements and modifications without departing from the principle of the present disclosure, and such improvements and modifications should be deemed as falling within the protection scope of the present disclosure.

Claims

1. A parallel hexahedron (hex)-mesh generation method applied to direct numerical simulation (DNS) on a flow field of a helical structure, comprising the following steps:SI: hybrid mesh domain decomposition:S1.1: dual graph generation: processing a hybrid mesh file to generate a dual graph, wherein mesh elements are respectively taken as nodes of the graph, and a neighboring relation between the elements is taken as an edge of the graph;SI.2: node weight computation: determining a mesh type, and assigning corresponding weights to the nodes according to different mesh types; andSI.3: domain decomposition with a multi-level graph partitioning algorithm: reducing a size of the graph through collaboration to obtain a rough graph; performing initial partition on the rough graph according to a number of processors; and performing refinement on the original graph, and optimizing a partitioned result;S2: parallel spectral element mesh generation:S2.1: mesh dimension determination: determining whether a mesh is a two-dimensional (2D) mesh or a three-dimensional (3D) mesh;S2.2: mesh type determination: determining a mesh type according to a number of nodes in each mesh element, and classifying the mesh into different branches according to different compositions of the mesh type;S2.3: homogeneous mesh grouping: grouping meshes of a same type to a same mesh set, and sequentially numbering the mesh set; andS2.4: mesh type transformation: performing segmentation on the 2D mesh and the 3D mesh to realize the mesh type transformation;S3: node identity (ID) synchronization: establishing communication between the processors, and synchronizing a global ID of a newly added node at a boundary to ensure consistency of meshes; andS4: submesh merging and spectral element mesh data output:S4.1: upon completion of local computation of all processors, performing a global merging operation, and merging into a complete spectral element mesh according to mesh subdomains and a global ID of a boundary node;S4.2: processing a boundary condition in a merging process, so as to ensure no repeated node at an interface between the subdomains and a consistent element topology; andS4.3: upon completion of the merging, outputting spectral element mesh data of a whole computing domain for subsequent computational fluid dynamics (CFD) simulated computation.

2. The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure according to claim 1, wherein the mesh type comprises a triangle (tri) and a quadrilateral (quad) in two dimensions, as well as a tetrahedron (tet), a hex, and a wedge in three dimensions.

3. The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure according to claim 1, wherein the step S2.2 specifically comprises:for the 2D mesh, classifying a pure tri into one branch, and a hybrid of a tri and a quad into one branch; andfor the 3D mesh, classifying a pure tet into one branch, a pure wedge into one branch, a hybrid of a tet and a wedge into one branch, and a hybrid of a tet, a hex, and a wedge into one branch.

4. The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure according to claim 1, wherein the step S2.4 specifically comprises:for the 2D mesh, performing the segmentation by taking an edge midpoint and a face center, wherein upon the segmentation, one quad is transformed into four quads, and one tri is transformed into three quads; andfor the 3D mesh, performing the segmentation by taking an edge midpoint, a face center, and a body center, wherein upon the segmentation, one hex is transformed into eight hexes, one tet is transformed into four hexes, and one wedge is transformed into six hexes.

5. The parallel hex-mesh generation method applied to DNS on a flow field of a helical structure according to claim 1, wherein the step S3 specifically comprises:S3.1: for a boundary of each subdomain, identifying and recording a node to be synchronized; andS3.2: synchronizing node information between the processors with a message passing interface (MP1) library, wherein each processor sends a local ID and a coordinate of a boundary node, receives boundary information of other processors, and assigns a global ID to a newly added node.

Citation Information

Patent Citations

  • Singularity reduction in quadrilateral meshes

    US20180101983A1