CN109918782B - Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree - Google Patents

Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree Download PDF

Info

Publication number
CN109918782B
CN109918782B CN201910168674.5A CN201910168674A CN109918782B CN 109918782 B CN109918782 B CN 109918782B CN 201910168674 A CN201910168674 A CN 201910168674A CN 109918782 B CN109918782 B CN 109918782B
Authority
CN
China
Prior art keywords
numbers
vertex
edges
mesh
fine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910168674.5A
Other languages
Chinese (zh)
Other versions
CN109918782A (en
Inventor
杨明林
吴比翼
肖光亮
郭琨毅
盛新庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201910168674.5A priority Critical patent/CN109918782B/en
Publication of CN109918782A publication Critical patent/CN109918782A/en
Application granted granted Critical
Publication of CN109918782B publication Critical patent/CN109918782B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The invention discloses a multilayer rapid multipole parallel mesh fine dissection method based on an auxiliary tree, which is characterized in that the auxiliary tree is constructed based on the center of a coarse mesh triangular unit, the auxiliary tree is subjected to layered dispersion by adopting a dispersion mode and a process number which are the same as the structure of a multipolar subtree used for calculation, and according to the dispersion mode of a first layer parallel to a box, distribution mapping between the triangular unit and the process used for calculation is established by traversing to the finest layer, and the triangular unit, the side and the vertex are numbered and rearranged to form a coarse mesh file with continuous partitions; secondly, the file of the coarse mesh is read in parallel, the coarse mesh is subjected to uniform and consistent fine dissection on each process, and newly generated edges, points and triangles are renumbered to form complete fine mesh information.

Description

Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree
Technical Field
The invention belongs to the field of computational electromagnetic calculation research, and particularly relates to a multilayer rapid multipole parallel grid fine-sectioning method based on an auxiliary tree.
Background
The moment method is an accurate algorithm in the computational electromagnetism, and an integral equation is solved. Because the radiation boundary conditions are automatically met, the method is particularly suitable for solving open-domain problems such as scattering and radiation problems. The iterative solution of the moment method final matrix equation can be accelerated by adopting a multilayer fast multipole technology. The multi-layer fast multipole technology divides a target into a plurality of layers of boxes, and realizes matrix vector multiplication through aggregation, transfer and divergence in a grouping and layering mode. By means of efficient parallel computing technology, the computation scale of the moment method can be expanded to hundreds of billions of unknown quantities and tens of thousands of wavelengths.
In the multilayer fast multipole technical solving process of the surface integral equation problem, firstly, the outer surface of the whole target is dispersed by using a triangular unit, and the process is called mesh subdivision. For ease of computation, the triangular mesh generation information is typically stored using the following array:
(1) the vertex coordinate array xyz (3, maxnode), which is the total number of vertices generated by the subdivision. Each vertex stores xyz coordinates using 3 real-type elements. And storing according to 4 bytes of single precision, wherein the total byte number required by storage is 12 multiplied by the maxnode.
(2) The local number of the triangle unit and the global number correspond to an array iptat (3, maxpatch), and the maxpatch is the total number of the triangle units generated by subdivision. Each triangle contains 3 shaping elements storing number values. According to the long integer storage, the total byte number required by the storage is 24 multiplied by maxpatch.
(3) The number of the edge corresponds to the vertex and the triangle, namely edge (4, maxedge), and the maxedge is the total number of edges generated by subdivision. Each edge stores 4 integer elements. According to the long integer storage, the total byte number required by the storage is 32 multiplied by the maxedge.
(4) And the midpoint coordinate of the edge is used for assisting in constructing a multi-layer rapid multi-pole subtree structure middenode (3, maxedge), and three real number type elements of each edge are stored. And the single precision 4 bytes are stored, so that the total byte number required by storage is 12 multiplied by the maxedge.
When the calculation target electrical size is large, the discrete unknowns (number of triangular edges) are large in scale, such as billions in scale, and the grid generation based on the moment method becomes very difficult. This is mainly due to the following reasons:
(1) the generation is difficult. According to the above geometric information storage method, even if binary storage is adopted, the total size of the finally generated geometric file is close to 1 TB. Considering the intermediate variable array, the memory required by the generation of a single grid is close to or even exceeds 1TB, and the serial program is difficult to realize in terms of both hardware resources and calculation time.
(2) Reading is difficult. After the grid file is generated, reading of a file with a magnitude of near TB and even a file with a magnitude of more than TB also becomes a bottleneck of a parallel program, continuous reading is performed by adopting a single process, and the efficiency of a mode of transmitting the grid file to other processes through a network is extremely low. The multi-pole parallel discrete is carried out by taking a multi-pole sub-tree structure as an object, and the continuous edge number of the initial subdivision grid is different from the edge number sequence reordered according to the multi-pole sub-tree structure. When the multipole is filled in the finest layer by the near interaction matrix taking the box as a unit and the aggregation and divergence matrix is filled, each process reads the geometric file by taking the edge number after the multi-layer fast multipole rearrangement as an offset, and the offset arrays of the file pointers are ordered but not continuous. The discontinuous file pointer offset will cause the disk head to jump and read, and under the existing hard disk structure, the reading speed of the file reading method will be much slower than that of a whole block of equivalent data reading. Even if parallel reading is adopted, when the process scale is thousands or even tens of thousands, the reading is limited due to the limitation of the number of hard disk magnetic heads. When a large amount of file reading work is performed simultaneously, especially when a large number of users are on a high-performance cluster and other users perform file reading simultaneously, geometric file reading is extremely slow.
(3) Efficient parallelism is difficult. In the multilayer fast multipole technology, in order to ensure the calculation accuracy, the average side length of a triangle is usually required to be kept at one tenth of a wavelength or even smaller, and the subdivision scale can be called as a calculation discrete scale. In addition, the geometric shape of the target needs to be accurately simulated, and the subdivision scale can be called as a geometric simulation scale. In general, the geometric simulation scale is set to be the same as the discrete scale in calculation. However, for real targets, the geometric simulation scale may be much larger than the computational discrete scale while maintaining good geometric simulation accuracy. The method lays a foundation for successfully implementing the method for generating the initial coarse grid and further generating the large-scale fine grid meeting the calculation requirements through the parallel fine dissection. Due to the limitation of the operation that edges in the multipole need to be rearranged, the mesh subdivision implementation cannot adopt a general decomposition mode based on target geometry map partitioning (metis), otherwise unreasonable initial mesh dispersion will result in a large amount of communication. In the extreme case, a grid discrete over the process requires a thorough reallocation.
In summary, the generation and reading of large-scale grids become the bottleneck of parallel multi-layer fast multi-stage subprograms, and it is urgently needed to develop new technologies to realize efficient parallel generation of grids.
Disclosure of Invention
In view of this, the invention provides a multilayer rapid multi-pole parallel grid fine-splitting method based on an auxiliary tree, which can realize the efficient generation and reading of a large-scale grid.
The technical scheme for realizing the invention is as follows:
a multilayer rapid multi-pole parallel grid fine-cutting method based on an auxiliary tree comprises the following steps:
step one, dividing a complex structure target into triangular meshes, calculating a triangular center coordinate according to vertex numbers and vertex coordinates of the triangular meshes, and generating an auxiliary tree structure of the meshes according to a multi-layer fast multipole box dividing principle based on the triangular center;
secondly, carrying out load distribution on the grids according to a preset parallel scheme and the MPI process number, and determining triangular grid numbers belonging to each process;
thirdly, reordering the distributed triangular mesh numbers, vertex numbers and edge numbers, and outputting corresponding storage files;
and step four, reading the storage file obtained in the step three in parallel, finely sectioning the triangular mesh for a preset number of times, and reordering newly generated edges, vertexes and triangular meshes to form complete fine mesh information.
Further, in step three, reordering the triangle mesh numbers, the vertex numbers and the edge numbers specifically comprises:
triangle mesh numbering: firstly, compressing and rearranging the discontinuous triangle unit numbers scattered on the process into continuous numbers starting from 1 according to the original number size sequence, and then increasing the continuous numbers according to the process;
vertex number: firstly, numbering vertexes in all processes, and then, numbering the public vertexes again according to the sequence;
numbering edges: compressing and rearranging edges in the process according to the original number, then numbering the edges in the process according to the process increasing sequence, then compressing and rearranging all public edges, and numbering the public edges, wherein the initial position of the public edge numbering is behind the numbering of the edges in all the processes.
Further, in the fourth step, the subdivision scale m and the number of times of the fine dissection are determined as follows:
m≤m0×2n
wherein n is a preset number of fine dissection times, and m0Is the average split side length that needs to be achieved finally, and is generally set to one tenth of a wavelength.
Further, in the fourth step, the newly generated edges, vertexes and triangular meshes are reordered, specifically:
the triangle mesh number and the vertex number adopt the global numbers of all processes;
the original vertex number value of the vertex number is unchanged, and the newly generated vertex is re-numbered according to the local sequence after the compression of the subordinate edge number.
Has the advantages that:
(1) according to the method, the auxiliary tree is constructed by using the center coordinates of the triangles of the coarse grid, and the auxiliary tree is discretized in the same discrete mode as that of the calculation of the multipole subtree, so that the discrete mode of the coarse grid unit is determined. The discrete mode can ensure that the formed grid data file is continuously partitioned according to the process, the parallel reading efficiency of the file is improved, and more importantly, the discrete mode of the finely-divided multipole subtree can be well estimated, so that the locality of grid information required by filling each matrix of the finely-divided multipole is ensured to the greatest extent, and the additional communication brought by the redistribution of data among the processes is reduced.
(2) After the coarse mesh is scattered to the process, the numbering rules of the units, the edges and the vertexes are reasonably set, so that the processes in the subsequent fine dissection process are completely and independently carried out without communication, the parallel efficiency is very high, the time consumption for generating the mesh is almost negligible, and the efficiency is high.
(3) The middle arrays in the grid parallel fine-splitting process are completely released after the grid fine-splitting operation is completed, and the memory required by the storage of the middle arrays is far smaller than the peak memory in the subsequent calculation process under any condition, so that the memory requirement of the whole parallel program cannot be increased.
Drawings
FIG. 1 is a schematic diagram of a coarse mesh-based auxiliary tree discretization process.
FIG. 2 is a schematic diagram of a renumbering rule for coarse mesh geometric information.
The corresponding relation of the vertex and the edge number in the triangle unit is shown in figure 3.
FIG. 4 is a schematic diagram of parallel reading of different coarse mesh geometry files.
FIG. 5 is a schematic diagram illustrating numbering rules of vertex, edge and triangle units after fine cutting; the method comprises the following steps of (a) generating a triangle unit numbering rule schematic diagram after fine cutting, (b) generating an edge numbering rule schematic diagram after fine cutting, and (c) generating a vertex numbering rule schematic diagram after fine cutting.
FIG. 6 is a schematic diagram of a method for calculating coordinates of new vertices after fine cutting.
Fig. 7 is a schematic diagram of the edge information array edge.
FIG. 8 is a diagram of inter-process communication perfecting edge array information.
Figure 9 ship model geometry schematic.
Fig. 10 is a statistical diagram of the number of processes corresponding to the percentage of local geometric information in the process of filling a metal ball target matrix with a diameter of 2400 wavelengths.
Fig. 11 is a schematic diagram of statistics of the number of processes corresponding to the percentage of local geometric information in the process of filling a ship target matrix with a size of 6000 wavelengths.
Fig. 12 is a schematic diagram of VV polarization dual-station RCS for metal spheres of 2400 wavelengths in diameter compared to an analytical solution.
FIG. 13 shows a schematic diagram of VV and VH polarized dual-station RCS of a ship target at a frequency of 10 GHz.
FIG. 14 is a schematic flow chart of the method of the present invention.
Detailed Description
The invention is described in detail below by way of example with reference to the accompanying drawings.
The invention provides a multilayer rapid multi-pole parallel mesh fine-dissection method based on an auxiliary tree, which comprises the steps of firstly forming a coarse mesh through fine dissection for 2-3 times on the basis of an initial dissection mesh generated by professional software, and constructing the auxiliary tree by taking the center of a triangular unit of the coarse mesh as an unknown space position. And performing layered dispersion on the auxiliary tree by adopting a discrete mode and a process number which are the same as the structure of the multi-level subtree used for calculation, and traversing to the finest layer according to the discrete mode of the parallel first layer of the box to establish distribution mapping between the triangular unit and the process used for calculation. On the basis, the numbers of the triangle units, the edges and the vertexes are rearranged to form a rough mesh file with continuous partitions. Secondly, reading the coarse mesh file in parallel, performing uniform and consistent fine dissection on the coarse mesh in each process, and numbering newly generated edges, points and triangles according to rules to form complete fine mesh information. And finally, completing the geometric information required by filling the superfine layer far interaction aggregation/divergence matrix and the near interaction matrix of each process after the multi-pole subtree structure is dispersed through network communication among MPI processes. Numerical calculation shows that the auxiliary tree-based multi-layer fast multi-pole sub-grid parallel fine-dissection method can keep the locality of data to the maximum extent, reduce the communication data volume and has high parallel efficiency.
The method comprises the following specific steps:
a multilayer fast multipole parallel mesh fine-cutting method based on auxiliary trees, as shown in fig. 14, includes the following steps:
step one, dividing a complex structure target into triangular meshes, calculating a triangular center coordinate according to vertex numbers and vertex coordinates of the triangular meshes, and generating an auxiliary tree structure of the meshes according to a multi-layer fast multipole box dividing principle based on the triangular center;
step 1.1: and forming an initial mesh generation. And (3) dividing the complex structure target by using commercial CAD software such as CATIA (computer-aided three-dimensional interactive application) and the like to generate an initial grid, dividing the target into a plurality of surface elements, and acquiring the number and vertex position coordinates of each surface element.
Step 1.2: and finely cutting the initial grid to generate a coarse grid. The mesh generation of general commercial software on a common PC is difficult to reach tens of millions, and in order to enable an auxiliary tree to better approach a multi-pole sub-tree structure established by a final mesh after fine cutting, n is needed to pass1The (usually 2 or 3) fine sections generate coarse grids with larger grid quantity.
Step 1.3: reading the vertex number and the vertex coordinate of the coarse mesh triangle unit, and calculating the center coordinate of the triangle, wherein the calculation formula of the center coordinate of the triangle is as follows:
r=(r1+r2+r3)/3.0
and based on the triangle central point, generating an auxiliary tree structure of the coarse grid according to the multi-layer rapid multipole box dividing thought. The division from top to bottom is used here, i.e. the smallest size box is constructed which surrounds the target, this being layer 0. And then, dividing the box into two parts in three spatial dimensions layer by layer until the size of the box at the bottommost layer is smaller than a given value. In actual calculations, the bottommost box size is typically set to 0.3 wavelength. This value may be scaled up, i.e. set to be at the time of the auxiliary tree construction
Figure BDA0001987207710000071
Wherein n is2Setting n as the total planned fine-dissection times for fine dissection from the coarse mesh to the final fine mesh, so as to have:
n=n1+n2
each box adopts a Morton code number which is interlaced in space, and the boxes of each layer are stored according to the Morton code sorting sequence. The number of the parent layer box corresponding to the layer of box can be obtained by the following calculation:
Mi-1=Mi>>3
and traversing from the bottom box to the upper layer by layer, determining the number of non-empty boxes of each layer of box, and further constructing a multi-layer fast multipole octree structure.
Secondly, carrying out load distribution on the grids according to a preset parallel scheme and the MPI process number, and determining triangular grid numbers belonging to each process;
as shown in fig. 1, load distribution is performed according to a preset parallel scheme and the number of MPI processes used for calculation, and the number L of parallel layer start layers of the auxiliary tree structure is determinedb. And then, recursively traversing from the layer to the finest layer, and determining the number sequence of the triangle units belonging to each process.
Thirdly, reordering the distributed triangular mesh numbers, vertex numbers and edge numbers, and outputting corresponding storage files;
outputting the renumbering of the geometric information to a file. And reordering the triangle numbers, the vertex numbers and the edge numbers output by the original mesh generation software. Specifically, the method comprises the following steps:
(1) unit number: each triangle unit can only be scattered on one process, so that the numbers of the discontinuous triangle units scattered on the process are compressed and rearranged into continuous numbers starting from 1 according to the original number size sequence, and then the continuous numbers are increased and arranged according to the process;
(2) numbering edges: each edge may be shared by two triangle cells, and the two cells may belong to different processes. Thus, the edges within each process can be divided into internal edges eIAnd the common edge e at the boundaryTwo types are provided. For the inner edge e of each processIThe edges are compressed and rearranged according to the original numbers and then are numbered according to the process increasing sequence, and finally all the public edges are compressed and rearranged and then are numbered, and the initial position of the number is behind the number of the edges in all the processes.
(3) Vertex number: the vertex numbering process is similar to the edge numbering process, and the vertex numbering in all processes is carried out again according to the sequence of the first vertex numbering and the second vertex numbering.
The above process is shown in fig. 2. In the drawings
Figure BDA0001987207710000081
Respectively representing the total number of internal edges, the total number of triangle units and the total number of internal vertexes on the i process,
Figure BDA0001987207710000082
and
Figure BDA0001987207710000083
representing the total number of common vertices and the total number of common edges, respectively. The size of the initial grid is usually small, so the above process can be performed as a pre-processing process, namely, a serial program. The final output file includes:
the target. xyz file records coordinate values corresponding to the reordered vertexes;
and (4) recording three vertex global numbers and three edge global numbers corresponding to each triangle unit in the target. The corresponding relationship between the triangle inner edge and the vertex number is shown in FIG. 3;
the method comprises the steps that a target shinfo file records public information, wherein the public information comprises local edges, points and triangle numbers in each process, and the process numbers of two processes to which the public edges belong are small in scale;
and step four, reading the storage file obtained in the step three in parallel, finely sectioning the triangular mesh for a preset number of times, and reordering newly generated edges, vertexes and triangular meshes to form complete fine mesh information.
Step 4.1: and reading the geometric files generated in the step five in parallel in different modes. Wherein the content of the first and second substances,
(1) target. shinfo file: reading by the 0 process, and broadcasting and sending to all the processes;
(2) icat file, each process independently reads the number information of the vertexes and three edges corresponding to the triangle units scattered to the process, and stores the number information to the Icat array;
(3) each process independently reads the information of the line corresponding to the internal vertex of the process, and the back 0 process reads the common vertex information and sends the common vertex information to all the processes to be stored as an xyz array.
The above-described file reading process is shown in fig. 4. As can be seen from the figure, for large size target.xyz and target.ipat files, each process is a monolithic piece of part local to the reading slave. The common boundary vertex part is read by the 0 process and still is a whole block of data, and the common boundary vertex is only distributed in a one-dimensional line, so that the increasing speed is far less than that of a two-dimensional plane, and the scale is almost negligible.
Step 4.2: triangle vertex numbering is localized. All vertex numbers (first three columns of the ipat array) of the triangle unit on the process are compressed in a quick ordering mode, wherein the internal vertex is in the front, the common vertex is in the back, and the compressed numbers start from 1 and are continuous. And extracting corresponding point coordinates from the common node coordinate array according to the corresponding relation between the compressed serial number and the original serial number, and integrating and storing the corresponding point coordinates and the internal vertex coordinates in the process.
Step 4.3: and performing fine dissection on the grid unit for a preset number of times. The subdivision scale m and the number of subdivision are determined as follows:
m≤m0×2n
where n is the total number of fine cuts, m0Is the average split side length that needs to be achieved finally, and is generally set to one tenth of a wavelength.
In order to conveniently process the public side information, a uniform and consistent fine subdivision with a triangle unit I divided into four is adopted. And each fine dissection needs to renumber the triangular units, the edges and the vertexes generated by the fine dissection according to different rules respectively, generate vertex coordinate information and store the vertex coordinate information for the next fine dissection. As shown in fig. 5. Specifically, the method comprises the following steps:
(1) vertex: intra-process local numbering. In the fine cutting process, new vertexes are generated on the middle points of the three sides of each original triangle. The numbering rule of the vertices is shown in fig. 5 (a). The original vertex number value is unchanged, and the newly generated vertexes are compressed according to the serial numbers of the subordinate edges and then have local sequences
Figure BDA0001987207710000101
Renumbering, the initial value is the number of top points before the fine dissection of the process
Figure BDA0001987207710000102
And adding 1. The calculation method of the new vertex coordinates after the fine dissection is shown in fig. 6. Firstly, the in-process local number values of three vertexes corresponding to the ith triangle are taken from the first three columns of the array iptat
Figure BDA0001987207710000103
And then, acquiring corresponding point coordinates from the xyz array according to the local number. And finally, calculating the edge center coordinates according to the point coordinates to obtain the coordinates corresponding to the newly generated vertex. The calculation formula of the edge midpoint coordinate is as follows:
r=(r1+r2)/2.0
(2) edge: global numbering is used as shown in fig. 5 (b). Setting the global serial numbers of three edges of the fine dissection unit as ei,1,ei,2,ei,3. Then the unit proceeds one at a timeAnd the four sides are uniformly and finely cut, so that three sides are generated in the unit, and the three sides of the original triangular unit are divided into two and then form six sides. And the numbers of the three edges in the unit are sequentially numbered according to the global numbering sequence of the unit. And two edges generated by the edge subdivision are sequentially numbered according to the global numbering sequence of the edges. It should be noted that, in order to ensure the consistency of numbering the same edge in two cells, a first one of two newly generated edges of the edge, which is close to the vertex with the smaller global number, is first numbered, and a second one of the two newly generated edges, which is close to the vertex with the larger global number, is defined. Because the edge is shared by two triangles, the global numbering mode can ensure the consistency of the numbering of the public edges on different processes.
(3) A unit: the global numbering of all processes is used. Let the global number of this fine-cut unit i be piThen, the newly generated correspondence relationship between the local numbers and the global numbers of the four units is as shown in fig. 5 (c).
Step 4.4: and after the fine dissection is finished, generating an edge array for storing final edge information by the ipat array. Each row has 4 elements, wherein the first two digits are vertices corresponding to the edge, and the last two digits are triangles corresponding to the edge, as shown in fig. 7. It is particularly noted that here the vertex numbers are local numbers on the process and the edge numbers are global numbers on all processes.
Step 4.5: and inter-process communication is performed, and the edge array is perfected. After the ninth step is completed, for the common edge on the interface, the two subsequent bits must have a certain value unfilled, and communication perfection through a corresponding process is required. And for all the common edges generated after the fine dissection, searching can be always carried out through the numbering rule of the edges in the step eight. And combining the process information corresponding to the initial common edge stored in the target. sinfo file, the two process information corresponding to the common edge can be conveniently and quickly generated after the fine dissection. In order to ensure the one-to-one correspondence relationship between the finely-cut edges and the process numbers and facilitate the determination of the information of the edge information receiving and sending processes during the subsequent matrix filling, the process with the larger process number in each public edge sends the information of the edge corresponding triangle to the process with the smaller process number for storage, and the corresponding information in the process is deleted. The specific process is shown in fig. 8.
Step 4.6: and (6) rearranging data. Because the vertexes, triangles and edges are stored in a slicing and continuous mode on each process, the mapping relation between the in-process local numbers of the points, the surfaces and the edges and the overall numbers according to the sequence of the process numbers can be established conveniently. Thereby laying a foundation for the subsequent receiving and transmitting process of elements of the vertexes, the edges and the faces through the global serial numbers.
Through the processes, the parallel grid fine-splitting process is completed, and complete fine-splitting grid information is generated.
And then, calculating according to the execution flow of the general parallel multi-layer fast multi-pole subprogram. When the processes of parallel multi-layer fast multipole near interaction matrix filling, finest layer aggregation and divergence matrix filling and the like which need to use geometric information are required, the geometric information which is not locally required can be obtained through network communication in a process determining mode and a local numbering mode. Because the auxiliary tree structure is used when the geometric information is scattered, most of the geometric information can be ensured to be in the process. Only a small part of information needs to be communicated, thereby ensuring the efficiency of the program.
Example (b):
in this embodiment, a metal ball with a diameter of 2400 wavelengths and a ship target model with a length of about 6000 wavelengths as shown in fig. 9 are used as targets, and 960 MPI processes are called to perform fine dissection and then to call a ternary parallel multi-layer fast multi-pole subroutine for calculation so as to test the correctness of the generated mesh by adopting the parallel mesh fine dissection method provided by the present invention. The computing platform is a 'meta' super computing platform of a Chinese academy of sciences network center, each node comprises 256G memory, 2 Intel-E5-2680V3 processors and 24CPU cores.
The mesh information generated for the two targets is shown in table 1. The initial grid is generated by CATIA subdivision, the coarse grid is generated by 3 times of fine subdivision of the initial grid used for constructing the auxiliary tree, and the final grid is generated by the grid subdivision meeting the scale required by calculation. It can be seen that the time required for parallel subdivision into billions of grids is only 10 seconds, which is essentially negligible compared to the overall computation time of hours.
Table 1 statistical table of parallel fine-section information of metal ball and ship target
Figure BDA0001987207710000121
And counting the two different targets, wherein the data volume of the local storage geometric information accounts for the percentage of the total required data volume in the process of filling the aggregation and divergence matrixes of the far-interaction finest-layer box. Taking the side information as an example, fig. 10 is a case where, when the metal sphere target is obtained, all 960 processes are counted and have different local data percentage process numbers. As can be seen from the figure, the local storage data ratio of the needed geometric information file calculated by most processes is over 95%, which shows that when the processes fill the aggregation divergence matrix, only 5% of data needs to be obtained through communication, and the local data is about 20 times that of the data needing to be sent through communication and is over one order of magnitude larger. Similarly, for the ship target, as shown in fig. 11, a similar conclusion can be obtained when all 960 processes are counted and have different local data percentage process numbers. Therefore, the construction of the auxiliary tree can well approximate a multipole octree structure, ensure good pre-allocation of discrete storage, and achieve the purposes of reducing extra communication and improving efficiency.
As shown in fig. 12, when the dual-station RCS result (PMLFMA) and the analytic solution (Mie) calculated and output by the multilayer fast multipole subprogram of the metal sphere target are compared, the incident angle of the radar incident wave is 0 °,
Figure BDA0001987207710000131
the observation plane is the xoy plane, where θ ═ 0 ° is the backscattering. Through statistics, the root mean square error (RMS) between the two is 0.7dB, which shows the correctness and the effectiveness of the proposed multilayer rapid multipole grid parallel fine-dissection method based on the auxiliary tree. The calculation result for the ship target is shown in fig. 13, where the incident angle θ is 70 °,
Figure BDA0001987207710000132
the observation angle theta is 70 degrees,
Figure BDA0001987207710000133
the parallel grid fine-cutting method is also effective to the complex target,has universality.
The ship models with 2400-wavelength metal balls and 6000-wavelength metal balls and with the diameters shown in the embodiment of the invention generate billions of grids needed by calculation through twice fine dissection, the calculation results are correct and effective, the practicability of the parallel method is proved, and the parallel fine dissection generation of large-scale grids can be realized.
In summary, the above description is only a preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (2)

1. A multilayer rapid multi-pole parallel grid fine-dissection method based on an auxiliary tree is characterized by comprising the following steps:
step one, dividing a complex structure target into triangular meshes, calculating a triangular center coordinate according to vertex numbers and vertex coordinates of the triangular meshes, and generating an auxiliary tree structure of the meshes according to a multi-layer fast multipole box dividing principle based on the triangular center;
secondly, carrying out load distribution on the grids according to a preset parallel scheme and the MPI process number, and determining triangular grid numbers belonging to each process;
thirdly, reordering the distributed triangular mesh numbers, vertex numbers and edge numbers, and outputting corresponding storage files;
reordering the triangle mesh numbers, the vertex numbers and the edge numbers specifically comprises:
triangle mesh numbering: firstly, compressing and rearranging the discontinuous triangle unit numbers scattered on the process into continuous numbers starting from 1 according to the original number size sequence, and then increasing the continuous numbers according to the process;
vertex number: firstly, numbering vertexes in all processes, and then, numbering the public vertexes again according to the sequence;
numbering edges: compressing and rearranging edges in the processes according to the original numbers, numbering the edges in the processes according to the process increasing sequence, then compressing and rearranging all public edges, and numbering the public edges, wherein the initial positions of the public edge numbers are behind the numbers of the edges in all the processes;
step four, reading the storage file obtained in the step three in parallel, finely sectioning the triangular mesh for a preset number of times, and reordering newly generated edges, vertexes and triangular meshes to form complete fine mesh information;
reordering the newly generated edges, vertexes and triangular meshes, specifically:
the triangle mesh number and the vertex number adopt the global numbers of all processes;
the original vertex number value of the vertex number is unchanged, and the newly generated vertex is re-numbered according to the local sequence after the compression of the subordinate edge number.
2. The method for multi-layer fast multi-pole parallel mesh fine dissection based on the auxiliary tree as claimed in claim 1, wherein in the fourth step, the subdivision scale m and the number of times of fine dissection are determined as follows:
m≤m0×2n
wherein n is a preset number of fine dissection times, and m0Is the average subdivision side length which needs to be finally achieved and is set to be one tenth of wavelength.
CN201910168674.5A 2019-03-06 2019-03-06 Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree Active CN109918782B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910168674.5A CN109918782B (en) 2019-03-06 2019-03-06 Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910168674.5A CN109918782B (en) 2019-03-06 2019-03-06 Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree

Publications (2)

Publication Number Publication Date
CN109918782A CN109918782A (en) 2019-06-21
CN109918782B true CN109918782B (en) 2020-10-27

Family

ID=66963631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910168674.5A Active CN109918782B (en) 2019-03-06 2019-03-06 Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree

Country Status (1)

Country Link
CN (1) CN109918782B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231844A (en) * 2020-10-30 2021-01-15 中国商用飞机有限责任公司北京民用飞机技术研究中心 Curved surface discrete method, device, equipment and storage medium of part model

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306396B (en) * 2011-09-15 2013-09-25 山东大学 Three-dimensional entity model surface finite element mesh automatic generation method
CN103268634B (en) * 2012-02-24 2016-08-24 苏州蓝海彤翔系统科技有限公司 A kind of out-of-core models fast parallel adaptive simplifying method based on Vertex Clustering
CN102799750B (en) * 2012-08-23 2015-01-28 南京邮电大学 Method for quickly generating common side and non-common sides of geometry surface triangle

Also Published As

Publication number Publication date
CN109918782A (en) 2019-06-21

Similar Documents

Publication Publication Date Title
JP7125512B2 (en) Object loading method and device, storage medium, electronic device, and computer program
Wagner et al. Efficient computation of persistent homology for cubical data
CN103995861B (en) A kind of distributed data device based on space correlation, method and system
EP2887262B1 (en) Point Cloud Simplification
WO2020206669A1 (en) Self-adaptive point cloud stripe division method
CN106934826B (en) Rock slope structure refined modeling and block identification method
CN113158288A (en) Information model geometric lightweight method based on component reuse and reassembly
US20190061269A1 (en) Fast, efficient direct slicing method for lattice structures
CN113137919B (en) Laser point cloud rasterization method
CN113724401A (en) Three-dimensional model cutting method and device, computer equipment and storage medium
Pan et al. Wide angular sweeping of dynamic electromagnetic responses from large targets by MPI parallel skeletonization
CN109918782B (en) Multilayer rapid multi-pole parallel grid fine-cutting method based on auxiliary tree
CN111767640B (en) Rapid simulation method for target near-field radar echo
CN116467540B (en) HBase-based massive space data rapid visualization method
Danovaro et al. Level-of-detail for data analysis and exploration: A historical overview and some new perspectives
CN116433821A (en) Three-dimensional model rendering method, medium and device for pre-generating view point index
Guérin et al. Efficient modeling of entangled details for natural scenes
EP3091512B1 (en) Point cloud simplification
CN109947563B (en) Parallel multilayer rapid multi-polar subtree structure composite storage method
Kim et al. Efficient encoding and decoding extended geocodes for massive point cloud data
Ravada et al. Query processing in 3d spatial databases: Experiences with oracle spatial 11g
Schön et al. Storage, manipulation, and visualization of LiDAR data
Camata et al. Parallel linear octree meshing with immersed surfaces
Siddeq et al. 3D point cloud data and triangle Face compression by a novel geometry minimization algorithm and comparison with other 3D formats
CN115661378B (en) Building model reconstruction method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant