A hierarchical contact search algorithm suitable for multi-resolution particle method
By dividing the computational domain of the multi-resolution particle method into high-precision and low-precision regions and employing a hierarchical contact search algorithm to locate particles, the problem of limited computational efficiency improvement in existing technologies is solved, achieving more efficient and accurate computational results.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- QILU UNIVERSITY OF TECHNOLOGY (SHANDONG ACADEMY OF SCIENCES)
- Filing Date
- 2026-03-23
- Publication Date
- 2026-06-09
AI Technical Summary
Because multi-resolution particle methods use particles of different sizes, existing single-contact search algorithms cannot effectively improve computational efficiency and may even reduce it.
The computational region is divided into high-precision and low-precision regions, different particle sizes are used, and a hierarchical contact search algorithm is used to locate large particles to large grid regions and small particles to small grid regions to determine contact pairs for calculation.
It improves the computational efficiency and accuracy of the multi-resolution particle method, simplifies the calculation process, and enhances overall computational performance.
Smart Images

Figure CN122174590A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a hierarchical contact search algorithm applicable to multi-resolution particle methods, and to fast search and calculation of multi-resolution particle numerical models. Background Technology
[0002] Meshless particle method has attracted widespread attention because it can naturally handle large displacement problems and complex boundary condition problems. In fluid flow simulation, meshless particle method discretizes the fluid domain into a series of particles, each carrying corresponding dynamic information, and the motion of the particles can be calculated from the neighboring particles covered by the kernel function.
[0003] Smoothed particle method and moving particle method are the two most commonly used meshless particle methods in fluid flow simulation. Although meshless particle method can be well applied in fluid flow simulation, the large overall computational cost is also a key drawback. To address this issue, multi-CPU device computing combined with multi-resolution particle method can be used to improve overall computational efficiency.
[0004] Multi-resolution particle method divides the computational region into particles of different sizes, using high-precision small particles in critical regions and low-precision large particles in other regions, which can ensure computational accuracy and improve computational efficiency. However, because multi-resolution particle method uses particles of different sizes, if the previous single contact search algorithm is still used, the improvement in computational efficiency will be limited, or even reduced, and it cannot be adapted to multi-resolution particle method. Summary of the Invention
[0005] This invention provides a hierarchical contact search algorithm applicable to multi-resolution particle methods. The method is rationally designed and addresses the shortcomings of contact search for neighboring particles in multi-resolution particle methods by finely dividing the overall computational region into two categories of grids. Large particles and small particles are searched separately. Contact pairs are determined based on the physical information of the particles and the geometric information of the computational region for location calculation, thereby accurately improving the overall computational efficiency and accuracy and solving the problems existing in the prior art.
[0006] The technical solution adopted by the present invention to solve the above-mentioned technical problems is as follows:
[0007] A hierarchical contact search algorithm suitable for multi-resolution particle methods, the hierarchical contact search algorithm comprising the following steps:
[0008] S1 reads the large and small particle physics signals in the fluid model and reads the geometric information of the high-precision and low-precision regions.
[0009] S2, combining the overall geometric information of the fluid model and the size of large particles, the entire computational region is divided into multiple large grids; combining the geometric information of the high-precision region and the size of small particles, the high-precision region is divided into multiple small grids; the large grid regions and small grid regions can be set to overlap;
[0010] S3 positions large particles belonging to the low-precision area to the large grid area, and small particles belonging to the high-precision area to the small grid area.
[0011] S4 determines the cell to which the computational particle belongs and all neighboring particles within the influence radius of adjacent cells, forming contact pairs with the computational particle to calculate the interaction forces, thereby improving the computational efficiency of the entire computational region.
[0012] The multi-resolution particle method divides the computational region into a high-precision region and a low-precision region. High-precision small particles are used in the high-precision region, while low-precision large particles are used in the low-precision region.
[0013] Reading large and small particle physics signals from a fluid model, and reading geometric information from high-precision and low-precision regions, includes the following steps:
[0014] S1.1, the geometric information of the high-precision region is defined as: (Fine_X) min Fine_X max (Fine_Y) min Fine_Y max ) and (Fine_Z min Fine_Z max )
[0015] S1.2, define the geometric information of the low-precision region as: (Coarse_X) 1min Coarse_X 1max (Coarse_Y) 1min Coarse_Y 1max ) and (Coarse_Z 1min Coarse_Z 1max (Coarse_X) 2min Coarse_X 2max (Coarse_Y) 2min Coarse_Y 2max ) and (Coarse_Z 2min Coarse_Z 2max );
[0016] S1.3 expands the influence radius of the low-precision region and uses boundary instructions to define the geometric boundary of the low-precision region in combination with the geometric information of the low-precision region, so as to accurately find the interacting large and small particles;
[0017] The geometric boundary of the low-precision region is:
[0018] boundary % Coarse_X 1min = Coarse_X 1min -r e
[0019] boundary % Coarse_X 1max = Coarse_X 1max +r e
[0020] boundary % Coarse_Y 1min = Coarse_Y 1min -r e
[0021] boundary % Coarse_Y 1max = Coarse_Y 1max +r e
[0022] boundary % Coarse_Z 1min = Coarse_Z 1min -r e
[0023] boundary % Coarse_Z 1max = Coarse_Z 1max +r e
[0024] boundary % Coarse_X 2min = Coarse_X 2min -r e
[0025] boundary % Coarse_X 2max = Coarse_X 2max +r e
[0026] boundary % Coarse_Y 2min = Coarse_Y 2min -r e
[0027] boundary % Coarse_Y 2max = Coarse_Y 2max +r e
[0028] boundary % Coarse_Z 2min = Coarse_Z 2min -r e
[0029] boundary % Coarse_Z 2max = Coarse_Z 2max +r e
[0030] Where, r e =3.1*l0_coarse is the influence radius of the large particle, and l0_coarse is the particle gap between the large particles.
[0031] The computational domain is divided into multiple large grids by combining the overall geometric information of the fluid model and the size of large particles; the high-precision region is divided into multiple small grids by combining the geometric information of the high-precision region and the size of small particles, including the following steps:
[0032] S2.1, calculate the number of large grid cells in the X, Y, and Z directions as follows:
[0033] coarse_nx=int((boundary % Coarse_X 2max -boundary % Coarse_X 1min ) / r a )+1
[0034] coarse_ny=int((boundary % Coarse_Y 2max -boundary % Coarse_Y 1min ) / r a )+1
[0035] coarse_nz=int((boundary % Coarse_Z 2max -boundary % Coarse_Z 1min ) / r a )+1
[0036] Where, r a For the size of the large grid;
[0037] S2, calculate the number of small squares in the X, Y, and Z directions:
[0038] fine_nx=int((Fine_X max -Fine_X min) / r b )+1
[0039] fine_ny = int((Fine_Y) max -Fine_Y min ) / r b )+1
[0040] fine_nz=int((Fine_Z max -Fine_Z min ) / r b )+1
[0041] Where, r b r is the size of the small grid. b =3.1*l0_fine, where l0_fine is the interparticle gap of the small particles.
[0042] Positioning large particles belonging to low-precision areas to large grid areas and small particles belonging to high-precision areas to small grid areas includes the following steps:
[0043] S3.1, define the geometric region corresponding to the ct-th large cell as:
[0044] x ctmin = boundary%Coarse_X 1min +(i x -1)(boundary% Coarse_X 2max - boundary %Coarse_X 1min ) / Coarse_nx
[0045] x ctmax =boundary % Coarse_X 1min +(i x (boundary% Coarse_X) 2max - boundary %Coarse_X 1min ) / coarse_nx
[0046] y ctmin =boundary%Coarse_Y 1min + (i y -1)(boundary % Coarse_Y 2max - boundary %Coarse_Y 1min ) / Coarse_ny
[0047] y ctmax = boundary % Coarse_Y 1min + (i Y (boundary% Coarse_Y) 2max - boundary %coarse_Y 1min ) / Coarse_ny
[0048] z ctmin =boundary%Coarse_Z 1min + (i z -1)(boundary % Coarse_Z 2max - boundary %Coarse_Z 1min ) / Coarse_nz
[0049] z ctmax = boundary % Coarse_Z 1min + (i z (boundary % Coarse_Z) 2max - boundary% Coarse_Z 1min ) / Coarse_nz
[0050] Among them, i x i y and i z Represent the i-th position in the X, Y, and Z directions, respectively. x i y and i z A large grid;
[0051] S3.2, define the geometric region corresponding to the ft-th small cell as:
[0052] x ftmin = boundary % fine_x min + (i x1 -1)(boundary % fine_x max - boundary %fine_x min ) / fine_nx
[0053] x ftmax = boundary % fine_x min + (i x1 (boundary % fine_x) max - boundary %fine_xmin ) / fine_nx
[0054] y ftmin = boundary %fine_y min + (i y1 -1)(boundary % fine_y max - boundary %fine_y min ) / fine_ny
[0055] y ftmax = boundary % fine_y min + (i y1 (boundary % fine_y) max - boundary %fine_y min ) / fine_ny
[0056] z ftmin = boundary % fine_z min + (i z1 -1)(boundary % fine_z max - boundary %fine_z min ) / fine_nz
[0057] z ftmax = boundary % fine_z min + (i z1 (boundary % fine_z) max - boundary %fine_z min ) / fine_nz
[0058] Among them, i x1 i y1 and i z1 Represent the i-th position in the X, Y, and Z directions, respectively. x1 i y1 and i z1 A small square;
[0059] S3.3, when the coordinates of particle i (x i y i , z i ) satisfies x ftmin ≤x i ≤x ftmax y ftmin ≤y i ≤y ftmax and z ftmin≤z i ≤z ftmax At that time, particle i is positioned in the small grid;
[0060] When the coordinates of particle j (x j y j z j ) satisfies x ctmin ≤x j ≤x ctmax y ctmin ≤y j ≤y ctmax and z ctmin ≤z j ≤z ctmax At that time, particle j is positioned in the large grid.
[0061] This invention employs the aforementioned structure and method. By reading the physical signals of large and small particles in the fluid model, and the geometric information of high-precision and low-precision regions, the corresponding overall computational region is determined. The entire computational region is divided into multiple large grids by combining the overall geometric information of the fluid model and the size of the large particles. Similarly, the high-precision region is divided into multiple small grids by combining the geometric information of the high-precision region and the size of the small particles, thus forming two types of grids. Particle-grid positioning is achieved by locating large particles belonging to the low-precision region to the large grid regions and small particles belonging to the high-precision region to the small grid regions. By determining the grid to which the computational particle belongs and all neighboring particles within the influence radius of adjacent grids, contact pairs are formed with the computational particle to perform force calculations, thereby improving the computational efficiency of the entire computational region. This invention offers the advantages of simplicity, efficiency, accuracy, and practicality. Attached Figure Description
[0062] Figure 1 This is a schematic diagram of the process of the present invention.
[0063] Figure 2 This is a schematic diagram illustrating the operation of the present invention. Detailed Implementation
[0064] To clearly illustrate the technical features of this solution, the invention will be described in detail below through specific implementation methods and in conjunction with the accompanying drawings.
[0065] like Figure 1-2 As shown, a hierarchical contact search algorithm suitable for multi-resolution particle methods includes the following steps:
[0066] S1 reads the large and small particle physics signals in the fluid model and reads the geometric information of the high-precision and low-precision regions.
[0067] S2, combining the overall geometric information of the fluid model and the size of large particles, the entire computational region is divided into multiple large grids; combining the geometric information of the high-precision region and the size of small particles, the high-precision region is divided into multiple small grids; the large grid regions and small grid regions can be set to overlap;
[0068] S3 positions large particles belonging to the low-precision area to the large grid area, and small particles belonging to the high-precision area to the small grid area.
[0069] S4 determines the cell to which the computational particle belongs and all neighboring particles within the influence radius of adjacent cells, forming contact pairs with the computational particle to calculate the interaction forces, thereby improving the computational efficiency of the entire computational region.
[0070] The multi-resolution particle method divides the computational region into a high-precision region and a low-precision region. High-precision small particles are used in the high-precision region, while low-precision large particles are used in the low-precision region.
[0071] Reading large and small particle physics signals from a fluid model, and reading geometric information from high-precision and low-precision regions, includes the following steps:
[0072] S1.1, the geometric information of the high-precision region is defined as: (Fine_X) min Fine_X max (Fine_Y) min Fine_Y max ) and (Fine_Z min Fine_Z max )
[0073] S1.2, define the geometric information of the low-precision region as: (Coarse_X) 1min Coarse_X 1max (Coarse_Y) 1min Coarse_Y 1max ) and (Coarse_Z 1min Coarse_Z 1max (Coarse_X) 2min Coarse_X 2max (Coarse_Y) 2min Coarse_Y 2max ) and (Coarse_Z 2min Coarse_Z 2max );
[0074] S1.3 expands the influence radius of the low-precision region and uses boundary instructions to define the geometric boundary of the low-precision region in combination with the geometric information of the low-precision region, so as to accurately find the interacting large and small particles;
[0075] The geometric boundary of the low-precision region is:
[0076] boundary % Coarse_X 1min = Coarse_X 1min -r e
[0077] boundary % Coarse_X 1max = Coarse_X 1max +r e
[0078] boundary % Coarse_Y 1min = Coarse_Y 1min -r e
[0079] boundary % Coarse_Y 1max = Coarse_Y 1max +r e
[0080] boundary % Coarse_Z 1min = Coarse_Z 1min -r e
[0081] boundary % Coarse_Z 1max = Coarse_Z 1max +r e
[0082] boundary % Coarse_X 2min = Coarse_X 2min -r e
[0083] boundary % Coarse_X 2max = Coarse_X 2max +r e
[0084] boundary % Coarse_Y 2min = Coarse_Y 2min -r e
[0085] boundary % Coarse_Y 2max = Coarse_Y 2max +r e
[0086] boundary % Coarse_Z 2min = Coarse_Z 2min -r e
[0087] boundary % Coarse_Z 2max = Coarse_Z 2max +r e
[0088] Where, r e =3.1*l0_coarse is the influence radius of the large particle, and l0_coarse is the particle gap between the large particles.
[0089] The computational domain is divided into multiple large grids by combining the overall geometric information of the fluid model and the size of large particles; the high-precision region is divided into multiple small grids by combining the geometric information of the high-precision region and the size of small particles, including the following steps:
[0090] S2.1, calculate the number of large grid cells in the X, Y, and Z directions as follows:
[0091] coarse_nx=int((boundary % Coarse_X 2max -boundary % Coarse_X 1min ) / r a )+1
[0092] coarse_ny=int((boundary % Coarse_Y 2max -boundary % Coarse_Y 1min ) / r a )+1
[0093] coarse_nz=int((boundary % Coarse_Z 2max -boundary % Coarse_Z 1min ) / r a )+1
[0094] Where, r a For the size of the large grid;
[0095] S2, calculate the number of small squares in the X, Y, and Z directions:
[0096] fine_nx=int((Fine_X max -Fine_X min) / r b )+1
[0097] fine_ny = int((Fine_Y) max -Fine_Y min ) / r b )+1
[0098] fine_nz=int((Fine_Z max -Fine_Z min ) / r b )+1
[0099] Where, r b r is the size of the small grid. b =3.1*l0_fine, where l0_fine is the interparticle gap of the small particles.
[0100] Positioning large particles belonging to low-precision areas to large grid areas and small particles belonging to high-precision areas to small grid areas includes the following steps:
[0101] S3.1, define the geometric region corresponding to the ct-th large cell as:
[0102] x ctmin = boundary%Coarse_X 1min +(i x -1)(boundary% Coarse_X 2max - boundary %Coarse_X 1min ) / Coarse_nx
[0103] x ctmax =boundary % Coarse_X 1min +(i x (boundary% Coarse_X) 2max - boundary %Coarse_X 1min ) / coarse_nx
[0104] y ctmin =boundary%Coarse_Y 1min + (i y -1)(boundary % Coarse_Y 2max - boundary %Coarse_Y 1min ) / Coarse_ny
[0105] y ctmax = boundary % Coarse_Y 1min + (i Y (boundary% Coarse_Y) 2max - boundary %coarse_Y 1min ) / Coarse_ny
[0106] z ctmin =boundary%Coarse_Z 1min + (i z -1)(boundary % Coarse_Z 2max - boundary %Coarse_Z 1min ) / Coarse_nz
[0107] z ctmax = boundary % Coarse_Z 1min + (i z (boundary % Coarse_Z) 2max - boundary% Coarse_Z 1min ) / Coarse_nz
[0108] Among them, i x i y and i z Represent the i-th position in the X, Y, and Z directions, respectively. x i y and i z A large grid;
[0109] S3.2, define the geometric region corresponding to the ft-th small cell as:
[0110] x ftmin = boundary % fine_x min + (i x1 -1)(boundary % fine_x max - boundary %fine_x min ) / fine_nx
[0111] x ftmax = boundary % fine_x min + (i x1 (boundary % fine_x) max - boundary %fine_xmin ) / fine_nx
[0112] y ftmin = boundary %fine_y min + (i y1 -1)(boundary % fine_y max - boundary %fine_y min ) / fine_ny
[0113] y ftmax = boundary % fine_y min + (i y1 (boundary % fine_y) max - boundary %fine_y min ) / fine_ny
[0114] z ftmin = boundary % fine_z min + (i z1 -1)(boundary % fine_z max - boundary %fine_z min ) / fine_nz
[0115] z ftmax = boundary % fine_z min + (i z1 (boundary % fine_z) max - boundary %fine_z min ) / fine_nz
[0116] Among them, i x1 i y1 and i z1 Represent the i-th position in the X, Y, and Z directions, respectively. x1 i y1 and i z1 A small square;
[0117] S3.3, when the coordinates of particle i (x i y i , z i ) satisfies x ftmin ≤x i ≤x ftmax y ftmin ≤y i ≤y ftmax and z ftmin≤z i ≤z ftmax At that time, particle i is positioned in the small grid;
[0118] When the coordinates of particle j (x j y j z j ) satisfies x ctmin ≤x j ≤x ctmax y ctmin ≤y j ≤y ctmax and z ctmin ≤z j ≤z ctmax At that time, particle j is positioned in the large grid.
[0119] The working principle of a hierarchical contact search algorithm applicable to multi-resolution particle method in this embodiment of the invention is as follows: In view of the defect of contact search of neighboring particles in multi-resolution particle method, the overall calculation area is finely divided into two types of grids, and the large particles and small particles are located and searched respectively. Contact pairs are determined according to the physical information of the particles and the geometric information of the calculation area to perform location calculation, so as to accurately improve the overall calculation efficiency and calculation accuracy.
[0120] With the development of computer technology, parallel computing has become an effective way to improve computing efficiency. By using multiple CPUs or GPUs, computing tasks are distributed to multiple threads for simultaneous computation, which greatly improves computing efficiency. However, parallel computing requires a high level of computer knowledge from the staff and also has high requirements for the data dependence of the algorithm itself.
[0121] For multi-resolution particle methods, since particles of different sizes are used, the established single contact search algorithm cannot be applied to this complex application mode. Therefore, this application proposes a hierarchical contact search algorithm suitable for multi-resolution particle methods, which can solve the problems existing in this technical field.
[0122] In the overall scheme, the hierarchical contact search algorithm includes the following steps: reading the physical signals of large and small particles in the fluid model, and reading the geometric information of high-precision and low-precision regions; dividing the entire computational region into multiple large grids by combining the overall geometric information of the fluid model and the size of large particles; dividing the high-precision region into multiple small grids by combining the geometric information of the high-precision region and the size of small particles; the large grid regions and small grid regions can overlap; positioning large particles belonging to the low-precision region to the large grid region, and positioning small particles belonging to the high-precision region to the small grid region; determining the grid to which the computational particle belongs and all neighboring particles within the influence radius in adjacent grids, forming contact pairs with the computational particle, performing force calculations, and improving the computational efficiency of the entire computational region.
[0123] Generally, the multi-resolution particle method can divide the computational domain into high-precision and low-precision regions, and use high-precision small particles in the high-precision region and low-precision large particles in the low-precision region.
[0124] Furthermore, reading the large and small particle physical signals from the fluid model, and reading the geometric information of the high-precision and low-precision regions, includes the following steps:
[0125] The geometric information of the high-precision region is defined as: (Fine_X) min Fine_X max (Fine_Y) min Fine_Y max ) and (Fine_Z min Fine_Z max )
[0126] The geometric information of the low-precision region is defined as: (Coarse_X) 1min Coarse_X 1max (Coarse_Y) 1min Coarse_Y 1max ) and (Coarse_Z 1min Coarse_Z 1max (Coarse_X) 2min Coarse_X 2max (Coarse_Y) 2min Coarse_Y 2max ) and (Coarse_Z 2min Coarse_Z 2max );
[0127] Expand the influence radius of the low-precision region, and combine the geometric information of the low-precision region to define the geometric boundary of the low-precision region using boundary instructions, so as to accurately find the interacting large and small particles;
[0128] The geometric boundary of the low-precision region is:
[0129] boundary % Coarse_X 1min = Coarse_X 1min -r e
[0130] boundary % Coarse_X 1max = Coarse_X 1max +r e
[0131] boundary % Coarse_Y 1min = Coarse_Y 1min -r e
[0132] boundary % Coarse_Y 1max = Coarse_Y 1max +r e
[0133] boundary % Coarse_Z 1min = Coarse_Z 1min -r e
[0134] boundary % Coarse_Z 1max = Coarse_Z 1max +r e
[0135] boundary % Coarse_X 2min = Coarse_X 2min -r e
[0136] boundary % Coarse_X 2max = Coarse_X 2max +r e
[0137] boundary % Coarse_Y 2min = Coarse_Y 2min -r e
[0138] boundary % Coarse_Y 2max = Coarse_Y 2max +r e
[0139] boundary % Coarse_Z 2min = Coarse_Z 2min -r e
[0140] boundary % Coarse_Z 2max = Coarse_Z 2max +r e
[0141] Where, r e =3.1*l0_coarse is the influence radius of the large particle, and l0_coarse is the particle gap between the large particles.
[0142] By fusing the influence radius of large particles and the interparticle gaps between large particles, the geometric boundary of the low-precision region is obtained, providing the basic conditions for subsequent processing operations.
[0143] Preferably, the entire computational domain is divided into multiple large grids by combining the overall geometric information of the fluid model and the size of large particles; the high-precision region is divided into multiple small grids by combining the geometric information of the high-precision region and the size of small particles, including the following steps:
[0144] The number of large grid cells in the X, Y, and Z directions is calculated as follows:
[0145] coarse_nx=int((boundary % Coarse_X 2max -boundary % Coarse_X 1min ) / r a )+1
[0146] coarse_ny=int((boundary % Coarse_Y 2max -boundary % Coarse_Y 1min ) / r a )+1
[0147] coarse_nz=int((boundary % Coarse_Z 2max -boundary % Coarse_Z 1min ) / r a )+1
[0148] Where, r a For the size of the large grid;
[0149] The number of small squares in the X, Y, and Z directions is calculated as follows:
[0150] fine_nx=int((Fine_X max -Fine_X min) / r b )+1
[0151] fine_ny = int((Fine_Y) max -Fine_Y min ) / r b )+1
[0152] fine_nz=int((Fine_Z max -Fine_Z min ) / r b )+1
[0153] Where, r b r is the size of the small grid. b =3.1*l0_fine, where l0_fine is the interparticle gap of the small particles.
[0154] Preferably, positioning large particles belonging to low-precision areas to large grid areas and small particles belonging to high-precision areas to small grid areas includes the following steps:
[0155] Let the geometric region corresponding to the ct-th large cell be:
[0156] x ctmin = boundary%Coarse_X 1min +(i x -1)(boundary% Coarse_X 2max - boundary %Coarse_X 1min ) / Coarse_nx
[0157] x ctmax =boundary % Coarse_X 1min +(i x (boundary% Coarse_X) 2max - boundary %Coarse_X 1min ) / coarse_nx
[0158] y ctmin =boundary%Coarse_Y 1min + (i y -1)(boundary % Coarse_Y2max - boundary %Coarse_Y 1min ) / Coarse_ny
[0159] y ctmax = boundary % Coarse_Y 1min + (i Y (boundary% Coarse_Y) 2max - boundary %coarse_Y 1min ) / Coarse_ny
[0160] z ctmin =boundary%Coarse_Z 1min + (i z -1)(boundary % Coarse_Z 2max - boundary %Coarse_Z 1min ) / Coarse_nz
[0161] z ctmax = boundary % Coarse_Z 1min + (i z (boundary % Coarse_Z) 2max - boundary% Coarse_Z 1min ) / Coarse_nz
[0162] Among them, i x i y and i z Represent the i-th position in the X, Y, and Z directions, respectively. x i y and i z A large grid;
[0163] Let the geometric region corresponding to the ft-th small cell be:
[0164] x ftmin = boundary % fine_x min + (i x1 -1)(boundary % fine_x max - boundary %fine_x min ) / fine_nx
[0165] x ftmax = boundary % fine_x min + (i x1(boundary % fine_x) max - boundary %fine_x min ) / fine_nx
[0166] y ftmin = boundary %fine_y min + (i y1 -1)(boundary % fine_y max - boundary %fine_y min ) / fine_ny
[0167] y ftmax = boundary % fine_y min + (i y1 (boundary % fine_y) max - boundary %fine_y min ) / fine_ny
[0168] z ftmin = boundary % fine_z min + (i z1 -1)(boundary % fine_z max - boundary %fine_z min ) / fine_nz
[0169] z ftmax = boundary % fine_z min + (i z1 (boundary % fine_z) max - boundary %fine_z min ) / fine_nz
[0170] Among them, i x1 i y1 and i z1 Represent the i-th position in the X, Y, and Z directions, respectively. x1 i y1 and i z1 A small square;
[0171] When the coordinates of particle i (x i y i , z i ) satisfies x ftmin ≤x i ≤x ftmax y ftmin≤y i ≤y ftmax and z ftmin ≤z i ≤z ftmax At that time, particle i is positioned in the small grid;
[0172] When the coordinates of particle j (x j y j z j ) satisfies x ctmin ≤x j ≤x ctmax y ctmin ≤y j ≤y ctmax and z ctmin ≤z j ≤z ctmax At that time, particle j is positioned in the large grid.
[0173] In this application, the relative difference of coordinates is used for specific positioning. Through the above calculation and judgment, large particles belonging to the low-precision area are positioned to large grids, and small particles belonging to the high-precision area are positioned to small grids, thus achieving precise positioning.
[0174] It should be noted that when calculating contact pairs, the exact distance between the particle and its neighboring particles is used for accurate determination. Once the requirements are met, the calculation of the interaction forces between the particles continues.
[0175] In summary, the hierarchical contact search algorithm applicable to multi-resolution particle methods in this embodiment of the invention finely divides the overall computational region into two categories of grids based on the change in accuracy, and performs location searches for large particles and small particles respectively. It determines contact pairs based on the physical information of the particles and the geometric information of the computational region to perform location calculations, thereby accurately improving the overall computational efficiency and accuracy.
[0176] The above specific embodiments should not be construed as limiting the scope of protection of the present invention. For those skilled in the art, any alternative improvements or modifications made to the embodiments of the present invention shall fall within the scope of protection of the present invention.
[0177] Any aspects of this invention not described in detail are well-known to those skilled in the art.
Claims
1. A hierarchical contact search algorithm suitable for multi-resolution particle methods, characterized in that, The hierarchical contact search algorithm includes the following steps: S1 reads the large and small particle physics signals in the fluid model and reads the geometric information of the high-precision and low-precision regions. S2, combining the overall geometric information of the fluid model and the size of large particles, the entire computational region is divided into multiple large grids; combining the geometric information of the high-precision region and the size of small particles, the high-precision region is divided into multiple small grids; the large grid regions and small grid regions can be set to overlap; S3 positions large particles belonging to the low-precision area to the large grid area, and small particles belonging to the high-precision area to the small grid area. S4 determines the cell to which the computational particle belongs and all neighboring particles within the influence radius of adjacent cells, forming contact pairs with the computational particle to calculate the interaction forces, thereby improving the computational efficiency of the entire computational region.
2. The hierarchical contact search algorithm applicable to multi-resolution particle methods according to claim 1, characterized in that: The multi-resolution particle method divides the computational region into a high-precision region and a low-precision region. High-precision small particles are used in the high-precision region, while low-precision large particles are used in the low-precision region.
3. The hierarchical contact search algorithm applicable to multi-resolution particle methods according to claim 2, characterized in that, Reading large and small particle physics signals from a fluid model, and reading geometric information from high-precision and low-precision regions, includes the following steps: S1.1, the geometric information of the high-precision region is defined as: (Fine_X) min Fine_X max (Fine_Y) min Fine_Y max ) and (Fine_Z min Fine_Z max ) S1.2, define the geometric information of the low-precision region as: (Coarse_X) 1min Coarse_X 1max (Coarse_Y) 1min Coarse_Y 1max ) and (Coarse_Z 1min Coarse_Z 1max (Coarse_X) 2min Coarse_X 2max (Coarse_Y) 2min Coarse_Y 2max ) and (Coarse_Z 2min Coarse_Z 2max ); S1.3 expands the influence radius of the low-precision region and uses boundary instructions to define the geometric boundary of the low-precision region in combination with the geometric information of the low-precision region, so as to accurately find the interacting large and small particles; The geometric boundary of the low-precision region is: boundary % Coarse_X 1min = Coarse_X 1min -r e boundary % Coarse_X 1max = Coarse_X 1max +r e boundary % Coarse_Y 1min = Coarse_Y 1min -r e boundary % Coarse_Y 1max = Coarse_Y 1max +r e boundary % Coarse_Z 1min = Coarse_Z 1min -r e boundary % Coarse_Z 1max = Coarse_Z 1max +r e boundary % Coarse_X 2min = Coarse_X 2min -r e boundary % Coarse_X 2max = Coarse_X 2max +r e boundary % Coarse_Y 2min = Coarse_Y 2min -r e boundary % Coarse_Y 2max = Coarse_Y 2max +r e boundary % Coarse_Z 2min = Coarse_Z 2min -r e boundary % Coarse_Z 2max = Coarse_Z 2max +r e Where, r e =3.1*l0_coarse is the influence radius of the large particle, and l0_coarse is the particle gap between the large particles.
4. The hierarchical contact search algorithm applicable to multi-resolution particle methods according to claim 1, characterized in that, The computational domain is divided into multiple large grids by combining the overall geometric information of the fluid model and the size of large particles; the high-precision region is divided into multiple small grids by combining the geometric information of the high-precision region and the size of small particles, including the following steps: S2.1, calculate the number of large grid cells in the X, Y, and Z directions as follows: coarse_nx=int((boundary % Coarse_X 2max -boundary % Coarse_X 1min ) / r a )+1 coarse_ny=int((boundary % Coarse_Y 2max -boundary % Coarse_Y 1min ) / r a )+1 coarse_nz=int((boundary % Coarse_Z 2max -boundary % Coarse_Z 1min ) / r a )+1 Where, r a For the size of the large grid; S2, calculate the number of small squares in the X, Y, and Z directions: fine_nx=int((Fine_X max -Fine_X min) / r b )+1 fine_n=int((Fine_Y max -Fine_Y min ) / r b )+1 fine_nz=int((Fine_Z max -Fine_Z min ) / r b )+1 Where, r b r is the size of the small grid. b =3.1*l0_fine, where l0_fine is the interparticle gap of the small particles.
5. The hierarchical contact search algorithm applicable to multi-resolution particle methods according to claim 1, characterized in that, Positioning large particles belonging to low-precision areas to large grid areas and small particles belonging to high-precision areas to small grid areas includes the following steps: S3.1, define the geometric region corresponding to the ct-th large cell as: x ctmin = boundary%Coarse_X 1min +(i x -1)(boundary% Coarse_X 2max - boundary %Coarse_X 1min ) / Coarse_nx x ctmax =boundary % Coarse_X 1min +(i x )(boundary% Coarse_X 2max - boundary %Coarse_X 1min ) / coarse_nx and ctmin =boundary%Coarse_Y 1min + (i y -1)(boundary % Coarse_Y 2max - boundary %Coarse_Y 1min ) / Coarse_ny and ctmax = boundary % Coarse_Y 1min + (i Y )(boundary% Coarse_Y 2max - boundary %coarse_Y 1min ) / Coarse_ny z ctmin =boundary%Coarse_Z 1min + (i z -1)(boundary % Coarse_Z 2max - boundary %Coarse_Z 1min ) / Coarse_nz z ctmax = boundary % Coarse_Z 1min + (i z )(boundary % Coarse_Z 2max - boundary %Coarse_Z 1min ) / Coarse_nz Among them, i x i y and i z Represent the i-th position in the X, Y, and Z directions, respectively. x i y and i z A large grid; S3.2, define the geometric region corresponding to the ft-th small cell as: x ftmin = boundary % fine_x min + (i x1 -1)(boundary % fine_x max - boundary % fine_x min ) / fine_nx x ftmax = boundary % fine_x min + (i x1 )(boundary % fine_x max - boundary % fine_x min ) / fine_nx y ftmin = boundary %fine_y min + (i y1 -1)(boundary % fine_y max - boundary % fine_y min ) / fine_ny y ftmax = boundary % fine_y min + (i y1 )(boundary % fine_y max - boundary % fine_y min ) / fine_ny z ftmin = boundary % fine_z min + (i z1 -1)(boundary % fine_z max - boundary % fine_z min ) / fine_nz z ftmax = boundary % fine_z min + (i z1 )(boundary % fine_z max - boundary % fine_z min ) / fine_nz Among them, i x1 i y1 and i z1 Represent the i-th position in the X, Y, and Z directions, respectively. x1 i y1 and i z1 A small square; S3.3, when the coordinates of particle i (x i y i , z i ) satisfies x ftmin ≤x i ≤x ftmax y ftmin ≤y i ≤y ftmax and z ftmin ≤z i ≤z ftmax At that time, particle i is positioned in the small grid; When the coordinates of particle j (x j y j z j ) satisfies x ctmin ≤x j ≤x ctmax y ctmin ≤y j ≤y ctmax and z ctmin ≤z j ≤z ctmax At that time, particle j is positioned in the large grid.