A method and device for placing seed points on a three-dimensional surface

By triangulating the three-dimensional surface grid and identifying the critical point type, the seed points are arranged reasonably, and the problem of uneven placement of seed points on the three-dimensional non-structural surface is solved, and the accurate reflection of flow field characteristics is achieved.

CN120337822BActive Publication Date: 2025-08-29SICHUAN UNIVERSITY OF SCIENCE AND ENGINEERING
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510804449.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-17
Publication Date
2025-08-29
Estimated Expiration
2045-06-17

AI Technical Summary

Technical Problem

The prior art is difficult to reasonably arrange seed points on three-dimensional non-structural surfaces, resulting in the local and global characteristics of the flow field being unable to be accurately reflected.

Method used

By reading the three-dimensional surface grid and triangulating, the critical point position and type in the flow field are determined, the seed point placement method is determined according to the critical point type, and seed points are placed in the flow field. The three-universal area algorithm is used to find the connecting area, and determine whether the area and shape meet the placement conditions of the seed point, and finally place the seed point in the center of the connecting area.

Benefits of technology

It realizes the accurate characterization of the key features and global information of the flow field on the three-dimensional non-structural surface, and improves the accuracy and coverage effect of the flow field visualization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120337822B_ABST
    Figure CN120337822B_ABST
Patent Text Reader

Abstract

This application discloses a method and device for placing seed points on a three-dimensional surface, which is applied to the field of scientific visualization technology. The method comprises the following steps: reading a three-dimensional surface mesh and performing triangulation processing to obtain a target three-dimensional surface mesh; traversing all triangular mesh units to determine the triangular mesh units where multiple critical points in the flow field are located; determining the type of each critical point and, based on the critical point type, determining the placement of seed points around it; placing seed points in the flow field to generate a target flow field; evenly placing seed points in non-feature areas, generating streamlines based on the seed points, and using a three-connected region algorithm to find connected regions based on the triangular mesh units that the streamlines pass through; determining whether the area and shape of each connected region meet the seed point placement conditions; and, if so, placing a seed point at the center of the connected region. This effectively depicts the key features and global information of the flow field.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of scientific visualization technology, and in particular to a method and device for placing seed points on a three-dimensional surface. Background Art

[0002] Flow field visualization helps analyze flow field characteristics by converting fluid mechanics simulation results into graphics. Surface streamlines show the flow of fluid on the surface of an object and affect aerodynamic performance. The arrangement of seed points is crucial to the streamline effect. Reasonable arrangement can ensure uniform coverage of streamlines and accurately reflect the flow field characteristics. However, the complexity of three-dimensional unstructured surface meshes makes traditional methods difficult to apply, and there are problems such as insufficient critical point detection accuracy and incomplete seed point coverage. Therefore, how to reasonably arrange seed points on three-dimensional unstructured surfaces so that they can accurately express the local and global characteristics of the flow field remains a key challenge in current flow field visualization.

[0003] In existing technologies, the influence range of grid points is determined based on the local grid density and the Poisson ellipse sampling method. Then, the point with the local maximum of information entropy is selected as the initial seed point to highlight significant flow field features. Finally, the influence range of the grid points is used to supplement non-interfering seed points to fully characterize the overall state of the surface flow field. However, existing technologies are only applicable to structured grids and cannot be applied to unstructured grids. Therefore, how to optimize the arrangement of seed points on three-dimensional unstructured surfaces to ensure that the local and global characteristics of the flow field can be fully and accurately reflected remains a major challenge in current flow field visualization. Summary of the Invention

[0004] Based on the above-mentioned deficiencies of the prior art, the present application provides a method and device for placing seed points on a three-dimensional surface to solve the problem of how to optimize the arrangement of seed points on a three-dimensional unstructured surface to ensure that the local and global characteristics of the flow field can be fully and accurately reflected.

[0005] In order to achieve the above objectives, this application provides the following technical solutions:

[0006] The first aspect of the present application provides a method for placing seed points on a three-dimensional surface, comprising:

[0007] Reading a three-dimensional surface mesh and performing triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh;

[0008] Traversing all triangular mesh units in the target three-dimensional surface mesh to determine positions in the triangular mesh units where a plurality of critical points in the flow field are located;

[0009] For each critical point, determine the type of the critical point according to the position of the critical point in the triangular mesh unit;

[0010] Determining a placement method of seed points around the critical point based on the type of the critical point, and placing seed points in the flow field according to the seed point placement method to obtain a target flow field;

[0011] Evenly placing seed points in a non-feature area of ​​the target flow field, and generating streamlines based on all seed points in the non-feature area and all seed points in the feature area; wherein the non-feature area refers to a blank area; and the feature area refers to an area in the target flow field other than the non-feature area;

[0012] According to the triangular mesh units through which the streamline passes, a three-connected region algorithm is used to search for connected regions from all the triangular mesh units;

[0013] For each of the connected regions, determining whether the area and shape of the connected region meet the placement conditions of the seed point;

[0014] If the area and shape of the connected region meet the seed point placement conditions, the seed point is placed at the center of the connected region.

[0015] Optionally, in the above-mentioned three-dimensional surface seed point placement method, traversing all triangular mesh units in the target three-dimensional surface mesh to determine the positions of the multiple critical points in the flow field in the triangular mesh units includes:

[0016] For each of the triangular mesh units, calculating the angle between the velocity vectors of two adjacent vertices of the triangular mesh unit;

[0017] Calculating the Poincare index of the triangular mesh unit according to the angle;

[0018] Determining whether the Poincare index is a preset threshold;

[0019] If the Poincare index is a preset threshold, determining that a critical point exists in the triangular mesh unit, and calculating the coordinates of the center of gravity of the triangular mesh unit;

[0020] Calculating a velocity component of any point in the triangular mesh unit based on the barycentric coordinates;

[0021] The position of the critical point in the triangular mesh unit is determined according to the velocity component and the center of gravity coordinates using a gradient descent method, and the position of the critical point in the triangular mesh unit is determined as the position of the critical point in the triangular mesh unit in the flow field.

[0022] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, the determining the position of the critical point in the triangular mesh unit according to the velocity component and the center of gravity coordinates using a gradient descent method includes:

[0023] Taking the center of gravity coordinates as the current point;

[0024] Calculating the gradient of the current point according to the velocity component, and calculating the position of the update point based on the gradient, the center of gravity coordinates and a preset step size;

[0025] Calculating the gradient of the update point based on the velocity component corresponding to the position of the update point;

[0026] Determining whether the gradient is less than a preset threshold;

[0027] If the gradient is less than the preset threshold, determining the position of the updated point in the triangular mesh unit as the position of the critical point in the triangular mesh unit;

[0028] If the gradient is not less than the preset threshold, the updated point is used as the current point, and the process returns to executing the calculation of the gradient of the current point based on the velocity component.

[0029] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, determining the type of each critical point according to the position of the critical point in the triangular mesh unit includes:

[0030] For each critical point, coordinate mapping is performed on the position of the critical point in the triangular mesh unit to obtain a mapping coordinate system corresponding to the triangular mesh unit;

[0031] Calculating the position of the critical point in the mapping coordinate system;

[0032] Calculating the distance between the position and three edges of the triangular mesh unit;

[0033] Extract the shortest distance from all distances and use the shortest distance as the interpolation radius;

[0034] Interpolating the four preset points corresponding to the position according to the interpolation radius to obtain the coordinates of the four direction points and their corresponding velocity components;

[0035] Constructing a Jacobian matrix based on the coordinates of the four direction points and their corresponding velocity components, and solving the Jacobian matrix to obtain eigenvalues ​​of the Jacobian matrix;

[0036] The type of the critical point is determined according to the real part and the imaginary part of the eigenvalue.

[0037] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, determining the placement of seed points around the critical point based on the type of the critical point includes:

[0038] When the type of the critical point is a center point type, determining, according to the center point type, that the placement mode of the seed points around the critical point is a straight line placement mode;

[0039] When the type of the critical point is any one of an attracting gathering point, a repelling gathering point, an attracting node, and a repelling node, determining, according to the type of the critical point, that the placement mode of the seed points around the critical point is a circle center placement mode;

[0040] When the type of the critical point is a saddle point type, the placement mode of the seed points around the critical point is determined to be a bisector placement mode according to the saddle point type.

[0041] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, placing seed points in the flow field according to the placement method to obtain a target flow field includes:

[0042] When the flow field is placed in a straight line, a straight line is emitted along the critical point in the flow field according to the straight line, and a seed point is placed on the straight line to obtain a target flow field;

[0043] When the flow field is placed in a circle center placement mode, seed points are placed on a circle with the critical point in the flow field as the center according to the circle center placement mode to obtain a target flow field;

[0044] When the flow field is placed in a bisector placement manner, seed points are placed along the bisector of the main characteristic direction in the flow field according to the bisector placement manner to obtain a target flow field; wherein the main characteristic direction refers to the dominant direction of the critical point.

[0045] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, placing seed points in a non-feature area of ​​the target flow field includes:

[0046] Get the seed points around all critical points;

[0047] Creating a target set and a candidate set, and placing seed points around all the critical points in the target set;

[0048] Traversing all grid points in all triangular grid cells to obtain coordinates of all grid points;

[0049] For each of the grid points, calculating a first distance between the coordinates of the grid point and all seed points in the target set;

[0050] Determining whether the first distance corresponding to the grid point meets a preset threshold;

[0051] If the first distance corresponding to the grid point meets a preset threshold, the grid point is placed in the candidate set as a seed point;

[0052] Calculating a second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point;

[0053] For each grid point in the candidate set, determine whether the second distance corresponding to the grid point satisfies the preset threshold;

[0054] If the second distance corresponding to the grid point meets the preset threshold, the grid point is used as a seed point and placed in a non-feature area of ​​the target flow field.

[0055] Optionally, in the above-mentioned seed point placement method for a three-dimensional surface, searching for multiple connected regions from all the triangular mesh units through which the streamline passes using a three-connected region algorithm includes:

[0056] Marking the triangular mesh units through which the streamline passes, and filtering the marked triangular mesh units from the non-feature area to obtain a target non-feature area;

[0057] For each triangular mesh unit in the target non-feature area, define a vertex set and a cell set in the triangular mesh unit, and construct a vertex connection table of the triangular mesh unit based on the vertex set and the cell set;

[0058] For each of the vertex connection lists, determine whether a target vertex set exists in the vertex connection list; wherein the target vertex set is composed of at least two identical vertices;

[0059] If the target vertex set exists in the vertex connection table, a plurality of triangular mesh units corresponding to the target vertex set are obtained, and the plurality of triangular mesh units corresponding to the target vertex set are used as connected areas.

[0060] A second aspect of the present application provides a device for placing seed points on a three-dimensional surface, comprising:

[0061] A triangulation processing unit, configured to read a three-dimensional surface mesh and perform triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh;

[0062] A traversal unit is used to traverse all triangular mesh units in the target three-dimensional surface mesh to determine the positions of multiple critical points in the flow field in the triangular mesh units;

[0063] a type determination unit, configured to determine the type of each critical point according to a position of the critical point in the triangular mesh unit;

[0064] a processing unit, configured to determine a placement method of seed points around the critical point based on the type of the critical point, and place seed points in the flow field according to the seed point placement method to obtain a target flow field;

[0065] a streamline generation unit, configured to evenly place seed points in a non-feature area of ​​the target flow field, and generate streamlines based on all seed points in the non-feature area and all seed points in the feature area; wherein the non-feature area refers to a blank area; and the feature area refers to an area in the target flow field other than the non-feature area;

[0066] A region search unit, configured to search for connected regions from all the triangular mesh units through which the streamline passes, using a three-connected region algorithm;

[0067] a condition judgment unit, configured to judge, for each of the connected regions, whether the area and shape of the connected region satisfy the placement conditions of the seed point;

[0068] The seed point placement unit is configured to place a seed point at the center of the connected region if the area and shape of the connected region meet the seed point placement conditions.

[0069] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the traversal unit includes:

[0070] An angle calculation unit, configured to calculate, for each of the triangular mesh units, an angle between velocity vectors of two adjacent vertices of the triangular mesh unit;

[0071] An index calculation unit, configured to calculate the Poincare index of the triangular mesh unit according to the included angle;

[0072] A threshold judgment unit, configured to judge whether the Poincare index is a preset threshold;

[0073] a coordinate calculation unit, configured to determine if the Poincare index is a preset threshold, that a critical point exists in the triangular mesh unit, and calculate the coordinates of the center of gravity of the triangular mesh unit;

[0074] A velocity component calculation unit, configured to calculate a velocity component of any point in the triangular mesh unit based on the barycentric coordinates;

[0075] A position determination unit is used to determine the position of the critical point in the triangular mesh unit according to the velocity component and the center of gravity coordinates using a gradient descent method, and determine the position of the critical point in the triangular mesh unit as the position of the critical point in the triangular mesh unit in the flow field.

[0076] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the position determination unit includes:

[0077] The first is used as a unit to take the coordinates of the center of gravity as the current point;

[0078] a first calculation unit, configured to calculate a gradient of the current point according to the velocity component, and calculate a position of an update point based on the gradient, the coordinates of the center of gravity, and a preset step size;

[0079] a gradient calculation unit, configured to calculate the gradient of the update point based on a velocity component corresponding to the position of the update point;

[0080] A first judging unit, configured to judge whether the gradient is less than a preset threshold;

[0081] a position determination subunit, configured to determine the position of the update point in the triangular mesh unit as the position of the critical point in the triangular mesh unit if the gradient is less than the preset threshold;

[0082] The return execution unit is used to take the updated point as the current point if the gradient is not less than the preset threshold, and return to execute the calculation of the gradient of the current point based on the velocity component.

[0083] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the type determination unit includes:

[0084] A coordinate mapping unit, configured to perform coordinate mapping on the position of each critical point in the triangular mesh unit where the critical point is located, to obtain a mapping coordinate system corresponding to the triangular mesh unit;

[0085] a position calculation unit, configured to calculate the position of the critical point in the mapping coordinate system;

[0086] a distance calculation unit, configured to calculate the distance between the position and three sides of the triangular mesh unit;

[0087] an extraction unit, configured to extract the shortest distance from all distances and use the shortest distance as an interpolation radius;

[0088] an interpolation unit, configured to interpolate the four preset points corresponding to the position according to the interpolation radius to obtain coordinates of four direction points and their corresponding velocity components;

[0089] A solving unit, configured to construct a Jacobian matrix based on the coordinates of the four direction points and their corresponding velocity components, and solve the Jacobian matrix to obtain eigenvalues ​​of the Jacobian matrix;

[0090] The type sub-determination unit is used to determine the type of the critical point according to the real part and the imaginary part of the eigenvalue.

[0091] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the processing unit includes:

[0092] a first determining unit, configured to, when the critical point is of a center point type, determine, based on the center point type, that the seed points around the critical point are placed in a straight line;

[0093] a second determining unit, configured to, when the type of the critical point is any one of an attracting gathering point, a repelling gathering point, an attracting node, and a repelling node, determine, according to the type of the critical point, that the placement mode of the seed points around the critical point is a circle center placement mode;

[0094] The third determining unit is configured to determine, when the critical point is a saddle point type, that the placement of the seed points around the critical point is a bisector placement according to the saddle point type.

[0095] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the processing unit includes:

[0096] a first placement unit, configured to, when the flow field is placed in a linear manner, emit a straight line along the critical point in the flow field according to the linear placement manner, and place a seed point on the straight line to obtain a target flow field;

[0097] a second placement unit, configured to place seed points on a circle with the critical point in the flow field as the center according to the circle center placement mode when the flow field is placed in a circle center placement mode, so as to obtain a target flow field;

[0098] The third placement unit is used to place seed points along the bisector of the main characteristic direction in the flow field according to the bisector placement method when the placement method of the flow field is a bisector placement method, so as to obtain a target flow field; wherein the main characteristic direction refers to the dominant direction of the critical point.

[0099] Optionally, in the above-mentioned seed point placement device for a three-dimensional surface, the streamline generation unit includes:

[0100] An acquisition unit, used to acquire seed points around all critical points;

[0101] a creation unit, configured to create a target set and a candidate set, and place seed points around all the critical points in the target set;

[0102] A coordinate acquisition unit, configured to traverse all grid points in all triangular grid units to acquire coordinates of all grid points;

[0103] A second calculation unit is configured to calculate, for each of the grid points, a first distance between the coordinates of the grid point and all seed points in the target set;

[0104] A second judging unit, configured to judge whether the first distance corresponding to the grid point satisfies a preset threshold;

[0105] The second unit is configured to place the grid point as a seed point into the candidate set if the first distance corresponding to the grid point meets a preset threshold;

[0106] a third calculating unit, configured to calculate a second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point;

[0107] A third judgment unit is configured to judge, for each of the grid points in the candidate set, whether the second distance corresponding to the grid point satisfies the preset threshold;

[0108] The third unit is configured to use the grid point as a seed point and place the seed point in a non-feature area of ​​the target flow field if the second distance corresponding to the grid point meets the preset threshold.

[0109] Optionally, in the above-mentioned device for placing seed points on a three-dimensional surface, the region search unit includes:

[0110] a marking unit, configured to mark the triangular mesh units through which the streamline passes, and filter the marked triangular mesh units from the non-feature area to obtain a target non-feature area;

[0111] A definition unit is used to define, for each triangular mesh unit in the target non-feature area, a vertex set and a cell set in the triangular mesh unit, and construct a vertex connection table of the triangular mesh unit based on the vertex set and the cell set;

[0112] a fourth determining unit, configured to determine, for each of the vertex connection lists, whether a target vertex set exists in the vertex connection lists; wherein the target vertex set is composed of at least two identical vertices;

[0113] The region is used as a unit, and if a target vertex set exists in the vertex connection table, multiple triangle mesh units corresponding to the target vertex set are obtained, and the multiple triangle mesh units corresponding to the target vertex set are used as a connected region.

[0114] The present application provides a method for placing seed points on a three-dimensional surface. The method comprises the following steps: reading a three-dimensional surface mesh and triangulating the three-dimensional surface mesh to obtain a target three-dimensional surface mesh; traversing all triangular mesh cells in the target three-dimensional surface mesh to determine the triangular mesh cells where multiple critical points in the flow field are located; determining the type of each critical point based on the triangular mesh cell where the critical point is located; determining the placement method of seed points around the critical point based on the type of the critical point, and placing seed points in the flow field based on the placement method to obtain a target flow field; uniformly placing seed points in a non-feature area of ​​the target flow field; and generating streamlines based on all seed points in the non-feature area and all seed points in the feature area, wherein the non-feature area refers to a blank area and the feature area refers to an area other than the feature area in the target flow field; and searching for connected areas from all triangular mesh cells using a three-connected area algorithm based on the triangular mesh cells through which the streamline passes; and finally determining for each connected area whether the area and shape of the connected area meet the seed point placement conditions. If the area and shape of the connected area meet the seed point placement conditions, the seed point is placed at the center of the connected area. Therefore, by identifying the critical points in the flow field and reasonably arranging the seed points in the characteristic area, and using a two-stage method to arrange the seed points in the non-characteristic area, the key features and global information of the surface flow field can be effectively and accurately characterized. BRIEF DESCRIPTION OF THE DRAWINGS

[0115] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without any creative work.

[0116] Figure 1 A schematic diagram of a flow chart of a method for placing seed points on a three-dimensional surface provided in an embodiment of the present application;

[0117] Figure 2 A schematic flow chart of a method for determining a grid cell where a critical point is located, provided in another embodiment of the present application;

[0118] Figure 3 A schematic flow chart of a method for determining a critical point position provided in another embodiment of the present application;

[0119] Figure 4A schematic flow chart of a method for determining the type of a critical point provided in another embodiment of the present application;

[0120] Figure 5 A schematic diagram of a coordinate mapping structure provided in another embodiment of the present application;

[0121] Figure 6 A schematic structural diagram of a critical point interpolation position distribution provided in another embodiment of the present application;

[0122] Figure 7 A structural diagram of a flow field critical point classification provided by another embodiment of the present application;

[0123] Figure 8 A schematic structural diagram of a critical point placement template provided in another embodiment of the present application;

[0124] Figure 9 A flowchart of a method for placing seed points in a non-feature area provided in another embodiment of the present application;

[0125] Figure 10 A flowchart of a method for searching connected areas provided in another embodiment of the present application;

[0126] Figure 11 A schematic diagram of a three-connected structure provided in another embodiment of the present application;

[0127] Figure 12 A schematic structural diagram of a device for placing seed points on a three-dimensional surface provided in another embodiment of the present application;

[0128] Among them, O-XYZ is a three-dimensional coordinate system, O'-X'Y' is a plane rectangular coordinate system with the centroid of the triangle as the origin, A, B, and C are the coordinates of the three vertices of the triangle in the three-dimensional coordinate system, is the unit vector of the OX axis, is the unit vector of the OY axis, ON is an axis in the rectangular coordinate system, (x, yr) is an upward offset of r units, (x, y+r) is a downward offset of r units, (xr, y) is an offset of r units to the left, and (x+r, y) is an offset of r units to the right. R1 and R2 are the two real parts of the eigenvalue, and I1 and I2 are the two imaginary parts of the eigenvalue. DETAILED DESCRIPTION

[0129] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0130] In this application, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or apparatus. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or apparatus comprising the element.

[0131] The present application embodiment provides a method for placing seed points on a three-dimensional surface, such as Figure 1 As shown, the specific steps include:

[0132] S101 , reading a three-dimensional surface mesh, and performing triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh.

[0133] It is understandable that in order to read the three-dimensional surface mesh, it is necessary to first obtain the point cloud data and then extract the three-dimensional surface mesh from the point cloud data.

[0134] It should be noted that in order to ensure the consistency of the mesh structure, the three-dimensional surface mesh needs to be properly triangulated when it is read. Specifically, for structured meshes, triangular elements can be easily formed by diagonally dividing the rectangular elements. This method is computationally simple and efficient and is suitable for regular mesh structures. For unstructured meshes, due to the irregularity of their topological structure, the Delaunay triangulation method is usually used. This method optimizes the quality of the triangular elements and avoids the generation of deformed or "hollow" areas, thereby ensuring the rationality and accuracy of the mesh. Therefore, through the triangulation process of the three-dimensional surface mesh, different types of meshes can be effectively processed in a unified manner, thereby improving the stability and accuracy of subsequent calculations.

[0135] S102 , traversing all triangular mesh units in the target three-dimensional surface mesh to determine positions in the triangular mesh units where multiple critical points in the flow field are located.

[0136] Specifically, after obtaining the target three-dimensional surface mesh, in order to locate and accurately analyze the key areas in the flow field, ensure that the processing of critical points in the simulation process receives sufficient attention, and avoid large simulation errors due to the roughness or inaccuracy of the mesh division, it is necessary to traverse all the triangular mesh units on the target three-dimensional surface mesh to determine the specific position of the critical point in the flow field in the triangular mesh unit.

[0137] The flow field refers to the motion state and distribution of fluid (such as air, water or other gases and liquids) in space. It is mainly used to reveal the structure, direction and dynamic characteristics of fluid motion and is an indispensable component of computational fluid dynamics (CFD).

[0138] Optionally, in another embodiment of the present application, a specific implementation of step S102 is as follows: Figure 2 As shown, the specific steps include:

[0139] S201 : For each triangular mesh unit, calculate the angle between the velocity vectors of two adjacent vertices of the triangular mesh unit.

[0140] Specifically, first obtain the velocity vector of the coordinates of two adjacent vertices of the triangular mesh unit, that is, and , then use the angle The calculation formula calculates the angle between the velocity vectors of two adjacent vertices of the triangular mesh unit. The specific calculation formula is:

[0141]

[0142] in, represents the vector product of two vertices, Represents the modulus of two vertices.

[0143] The formula for calculating the vector product of two vertices is: .

[0144] The formula for calculating the modulus of two vertices is:

[0145]

[0146]

[0147] It should be noted that, because a triangular mesh unit has three vertices, there are three sets of coordinates for obtaining two adjacent vertices of the triangular mesh unit, so the angle between the velocity vectors of two adjacent vertices of the triangular mesh unit is include and , both through the angle The calculation formula is available.

[0148] S202. Calculate the Poincare index of the triangular mesh unit according to the included angle.

[0149] Specifically, the Poincare index The calculation formula is:

[0150]

[0151] in, and Both represent angles.

[0152] S203: Determine whether the Poincare index is a preset threshold.

[0153] It should be noted that in the embodiment of the present application, the Poincare index is used to determine whether there is a critical point in the triangular mesh unit. Therefore, the determination is made by setting a threshold, that is, judging whether the Poincare index is a preset threshold. If the Poincare index is the preset threshold, it means that there is a critical point in the triangular mesh unit corresponding to the Poincare index, so step S204 is executed.

[0154] Optionally, if the Poincare index is not a preset threshold, indicating that there is no critical point in the triangular mesh unit corresponding to the Poincare index, it is necessary to determine whether there is a critical point in the next triangular mesh unit until all triangular mesh units are determined.

[0155] Optionally, the preset threshold is 1 or -1.

[0156] S204: Determine whether a critical point exists in the triangular mesh unit, and calculate the coordinates of the center of gravity of the triangular mesh unit.

[0157] Specifically, when the Poincare index is 1 or -1, it indicates that a critical point exists in the triangular mesh unit. At this time, the exact location of the critical point in the triangular mesh unit needs to be precisely determined. Therefore, the barycentric coordinates of the triangular mesh unit need to be calculated first. The calculation formula for the barycentric coordinates is:

[0158]

[0159]

[0160]

[0161] Among them, P0, P1 and P2 all represent the three vertices P0 (x0, y0, z0), P1 (x1, y1, z1) and P2 (x2, y2, z2) of the triangle mesh unit.

[0162] S205 . Calculate the velocity component of any point in the triangular mesh unit based on the barycentric coordinates.

[0163] It should be noted that under discrete data conditions, the three vertices P0 (x0, y0, z0), P1 (x1, y1, z1) and P2 (x2, y2, z2) of the triangular mesh unit and the velocity components (u0, v0, w0), (u1, v1, w1) and (u2, v2, w2) corresponding to the three vertex coordinates can be obtained. Then, the velocity component of any point P can be calculated based on the centroid coordinates and the velocity components of the three vertex coordinates, that is, the velocity of any point in the triangular mesh unit, so that the precise position of the critical point can be determined later based on the velocity components and centroid coordinates.

