# OGSM: A Parallel Implicit Assembly Algorithm and Library for Overlapping Grids
## 5 Numerical Results  
### Assembly for a Seven-Ball Configuration  
To test the capability of OGSM in the parallel assembly of overlapping multi-component grids, we applied it to a seven-sphere model, as shown in Figure 15. Unstructured grids were generated independently for each sphere component, with the geometric center coinciding with that of the respective sphere. The overlapped grids have 36,085,811 nodes and 211,912,897 volume cells in total. Each of the seven components has 4,989,826 nodes and 29,256,824 cells, while the background grid has 6,146,855 nodes and 36,371,953 cells. The overlapping grids were assembled in parallel with 32, 64, 128, 256, 512 and 1024 processes, and the relevant computation time is listed in Table 4. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**Subroutine** & **32P** & **64P** & **128P** & **256P** & **512P** & **1024P** \\ \hline ReadGeometry & 19.40 & 31.01 & 21.84 & 8.54 & 13.75 & 0.78 \\ RegContactRel & 53.40 & 28.98 & 4.91 & 3.50 & 3.97 & 6.34 \\ RegOversetRel & 3.09 & 0.98 & 0.57 & 0.37 & 0.33 & 0.20 \\ CalWallDist & 903.95 & 458.84 & 289.34 & 114.76 & 70.61 & 37.71 \\ ExOutQryNode & 0.19 & 0.21 & 0.02 & 0.00 & 0.02 & 0.00 \\ GenBgrdTree & 36.85 & 26.29 & 12.56 & 4.57 & 1.93 & 1.00 \\ ConfirmQryNode & 368.37 & 217.68 & 185.73 & 118.50 & 72.27 & 62.23 \\ ClassifyElems & 2.40 & 1.71 & 0.83 & 0.37 & 0.18 & 0.06 \\ AssemblyElems & 215.92 & 154.91 & 124.19 & 76.95 & 59.20 & 63.28 \\ SewingGrid & 2.11 & 3.23 & 3.70 & 6.38 & 11.84 & 23.10 \\ WritingFile & 169.50 & 115.22 & 160.07 & 148.76 & 148.66 & 138.09 \\ TotalTime & 1775.18 & 1039.06 & 803.76 & 482.70 & 382.76 & 332.79 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Computation time in seconds of assembly subroutine for different processes. Figure 14: Internal work-flow of OGSM library. Figure 16 presents a slice of the overlapping cells and flow-field cells on the \(z=0\) plane for 1024 processes. It shows an automatic assembly of seven grid areas. The blue curve represents the grid-partition boundary, and the green part is the overlapping cells. In this example, the external boundary of the component grid intersects with the hole-cutting boundary, which follows the wall distance criterion. Figure 17 demonstrates the wall-time curves as a function of the total number of processes for each OGSM sub-module, i.e., Figure 17a for calculating the wall-distance parameters, Figure 17b for the ADT generation, Figure 17c for the parallel identification of the node properties, and Figure 17d for the pairing between the overlapping cells and donor cells. Figure 18 shows the wall-time curve of the entire assembling operation of the overlapping grid using OGSM for an increasing number of the processors. It can be observed that OGSM possesses a high level of parallelization, which shows its potential to deal with large-scale geometry data even under high workloads for each process. Moreover, each process can quickly generate the ADT structure related to the grids in negligible time. Finally, there are three steps which occupy over 95% of the total time, i.e., the calculation of the wall distance parameters, the parallel identification of the properties of preliminary screened nodes, and the pairing of overlapping cells and donor cells. Figure 16: Slice through overlapping cells and field cells (z = 0, 1024 processes). Figure 15: Seven sphere components. Figure 17c,d suggests that when the total number of processes does not exceed 512, the time consumptions of both the hole-cutting and the pairing between overlapping cells and the donors monotonically decrease. This is because a decrease in the average load leads to a decrease in the depths of the ADTs, thereby lessening the average time for searching. However, the size of the query nodes set or the overlapping cells set on the  
Figure 17: Wall time curves for different parallel assembly steps of a 7 spherical parts grid. Figure 18: Total wall time for parallel assembly of a 7 spherical parts grid with growing number of processes.