## 2 Methodology
### Parallelization Strategy  
The RFPA3D system consists of pre-processing, elastic stress analysis, failure analysis, and post-processing. The RFPA3D procedures are completed with coordinated processing on an interactive Windows-Linux platform. The linear elastic stress analysis module is implemented on the Linux operating system cluster, and the other modules are completed on the Windows platform. After the data of the Windows platform are prepared, they are completely transferred to the Linux cluster, and the finite element parallel computing program on the Linux cluster is automatically started to complete the parallel computing. After the parallel calculation, it sends the results back to windows to view the results in real-time. A Hybrid OpenMP/MPI (message passing interface) parallel programming model is used to solve the finite element problem [34]. First, the whole domain is separated into local data sets scattered across the domain. A processing node is given to each partition, and MPI is used to communicate between processors and interconnect computing nodes between distributed memories. It is the most time-consuming process in the entire analysis process. It is also the core of the numerical realization, because each loading step requires a stiffness calculation and the resolving of the system equation. Parallelism and coarse-grained domain decomposition can improve the computational scale and speed of the master-slave solution. This parallel computing structure uses a master-slave programming model, dividing the computational process into several slave processes (see Figure 2). It is a control program that does not participate in calculations, but is responsible for obtaining global machine  
Figure 1: Elastic–brittle damage constitutive law of elements. numbers, initializing data, and processing data before receiving it. The data include unit information, node information, and material properties. According to the domain decomposition algorithm (See Figure 3, where the grid nodes in the I partition are divided into two types: internal nodes and boundary nodes. When solving the physical quantity of the partition boundary node, it is also necessary to exchange information with the adjacent area of the I partition to obtain the information of the node connected to the boundary of the I partition, that is, the information of the external node. The internal nodes and boundary nodes are the nodes to be solved in the I partition. When solving the boundary nodes, the external nodes are auxiliary nodes that provide boundary information), the program automatically decomposes the entire solution region into relatively independent sub-regions, and distributes the sub-region data into the corresponding processors. When the calculation of each slave process is completed, the master process retrieves the results of each sub-region from each slave process. It outputs the results of the entire solution region. Each slave process is a calculation program responsible for completing subtask calculations. Each slave process receives the master process data and individually completes the unit stiffness matrix, the total stiffness matrix synthesis, and the load vector assembly of each sub-region. The sub-region system equations are solved iteratively using the Krylov subspace preconditioner biconjugate gradient stabilized method. It is necessary to exchange data with adjacent sub-regions to update the data during solving. The sub-area solution is completed via the slave process, and the physical quantities of the stress and strain waiting to be solved are output into the master process. Figure 3: Example of the partitioning of a finite element grid. Figure 2: Flowchart of the parallel FEM solver. The calculations in this study are completed on the Int Cloud computing platform, which integrates the resources of nearly 20 mainstream cloud service providers and supercomputing centers in China as the infrastructure, which can provide parallel computing for 10,000-core clusters.