[0164] S206 , using a gradient descent method to determine the position of the critical point in the triangular mesh unit according to the velocity component and the center of gravity coordinates, and determining the position of the critical point in the triangular mesh unit as the position of the critical point in the triangular mesh unit in the flow field.

[0165] It should be noted that in the embodiment of the present application, for the triangular mesh unit with a critical point, the position of the critical point can be iterated using the gradient descent method combined with the interpolation method, so as to obtain the specific position in the triangular mesh unit where the critical point is located.

[0166] Optionally, in another embodiment of the present application, a specific implementation method of determining the position of the critical point in the triangular mesh unit using the gradient descent method according to the velocity component and the center of gravity coordinates in step S206 is as follows: Figure 3 As shown, the specific steps include:

[0167] S301. Use the center of gravity coordinates as the current point.

[0168] Specifically, the coordinates of the center of mass of the triangular mesh unit are used as the initial position of the iteration because they are relatively stable in geometry and are suitable as the starting point of the iteration.

[0169] S302: Calculate the gradient of the current point according to the velocity component, and calculate the position of the update point based on the gradient, the center of gravity coordinates and the preset step size.

[0170] It should be noted that after obtaining the velocity information of the current point, that is, the velocity component in step S205, the gradient of the current point can be calculated based on the velocity component. That is, the gradient calculation formula is:

[0171]

[0172] Among them, d {x, y, z}, Indicates at point The velocity component on the y-axis, that is, the velocity component in step S205, and It is perturbed in the d direction. point, is a very small value of 1e-5, used to approximate the derivative.

[0173] After calculating the gradient of the current point, we can use the gradient descent method to iteratively calculate the position of the update point P starting from the initial point new , the specific update point position P new The calculation formula is:

[0174]

[0175] in, refers to the barycentric coordinates, To preset the step size, control the amplitude of each update, is the gradient.

[0176] S303. Calculate the gradient of the update point based on the velocity component corresponding to the position of the update point.

[0177] It is understandable that after each iteration obtains a new point, that is, an update point, the gradient of the update point needs to be calculated so that the gradient of the update point can be used to determine whether the update point is stable at the critical point.

[0178] In addition, the calculation formula for the gradient of the updated point can refer to the calculation formula for the gradient of the current point in step S302, and will not be repeated here.

[0179] S304: Determine whether the gradient is less than a preset threshold.

[0180] Specifically, the gradient of the update point is determined by the threshold to determine whether the update point is stable at the critical point, that is, the threshold is If the gradient is less than the preset threshold, it means that the iteration can be stopped and the update point has stabilized at the critical point, so step S305 is executed. If the gradient is not less than the preset threshold, it means that the iteration cannot be stopped and the update point has not stabilized at the critical point, so step S306 is executed.

[0181] S305 : Determine the position of the updated point in the triangular mesh unit as the position of the critical point in the triangular mesh unit.

[0182] Specifically, when the gradient is less than a preset threshold, it is necessary to stop iterating the update point position. At this time, the position of the update point is the position of the critical point. Therefore, the position of the update point in the triangular mesh unit can be determined as the position of the critical point in the triangular mesh unit.

[0183] S306: Set the updated point as the current point.

[0184] It is understandable that when the gradient is not less than the preset threshold, it is necessary to continue iterating the position of the update point until it stabilizes at the critical point. At this time, the position of the update point is used as the starting point of the iteration, and return to execute step S302 until the gradient is less than the preset threshold.

[0185] S103 : For each critical point, determine the type of the critical point according to the position of the critical point in the triangular mesh unit.

[0186] It should be noted that in the embodiment of the present application, it is necessary to arrange the seed points in different ways according to the type of critical points to ensure that the flow field characteristics can be accurately expressed. Therefore, it is necessary to first determine the type of critical points.

[0187] Optionally, in another embodiment of the present application, a specific implementation of step S103 is as follows: Figure 4 As shown, the specific steps include:

[0188] S401 : For each critical point, coordinate mapping is performed on the position of the critical point in the triangular mesh unit to obtain a mapping coordinate system corresponding to the triangular mesh unit.

[0189] It is understandable that in order to improve the accuracy, stability and adaptability of subsequent calculations and ensure more accurate and effective solutions in complex physical simulations and numerical analyses, it is necessary to perform coordinate mapping on the position of the critical point in the triangular mesh unit, that is, to convert the three-dimensional coordinate system O-XYZ into a plane rectangular coordinate system O'-X'Y' with the triangle centroid as the origin.

[0190] S402: Calculate the position of the critical point in the mapping coordinate system.

[0191] Specifically, the coordinate transformation formula is used to transform the position of the critical point in the original coordinate system into the coordinates in the mapped coordinate system. Assume that the position of the critical point in the original coordinate system is (x c ,y c , z c ), and then the coordinate transformation formula can be used to transform the critical point coordinates after mapping (x' c , y' c , z' c ).

[0192] Specifically, Figure 5 For the content shown, it is necessary to set the coordinates of the point of the triangular mesh unit ABC to (x i ,y i ,z i ), the corresponding velocity vector V i for (u i ,vi ,w i ), after coordinate mapping, the vertex coordinates of triangle ABC are transformed into (x' i ,y' i ,z' i ), the corresponding velocity vector V' i for (u' i ,v' i ,w' i ). First, let the axis OX be in the same direction as AB, through This calculation formula can be used to obtain the normal vector ON of the triangular mesh unit. After obtaining OX and ON, the axis OY can be obtained by Calculated.

[0193] After obtaining OX, OY, and ON, we need to set the unit vectors of OX, OY, and ON to be , , , and then use the coordinate transformation matrix M to transform. The specific expression is:

[0194]

[0195] Therefore, the coordinate transformation at the vertices of the triangular mesh element can be achieved by Find out.

[0196] At the same time, the velocity vector at the vertex of the triangular grid unit can also be converted into a two-dimensional plane coordinate system. Find out.

[0197] S403: Calculate the distance between the position and the three edges of the triangular mesh unit.

[0198] Specifically, in order to subsequently find the shortest distance between a location and a triangular mesh unit, the point-to-line distance formula can be used, combined with the geometric properties of the triangle, to solve the distance between the location and the three sides of the triangular mesh unit.

[0199] S404: Extract the shortest distance from all distances and use the shortest distance as the interpolation radius.

[0200] It is understandable that in order to dynamically adjust the interpolation range in a local area and thus achieve more accurate interpolation, the shortest distance among the three distances needs to be used as the interpolation radius r.

[0201] S405 , interpolating the four preset points corresponding to the positions according to the interpolation radius to obtain the coordinates of the four direction points and their corresponding velocity components.

[0202] It should be noted that after finding the interpolation radius, it is necessary to offset the position by r units in the four directions for interpolation, so that the coordinates of the four direction points can be obtained (x, yr), (x, y+r), (xr, y) and (x+r, y). Among them, the four directions are (x, yr) offset r units upward, (x, y+r): offset r units downward, (xr, y): offset r units to the left, (x+r, y): offset r units to the right. For details, please refer to Figure 6 The content shown.

[0203] S406 : Based on the coordinates of the four direction points and their corresponding velocity components, a Jacobian matrix is ​​constructed, and the Jacobian matrix is ​​solved to obtain the eigenvalues ​​of the Jacobian matrix.

[0204] Specifically, after obtaining the coordinates of the four direction points and their corresponding velocity components, the central difference method can be used to construct the Jacobian matrix J at the critical point. That is, the construction expression of the Jacobian matrix J is:

[0205]

[0206] Then we get the Jacobian matrix, and we need to take the derivative of the Jacobian matrix, and then we can get the eigenvalues ​​of the Jacobian matrix.

[0207] S407: Determine the type of the critical point according to the real part and the imaginary part of the eigenvalue.

[0208] It should be noted that the dynamic characteristics of the fluid in this area can be judged based on the positive and negative values ​​of the real part R and the imaginary part I contained in the eigenvalue, so as to classify the critical points. Then, according to the different properties of the flow field, the critical points can be divided into six types. The specific six types can be found in Figure 7 The content shown, Figure 7 (a) is the type of the central point, (b) is the type of the repelling cluster point, (c) is the type of the attracting cluster point, (d) is the type of the saddle point, (e) is the type of the repelling node, and (f) is the type of the attracting node.

[0209] S104 . Determine a placement method of seed points around the critical point based on the type of the critical point, and place the seed points in the flow field according to the seed point placement method to obtain a target flow field.

[0210] It should be noted that in the embodiment of the present application, three seed point placement methods are summarized based on the six types of critical points. Therefore, it is necessary to select a suitable seed point placement strategy based on the identified critical point type and arrange the seed points in the flow field, so that a target flow field with seed points placed can be obtained.

[0211] Optionally, in another embodiment of the present application, a specific implementation method of determining the placement of seed points around the critical point based on the type of the critical point in step S104 includes the following steps:

[0212] When the critical point type is the center point type, the placement of seed points around the critical point is determined to be a straight line placement method based on the center point type.

[0213] Specifically, the eigenvalue contains two real parts (R1 and R2) and two imaginary parts (I1 and I2). Therefore, when R1=R2=0, I1=-I2≠0, it can be determined that the type of critical point is the center point type, and the seed point placement method corresponding to the center point type is the straight line placement method.

[0214] When the type of the critical point is any one of an attracting gathering point, a repelling gathering point, an attracting node, and a repelling node, the placement method of the seed points around the critical point is determined to be a circle center placement method according to the type of the critical point.

[0215] Specifically, if R1=R2>0 and I1=-I2≠0, the critical point is considered a repulsive clustering point. If R1=R2<0 and I1=-I2≠0, the critical point is considered an attractive clustering point. If R1, R2<0 and I1=I2=0, the critical point is considered an attractive node. If R1, R2>0 and I1=I2=0, the critical point is considered a repulsive node. The seed placement methods for attractive, repulsive, attractive, and repulsive clustering points, as well as for attractive and repulsive nodes, are all center-of-circle placement.

[0216] When the critical point type is a saddle point type, the placement method of the seed points around the critical point is determined to be a bisector placement method according to the saddle point type.

[0217] Specifically, if R1<0, R2>0, I1=I2=0, then it can be determined that the type of the critical point is a saddle point type, and the seed point placement method of the saddle point type is the bisector placement method.

[0218] Optionally, in another embodiment of the present application, in step S104, seed points are placed in the flow field according to the placement method to obtain a specific implementation of the target flow field, which specifically includes the following steps:

[0219] When the flow field is placed in a straight line, a straight line is emitted along the critical point in the flow field according to the straight line placement method, and a seed point is placed on the straight line to obtain the target flow field.

[0220] It should be noted that the placement of the three seed points can be found in Figure 8 The content shown, where the bold points represent the seed template and the dashed lines are the streamlines tracked using the seeds in the template.

[0221] Specifically, when a linear placement method is determined for the flow field, the first step is to select an appropriate direction for linear launch based on the type of center point in the flow field. Typically, the center point is chosen, as the flow characteristics near the center point exhibit significant variations. Therefore, placing seed points along a straight line around this area can effectively capture the key characteristics of the flow field. Once the appropriate direction is determined, a straight line is launched along the critical point. The starting point of this line is typically chosen near the center point, and the direction of the line is adjusted based on the flow direction of the flow field. For steady-state points, a straight line can be launched along the main flow direction. Multiple seed points are then placed along this launched line at a predetermined interval. The position of these seed points can be adjusted based on the characteristics of the flow field. The appropriate spacing can typically be determined by calculating the gradient of changes in physical quantities such as velocity or pressure in the flow field. In areas with smaller spacing, the flow field characteristics vary significantly, so a denser seed point placement is recommended. For areas with more stable flow, the number of seed points can be appropriately reduced. Finally, by distributing seed points evenly along the line or based on the characteristics of the flow field, the flow characteristics of the entire flow field can be effectively described. The target flow field obtained in this way contains streamline information emitted along the straight line, which can reflect the physical characteristics of each area in the flow field, especially the flow conditions around the critical point. Figure 8 (a) in the figure indicates the straight line placement method.

[0222] When the flow field placement method is the circle center placement method, according to the circle center placement method, seed points are placed on a circle with the critical point in the flow field as the center to obtain the target flow field.

[0223] It can be understood that when it is determined that the placement method of the flow field is the circle center placement method, the first thing to do is to select the critical point in the flow field as the center of the circle. It is a point with special flow characteristics in the flow field, which can effectively capture the flow characteristics of the flow field in these areas. Secondly, after the center of the circle is determined, the radius of the circle must be selected. The size of the radius is usually determined according to the scale of the flow field or the range of change in the flow field. A circle with a smaller radius can observe the flow characteristics near the critical point more finely, while a circle with a larger radius can cover a larger range of flow field changes. The seed points are then evenly distributed along the edge of the circle. The number of seed points can be set as needed, and a certain spacing is usually selected to ensure that the main features of the flow field are covered. The spacing of the seed points can be adjusted according to the rate of change of the flow field. In areas where the flow field changes more drastically, the density of the seed points can be increased. Finally, the target flow field is generated by evenly placing seed points on a circular path. Each seed point will be used to track the streamlines in the flow field, and ultimately a complete description of the flow field is obtained. Through these seed points, the distribution characteristics of the flow field can be obtained, especially the flow state near the critical point. Among them Figure 8 (b) in the figure shows the placement of the center of the circle.

[0224] When the flow field placement method is the bisector placement method, seed points are placed along the bisector of the main characteristic direction in the flow field according to the bisector placement method to obtain the target flow field. The main characteristic direction refers to the dominant direction of the critical point.

[0225] Specifically, when the flow field placement method is determined to be the bisector placement method, it is necessary to first determine the main characteristic direction, where the main characteristic direction usually refers to the dominant direction of the flow field near the critical point. This direction can be determined in the following ways:

[0226] Streamline direction: For a critical point, the dominant streamline direction of the flow field can be identified by the shape of the streamlines.

[0227] Velocity field direction: Observe the distribution of velocity vectors in the flow field and select the dominant flow direction, that is, the direction in which the velocity vector distribution is most concentrated.

[0228] Gradient direction: If there is a gradient distribution of the velocity field, the direction with the most obvious gradient can be selected as the main feature direction.

[0229] Next, we determine the bisector. This bisector is the line of symmetry between the critical point and the flow characteristics surrounding it. Typically, around a critical point, the flow field exhibits symmetry along a specific direction, and the bisector is the axis of symmetry along that characteristic direction.

[0230] Then, seed points are evenly spaced along the bisector of the principal characteristic direction. Seed points should be spaced along the bisector at a certain interval to track the flow along that direction. These seed points are typically concentrated near the critical point to better observe the flow changes along the principal characteristic direction.

[0231] Finally, through these seed points, the streamlines in the flow field can be traced to depict the overall structure of the target flow field. The streamlines of these seed points will help describe the evolution of the flow field along the main characteristic direction, especially near the critical point, where the flow field changes more significantly. Figure 8 (c) in the figure shows the placement of the bisector.

[0232] S105 , evenly placing seed points in the non-feature area of ​​the target flow field, and generating streamlines based on all seed points in the non-feature area and all seed points in the feature area.

[0233] It is understandable that after placing seed points in the feature area, there may still be some non-feature areas, where the feature area refers to the area in the target flow field other than the non-feature area. The non-feature area refers to the blank area in the target flow field. Therefore, in order to accurately characterize the key features and global information of the surface flow field, it is also necessary to place seed points in the non-feature area and generate streamlines based on the seed points in the non-feature area and the seed points around the critical points of the feature area. Streamlines are used to clearly reflect the flow direction, velocity distribution, local vortex and other characteristics of the fluid on the surface of complex geometric structures.

[0234] Optionally, in another embodiment of the present application, a specific implementation method of placing seed points in the non-feature area of ​​the target flow field in step S105 is as follows: Figure 9 As shown, the specific steps include:

[0235] S901. Obtain seed points around all critical points.

[0236] It is understandable that in order to place seed points in non-feature areas, there are selection requirements for seed points placed in non-feature areas. Therefore, according to the selection requirements, seed points around the critical point will be selected first.

[0237] S902: Create a target set and a candidate set, and place seed points around all critical points in the target set.

[0238] It should be noted that in order to select seed points that meet the requirements, two sets are created in advance, namely the target set and the candidate set. Then, seed points around the critical points are placed in the target set, and grid points as candidate seed points are subsequently placed in the candidate set.

[0239] S903: Traverse all grid points in all triangular grid units to obtain coordinates of all grid points.

[0240] It should be noted that in the embodiment of the present application, the seed points that meet the conditions are selected by the distance between points. Therefore, it is necessary to first traverse all vertices in all triangular mesh units and then obtain the coordinates of all vertices as the coordinates of the mesh points.

[0241] S904 : For each grid point, calculate the first distance between the coordinate of the grid point and all seed points in the target set.

[0242] Specifically, the distance between points is calculated using the Euclidean distance, assuming that the coordinates of the grid point are P i (x i ,y i , z i ), i represents the index of the point, P j (xj ,y j , z j ) represents the coordinates of the seed point in the target set. At this time, the Euclidean distance d can be used to calculate P i (x i ,y i , z i ) and P j (x j ,y j , z j ) between the first distance:

[0243]

[0244] Among them, P i represents the i-th grid point, P j Represents the jth seed point in the target set.

[0245] S905: Determine whether the first distance corresponding to the grid point meets a preset threshold.

[0246] Specifically, in order to know whether the grid point meets the requirements of being placed as a seed point in the candidate set, a threshold can be used to determine whether the first distance corresponding to the grid point meets the preset threshold. If the first distance corresponding to the grid point meets the preset threshold, it means that the grid point meets the requirements of being placed as a seed point in the candidate set, so step S906 is executed at this time.

[0247] Optionally, if the first distance corresponding to the grid point does not meet a preset threshold, it means that the grid point does not meet the requirement of being placed in the seed point of the candidate set, and the grid point is deleted to avoid repeated calculation.

[0248] S906: Place the grid point as a seed point into the candidate set.

[0249] It is understandable that when the first distance corresponding to a grid point meets the preset threshold, the grid point needs to be placed in the candidate set as a candidate seed point, so as to ensure that all selected seed points are not too close and repeated.

[0250] S907: Calculate the second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point.

[0251] It should be noted that when the first distances corresponding to all grid points are judged, it means that the candidate set has been fully populated with all seed points that meet the candidate conditions. At this time, it is necessary to further judge the seed points that meet the candidate conditions before the seed points can be placed in the non-feature area, thereby accurately characterizing the key features of the surface flow field.

[0252] Therefore, it is necessary to use the coordinates of all grid points again to calculate the second distances between the coordinates of all grid points and all seed points in the candidate set except the grid point as the seed point, and the Euclidean distance is also used for calculation.

[0253] S908 : For all grid points in the candidate set, determine whether the second distance corresponding to the grid point meets a preset threshold.

[0254] It is understood that after obtaining all second distances, it is necessary to determine whether the second distance corresponding to the grid point meets the preset threshold, so as to determine the seed point to be placed in the non-feature area. Therefore, if the second distance corresponding to the grid point meets the preset threshold, it is ultimately determined that the grid point meets the conditions for placement in the non-feature area, and step S909 is executed.

[0255] Optionally, if the second distance corresponding to the grid point does not meet the preset threshold, it ultimately indicates that the grid point does not meet the condition of being placed in the non-feature area. In this case, the grid point needs to be deleted, and then the next grid point is judged.

[0256] S909: Use the grid points as seed points and place them in the non-feature area of ​​the target flow field.

[0257] Specifically, when the second distance corresponding to the grid point meets the preset threshold, all grid points meeting the preset threshold are obtained and used as seed points, and then all seed points are placed in the non-feature area.

[0258] S106 , searching for connected regions from all triangular mesh units using a three-connected region algorithm based on the triangular mesh units that the streamline passes through.

[0259] It should be noted that after the candidate seed points are placed in the non-feature area, there may still be some blank areas in the non-feature area. Therefore, in order to solve this situation, it is necessary to use connectivity analysis to identify the remaining uncovered connected areas, that is, to use the three-connected area algorithm to find the uncovered connected areas according to the triangular mesh units through which the streamlines pass, and then place seed points in the uncovered connected areas.

[0260] Optionally, in another embodiment of the present application, a specific implementation of step S106 is as follows: Figure 10 As shown, the specific steps include:

[0261] S1001 , marking the triangular mesh units through which the streamline passes, and filtering the marked triangular mesh units from the non-feature area to obtain a target non-feature area.

[0262] It is understandable that in order to solve the problem that there will still be blank areas after placing seed points in the non-feature area, all triangular mesh units in the non-feature area will be traversed first to mark the triangular mesh units through which streamlines pass, so that the triangular mesh unit status status = 1, and then the marked triangular mesh units will be filtered from the non-feature area, so that the blank area not covered by the seed points can be obtained, that is, the target non-feature area.

[0263] S1002 : For each triangular mesh unit in the target non-feature area, define a vertex set and a cell set in the triangular mesh unit, and construct a vertex connection table of the triangular mesh unit based on the vertex set and the cell set.

[0264] It should be noted that, in the embodiment of the present application, according to the proposed three-connected area algorithm based on the triangular mesh topological relationship, such as Figure 11 As shown in the figure, connectivity analysis is used to identify the remaining uncovered connected areas. That is, based on the adjacency relationship of triangular mesh units, the connected areas are constructed using each triangular mesh unit and its neighbors with shared edges. The specific process is as follows:

[0265] First, all triangular mesh cells are traversed. For triangular mesh cells that have not been visited (that is, triangular mesh cells that no streamline passes through), depth-first search (DFS) or breadth-first search (BFS) is used to recursively expand and classify all adjacent triangular mesh cells with shared edges into the same connected area.

[0266] In addition, in order to speed up the search for cells adjacent to the target cell, we construct a vertex adjacency list for each data block, that is, we first define the vertex set V and cell set C in the triangular mesh cell, where each cell C i ∈C, C consists of three vertices {v1, v2, v3}. Vertex adjacency list T v It is a hash table where the key is the vertex ID and the value is the set of unit IDs involved in the vertex. For example, for vertex v1, its adjacency table T v1 Contains all cell IDs that contain the v1 vertex. So when building the vertex adjacency list, for each cell C i ∈C, each vertex v of the cell j ∈V i , where V refers to the vertex set in all triangular mesh units, V i It represents the i-th point in the vertex set, and the unit C i The ID of the vertex is added to the adjacency list, that is: T vj =T vj ∪{C i}.

[0267] where vj ∈V i For unit C i One of the vertices of . And later using this structure, we can query the vertex adjacency table T v To efficiently obtain the unit N adjacent to the target unit v , thus obtaining the connected area.

[0268] S1003 , determining whether there is a target vertex set in all vertex connection lists respectively.

[0269] It should be noted that in order to find a cell C i Adjacent cells can be found by searching each vertex adjacency table to see if the target vertex set exists, where the target vertex set consists of at least two identical vertices. The specific search process is as follows:

[0270] You need to extract the C first i The vertex set V of the cell i ={v1, v2, v3}, then for each vertex v j ∈V i Query its adjacency table T vj , and filter out the cells with cell C i Adjacent cells. The criteria for determining adjacent cells is that two cells share more than two vertices. The mathematical expression is:

[0271]

[0272] Among them, shared_vertices(C i , C j ) represents unit C i and C j The number of shared vertices.

[0273] Therefore, if the target vertex set exists in the vertex connection table, it means that there may be triangle mesh units adjacent to the target mesh unit in the target non-feature area, so step S1004 is executed at this time.

[0274] Optionally, if the target vertex set does not exist in the vertex connection table, it means that the C corresponding to the vertex connection table i There is no adjacent triangular mesh unit in the unit, so it is necessary to i Ignore the unit and continue to the next C i Unit judgment.

[0275] S1004: Acquire multiple triangular mesh units corresponding to the target vertex set, and use the multiple triangular mesh units corresponding to the target vertex set as connected areas.

[0276] Specifically, when the target vertex set exists in the vertex connection table, it is considered that the C corresponding to the vertex connection table i There may be adjacent cells to each cell, so it is necessary to obtain all the triangular mesh cells corresponding to each vertex in the target vertex set, and regard the triangular mesh cells adjacent to the target cell as the same connected area for subsequent placement of seed points.

[0277] S107 : For each connected region, determine whether the area and shape of the connected region meet the placement conditions of the seed point.

[0278] It should be noted that in order to eliminate slender and small connected areas, because they do not contain enough pixels or space, subsequent seed point propagation or area growth cannot be carried out. Therefore, for each connected area, it is judged whether the area and shape of the connected area meet the placement conditions of the seed point. If the area and shape of the connected area meet the placement conditions of the seed point, step S108 is executed.

[0279] Optionally, if the area and shape of the connected region do not meet the seed point placement conditions, it means that the connected region is elongated and has a small area, so the connected region needs to be removed.

[0280] S108. Place a seed point at the center of the connected area.

[0281] It can be understood that when the area and shape of the connected area meet the conditions for placing seed points, it is necessary to arrange seed points at the center of the connected area and generate streamlines based on the arranged seed points until there are no new seed points, that is, until all connected areas are judged to be complete.

[0282] The present application provides a method for placing seed points on a three-dimensional surface. The method comprises the following steps: reading a three-dimensional surface mesh and triangulating the three-dimensional surface mesh to obtain a target three-dimensional surface mesh; traversing all triangular mesh cells in the target three-dimensional surface mesh to determine the triangular mesh cells where multiple critical points in the flow field are located; determining the type of each critical point based on the triangular mesh cell where the critical point is located; determining the placement method of seed points around the critical point based on the type of the critical point, and placing seed points in the flow field based on the placement method to obtain a target flow field; uniformly placing seed points in a non-feature area of ​​the target flow field; and generating streamlines based on all seed points in the non-feature area and all seed points in the feature area, wherein the non-feature area refers to a blank area and the feature area refers to an area other than the feature area in the target flow field; and searching for connected areas from all triangular mesh cells using a three-connected area algorithm based on the triangular mesh cells through which the streamline passes; and finally determining for each connected area whether the area and shape of the connected area meet the seed point placement conditions. If the area and shape of the connected area meet the seed point placement conditions, the seed point is placed at the center of the connected area. Therefore, by identifying the critical points in the flow field and reasonably arranging the seed points in the characteristic area, and using a two-stage method to arrange the seed points in the non-characteristic area, the key features and global information of the surface flow field can be effectively and accurately characterized.

[0283] Another embodiment of the present application provides a device for placing seed points on a three-dimensional surface, such as Figure 12 As shown, it includes the following units:

[0284] The triangulation processing unit 1201 is used to read the three-dimensional surface mesh and perform triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh.

[0285] The traversal unit 1202 is configured to traverse all triangular mesh units in the target three-dimensional surface mesh to determine positions in the triangular mesh units where multiple critical points in the flow field are located.

[0286] The type determining unit 1203 is configured to determine the type of each critical point according to the position of the critical point in the triangular mesh unit.

[0287] The processing unit 1204 is configured to determine a placement method of seed points around the critical point based on the type of the critical point, and place the seed points in the flow field according to the seed point placement method to obtain a target flow field.

[0288] The streamline generation unit 1205 is configured to evenly place seed points in the non-feature region of the target flow field and generate streamlines based on all seed points in the non-feature region and all seed points in the feature region. The non-feature region refers to a blank area, and the feature region refers to the area of ​​the target flow field excluding the non-feature region.

[0289] The region search unit 1206 is configured to search for connected regions from all triangular mesh units using a three-connected region algorithm according to the triangular mesh units that the streamline passes through.

[0290] The condition judgment unit 1207 is used to judge, for each connected region, whether the area and shape of the connected region meet the placement conditions of the seed point.

[0291] The seed point placement unit 1208 is configured to place a seed point at the center of the connected region if the area and shape of the connected region satisfy the seed point placement conditions.

[0292] It should be noted that the specific working process of the above modules in the embodiment of the present application can refer to steps S101 to S108 in the above method embodiment, and will not be repeated here.

[0293] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the traversal unit 1202 includes:

[0294] The angle calculation unit is used to calculate the angle between the velocity vectors of two adjacent vertices of each triangular mesh unit respectively.

[0295] The index calculation unit is used to calculate the Poincare index of the triangular mesh element according to the included angle.

[0296] The threshold judgment unit is used to judge whether the Poincare index is a preset threshold.

[0297] The coordinate calculation unit is used to determine the existence of a critical point in the triangular mesh unit if the Poincare index is a preset threshold, and calculate the coordinates of the center of gravity of the triangular mesh unit.

[0298] The velocity component calculation unit is used to calculate the velocity component of any point in the triangular mesh unit based on the center of gravity coordinates.

[0299] The position determination unit is used to determine the position of the critical point in the triangular grid unit according to the velocity component and the center of gravity coordinates using the gradient descent method, and determine the position of the critical point in the triangular grid unit as the position of the critical point in the triangular grid unit in the flow field.

[0300] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the position determination unit includes:

[0301] The first one is used as a unit to take the coordinates of the center of gravity as the current point.

[0302] The first calculation unit is used to calculate the gradient of the current point according to the velocity component, and calculate the position of the update point based on the gradient, the center of gravity coordinates and the preset step size.

[0303] The gradient calculation unit is used to calculate the gradient of the update point based on the velocity component corresponding to the position of the update point.

[0304] The first judging unit is configured to judge whether the gradient is less than a preset threshold.

[0305] The position determination subunit is configured to determine the position of the update point in the triangular mesh unit as the position of the critical point in the triangular mesh unit if the gradient is less than a preset threshold.

[0306] Return to the execution unit, which is used to take the updated point as the current point if the gradient is not less than the preset threshold, and return to execute the calculation of the gradient of the current point based on the velocity component.

[0307] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the type determination unit 1203 includes:

[0308] The coordinate mapping unit is used to perform coordinate mapping on the position of each critical point in the triangular mesh unit where the critical point is located, so as to obtain a mapping coordinate system corresponding to the triangular mesh unit.

[0309] The position calculation unit is used to calculate the position of the critical point in the mapping coordinate system.

[0310] A distance calculation unit is used to calculate the distance between a position and the three edges of a triangle mesh unit.

[0311] The extraction unit is used to extract the shortest distance from all distances and use the shortest distance as the interpolation radius.

[0312] The interpolation unit is used to interpolate the four preset points corresponding to the positions according to the interpolation radius to obtain the coordinates of the four direction points and their corresponding velocity components.

[0313] The solving unit is used to construct a Jacobian matrix based on the coordinates of the four direction points and their corresponding velocity components, and solve the Jacobian matrix to obtain the eigenvalues ​​of the Jacobian matrix.

[0314] The type sub-determination unit is used to determine the type of the critical point according to the real part and the imaginary part of the eigenvalue.

[0315] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the processing unit 1204 includes:

[0316] The first determining unit is configured to determine, when the critical point is of a center point type, that the placement of the seed points around the critical point is a straight line placement according to the center point type.

[0317] The second determining unit is used to determine that the placement mode of the seed points around the critical point is a circle center placement mode according to the type of the critical point when the type of the critical point is any one of an attraction gathering point, a repulsion gathering point, an attraction node, and a repulsion node.

[0318] The third determining unit is configured to determine, when the critical point is a saddle point type, that the placement of seed points around the critical point is a bisector placement method according to the saddle point type.

[0319] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the processing unit 1204 includes:

[0320] The first placement unit is used to, when the placement mode of the flow field is a linear placement mode, emit a straight line along the critical point in the flow field according to the linear placement mode, and place a seed point on the straight line to obtain a target flow field.

[0321] The second placement unit is used to place seed points on a circle with a critical point in the flow field as the center according to the circle center placement method when the flow field placement method is a circle center placement method to obtain a target flow field.

[0322] The third placement unit is configured to place seed points along a bisector of a main characteristic direction in the flow field according to the bisector placement method to obtain a target flow field when the flow field placement method is a bisector placement method. The main characteristic direction refers to a dominant direction of a critical point.

[0323] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the streamline generation unit 1205 includes:

[0324] The acquisition unit is used to obtain seed points around all critical points.

[0325] A creation unit is used to create a target set and a candidate set, and to place seed points around all critical points in the target set.

[0326] The coordinate acquisition unit is used to traverse all grid points in all triangular grid units to obtain the coordinates of all grid points.

[0327] The second calculation unit is used to calculate, for each grid point, a first distance between the coordinates of the grid point and all seed points in the target set.

[0328] The second judgment unit is used to judge whether the first distance corresponding to the grid point meets a preset threshold.

[0329] The second unit is used to place the grid point as a seed point into the candidate set if the first distance corresponding to the grid point meets a preset threshold.

[0330] The third calculation unit is configured to calculate a second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point.

[0331] The third judgment unit is configured to judge, for all grid points in the candidate set, whether the second distance corresponding to the grid point satisfies a preset threshold.

[0332] The third unit is used to use the grid point as a seed point and place it in a non-feature area of ​​the target flow field if the second distance corresponding to the grid point meets a preset threshold.

[0333] Optionally, in another embodiment of the present application, in a device for placing seed points on a three-dimensional surface, the region search unit 1206 includes:

[0334] The marking unit is used to mark the triangular mesh units through which the streamline passes, and filter the marked triangular mesh units from the non-feature area to obtain the target non-feature area.

[0335] The unit is defined to define a vertex set and a cell set in each triangular mesh unit in the target non-feature area, and to construct a vertex connection table of the triangular mesh unit according to the vertex set and the cell set.

[0336] The fourth judgment unit is configured to judge, for all vertex connection lists, whether a target vertex set exists in the vertex connection lists, wherein the target vertex set is composed of at least two identical vertices.

[0337] The region is used as a unit, and if a target vertex set exists in the vertex connection table, multiple triangle mesh units corresponding to the target vertex set are obtained, and the multiple triangle mesh units corresponding to the target vertex set are used as the connected region.

[0338] It should be noted that the specific working processes of the various modules provided in the above embodiments of the present application can refer to the corresponding steps in the above method embodiments, and will not be repeated here.

[0339] It should also be noted that the seed point placement device for a three-dimensional surface provided in the embodiment of the present application has the technical effects of any of the above embodiments, and the embodiments of the present application will not be described in detail here.

[0340] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0341] The above description of the disclosed embodiments is intended to enable one skilled in the art to implement or use the present application. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application is not limited to the embodiments shown herein, but is intended to conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for placing seed points on a three-dimensional surface, characterized in that: include: Reading a three-dimensional surface mesh and performing triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh; Traversing all triangular mesh units in the target three-dimensional surface mesh to determine positions in the triangular mesh units where a plurality of critical points in the flow field are located; For each critical point, determine the type of the critical point according to the position of the critical point in the triangular mesh unit; Determining a placement method of seed points around the critical point based on the type of the critical point, and placing seed points in the flow field according to the placement method to obtain a target flow field; Evenly placing seed points in a non-feature area of ​​the target flow field, and generating streamlines based on all seed points in the non-feature area and all seed points in the feature area; wherein the non-feature area refers to a blank area; and the feature area refers to an area in the target flow field other than the non-feature area; According to the triangular mesh units through which the streamline passes, a three-connected region algorithm is used to search for connected regions from all the triangular mesh units; For each of the connected regions, determining whether the area and shape of the connected region meet the placement conditions of the seed point; If the area and shape of the connected region meet the seed point placement conditions, then place the seed point at the center of the connected region; The step of evenly placing seed points in the non-feature area of ​​the target flow field includes: Get the seed points around all critical points; Creating a target set and a candidate set, and placing seed points around all the critical points in the target set; Traversing all grid points in all triangular grid cells to obtain coordinates of all grid points; For each of the grid points, calculating a first distance between the coordinates of the grid point and all seed points in the target set; Determining whether the first distance corresponding to the grid point meets a preset threshold; If the first distance corresponding to the grid point meets a preset threshold, the grid point is placed in the candidate set as a seed point; Calculating a second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point; For each grid point in the candidate set, determine whether the second distance corresponding to the grid point satisfies the preset threshold; If the second distance corresponding to the grid point meets the preset threshold, the grid point is used as a seed point and placed in a non-feature area of ​​the target flow field.

2. The method according to claim 1, characterized in that The traversing all triangular mesh units in the target three-dimensional surface mesh to determine the positions of the multiple critical points in the flow field in the triangular mesh units includes: For each of the triangular mesh units, calculating the angle between the velocity vectors of two adjacent vertices of the triangular mesh unit; Calculating the Poincare index of the triangular mesh unit according to the angle; Determining whether the Poincare index is a preset threshold; If the Poincare index is a preset threshold, determining that a critical point exists in the triangular mesh unit, and calculating the coordinates of the center of gravity of the triangular mesh unit; Calculating a velocity component of any point in the triangular mesh unit based on the barycentric coordinates; The position of the critical point in the triangular mesh unit is determined according to the velocity component and the center of gravity coordinates using a gradient descent method, and the position of the critical point in the triangular mesh unit is determined as the position of the critical point in the triangular mesh unit in the flow field.

3. The method according to claim 2, characterized in that The method of determining the position of the critical point in the triangular mesh unit according to the velocity component and the center of gravity coordinates by using the gradient descent method includes: Taking the center of gravity coordinates as the current point; Calculating the gradient of the current point according to the velocity component, and calculating the position of the update point based on the gradient, the center of gravity coordinates and a preset step size; Calculating the gradient of the update point based on the velocity component corresponding to the position of the update point; Determining whether the gradient is less than a preset threshold; If the gradient is less than the preset threshold, determining the position of the updated point in the triangular mesh unit as the position of the critical point in the triangular mesh unit; If the gradient is not less than the preset threshold, the updated point is used as the current point, and the process returns to executing the calculation of the gradient of the current point based on the velocity component.

4. The method according to claim 1, wherein The step of determining the type of each critical point according to the position of the critical point in the triangular mesh unit includes: For each critical point, coordinate mapping is performed on the position of the critical point in the triangular mesh unit to obtain a mapping coordinate system corresponding to the triangular mesh unit; Calculating the position of the critical point in the mapping coordinate system; Calculating the distance between the position and three edges of the triangular mesh unit; Extract the shortest distance from all distances and use the shortest distance as the interpolation radius; Interpolating the four preset points corresponding to the position according to the interpolation radius to obtain the coordinates of the four direction points and their corresponding velocity components; Constructing a Jacobian matrix based on the coordinates of the four direction points and their corresponding velocity components, and solving the Jacobian matrix to obtain eigenvalues ​​of the Jacobian matrix; The type of the critical point is determined according to the real part and the imaginary part of the eigenvalue.

5. The method according to claim 1, wherein The determining of a placement method of seed points around the critical point based on the type of the critical point includes: When the type of the critical point is a center point type, determining, according to the center point type, that the placement mode of the seed points around the critical point is a straight line placement mode; When the type of the critical point is any one of an attracting gathering point, a repelling gathering point, an attracting node, and a repelling node, determining, according to the type of the critical point, that the placement mode of the seed points around the critical point is a circle center placement mode; When the type of the critical point is a saddle point type, the placement mode of the seed points around the critical point is determined to be a bisector placement mode according to the saddle point type.

6. The method according to claim 5, characterized in that Placing seed points in the flow field according to the placement method to obtain a target flow field includes: When the flow field is placed in a straight line, a straight line is emitted along the critical point in the flow field according to the straight line, and a seed point is placed on the straight line to obtain a target flow field; When the flow field is placed in a circle center placement mode, seed points are placed on a circle with the critical point in the flow field as the center according to the circle center placement mode to obtain a target flow field; When the flow field is placed in a bisector placement manner, seed points are placed along the bisector of the main characteristic direction in the flow field according to the bisector placement manner to obtain a target flow field; wherein the main characteristic direction refers to the dominant direction of the critical point.

7. The method according to claim 1, characterized in that The method of searching for multiple connected regions from all the triangular mesh units through which the streamline passes by using a three-connected region algorithm includes: Marking the triangular mesh units through which the streamline passes, and filtering the marked triangular mesh units from the non-feature area to obtain a target non-feature area; For each triangular mesh unit in the target non-feature area, define a vertex set and a cell set in the triangular mesh unit, and construct a vertex connection table of the triangular mesh unit based on the vertex set and the cell set; For each of the vertex connection lists, determine whether a target vertex set exists in the vertex connection list; wherein the target vertex set is composed of at least two identical vertices; If the target vertex set exists in the vertex connection table, a plurality of triangular mesh units corresponding to the target vertex set are obtained, and the plurality of triangular mesh units corresponding to the target vertex set are used as connected areas.

8. A seed point placement device for a three-dimensional surface, characterized in that: A seed point placement method for a three-dimensional surface, as applied to claim 1, comprising: A triangulation processing unit, configured to read a three-dimensional surface mesh and perform triangulation processing on the three-dimensional surface mesh to obtain a target three-dimensional surface mesh; A traversal unit, used for traversing all triangular mesh units in the target three-dimensional surface mesh to determine the positions of multiple critical points in the flow field in the triangular mesh units; a type determination unit, configured to determine the type of each critical point according to a position of the critical point in the triangular mesh unit; a processing unit, configured to determine a placement method of seed points around the critical point based on the type of the critical point, and place seed points in the flow field according to the seed point placement method to obtain a target flow field; a streamline generation unit, configured to evenly place seed points in a non-feature area of ​​the target flow field, and generate streamlines based on all seed points in the non-feature area and all seed points in the feature area; wherein the non-feature area refers to a blank area; and the feature area refers to an area in the target flow field other than the non-feature area; A region search unit, configured to search for connected regions from all the triangular mesh units through which the streamline passes, using a three-connected region algorithm; a condition judgment unit, configured to judge, for each of the connected regions, whether the area and shape of the connected region satisfy the placement conditions of the seed point; a seed point placement unit, configured to place a seed point at the center of the connected region if the area and shape of the connected region meet the seed point placement conditions; Wherein, the streamline generation unit includes: An acquisition unit, used to acquire seed points around all critical points; a creation unit, configured to create a target set and a candidate set, and place seed points around all the critical points in the target set; A coordinate acquisition unit, configured to traverse all grid points in all triangular grid units to acquire coordinates of all grid points; A second calculation unit is configured to calculate, for each of the grid points, a first distance between the coordinates of the grid point and all seed points in the target set; A second judging unit, configured to judge whether the first distance corresponding to the grid point satisfies a preset threshold; The second unit is configured to place the grid point as a seed point into the candidate set if the first distance corresponding to the grid point meets a preset threshold; a third calculating unit, configured to calculate a second distance between the coordinate of the grid point and all seed points in the candidate set except the grid point; A third judgment unit is configured to judge, for each of the grid points in the candidate set, whether the second distance corresponding to the grid point satisfies the preset threshold; The third unit is configured to use the grid point as a seed point and place the seed point in a non-feature area of ​​the target flow field if the second distance corresponding to the grid point meets the preset threshold.

9. The device according to claim 8, characterized in that The traversal unit includes: An angle calculation unit, configured to calculate, for each of the triangular mesh units, an angle between velocity vectors of two adjacent vertices of the triangular mesh unit; An index calculation unit, configured to calculate the Poincare index of the triangular mesh unit according to the included angle; A threshold judgment unit, configured to judge whether the Poincare index is a preset threshold; a coordinate calculation unit, configured to determine if the Poincare index is a preset threshold, that a critical point exists in the triangular mesh unit, and calculate the coordinates of the center of gravity of the triangular mesh unit; A velocity component calculation unit, configured to calculate a velocity component of any point in the triangular mesh unit based on the barycentric coordinates; A position determination unit is used to determine the position of the critical point in the triangular mesh unit according to the velocity component and the center of gravity coordinates using a gradient descent method, and determine the position of the critical point in the triangular mesh unit as the position of the critical point in the triangular mesh unit in the flow field.

Citation Information

Patent Citations

  • Multi-layer texture generation method based on streamline growth method and metamorphic particle method

    CN109147019A

  • Underground water flow field streamline drawing method and system based on information entropy feature extraction

    CN110211224A