# Parallel Direct Solution of Flexible Multibody Systems Based on Block Gaussian Elimination
## 1 Introduction  
Analysis, design, and optimization of complex flexible multibody systems (FMBS) are often limited by computational efficiency [1]. A potential solution is to develop a modeling method that offers high precision with a reduced number of degrees of freedom (DOFs) and, subsequently, address it using parallel computation. To reduce the DOFs of flexible parts in multibody systems, the component mode synthesis (CMS) [2, 3] methods are widely utilized, where the floating frame of reference (FFR) [2, 4] and modal coordinates are introduced to express a flexible body. Among the CMS methods, the fixed-interface Craig-Bampton (CB) method [5, 6] is extensively popular. The CB method preserves boundary modes, typically resulting in higher accuracy than the free-interface Craig-Chang method [7, 8, 9]. Despite this, numerous extensions and improvements have been suggested to enhance the CB method's precision. Notably, we consider residual flexibility as one of the most successful strategies, which is known as the enhanced Craig-Bampton (ECB) method proposed by [PERSON] [10, 11, 12, 13]. To enhance computational efficiency, large time integration step sizes and high single-step efficiency are typically desired. Implicit methods for solving stiff problems, suchas the backward difference formulas (BDFs) [14], can achieve these large step sizes. The resulting nonlinear algebraic equations [2] can then be linearized and solved iteratively [1], for instance, using the Newton iteration as shown by [PERSON] [15]. Parallelization techniques have been adopted in these processes by researchers, aiming for higher efficiency. The assembly process can commonly be significantly accelerated through parallelization, which includes the calculation of general forces, their Jacobian matrices, component modes, and stress recovery. For instance, [PERSON] [16] exploited the modular features of the FMBS to achieve active control and real-time applications. [PERSON] [17] computed the residual vector and Jacobian matrix in parallel using OpenMP [18] in a large diesel engine analysis. [PERSON] [19; 20] combined CPU and GPU parallelization to compute contact forces and the contact Jacobian matrix in scenarios with many contacts in multibody systems. [PERSON], [PERSON] et al. [21] exploited the substructure independence to obtain a parallel approach for the ECB method. [PERSON] [22] and [PERSON] [23] applied parallelization in modes generating and component stress recovery for the CB method and some CMS method, respectively. Motivated by the ideal parallelization efficiency in this process, domain decomposition methods have been introduced to divide large FMBS into smaller substructures for better parallelization, as suggested by [PERSON] [24], [PERSON] [25], [PERSON] [26], and [PERSON] [27]. After assembly, the linearized systemic equations must be solved. As [PERSON] and [PERSON] pointed out in their review [28], parallelizing an implicit and direct solution process is significantly challenging. This is due to the need for decomposing the Jacobian matrix, which involves interdependent operations. Typically, parallel operations can only be performed within a single column, such as within the LU decomposition. Although commercial parallel direct solvers like PARDISO can be used [17], the numerical stability and efficiency for different FMBS models are somehow unclear. Indeed, the Jacobian matrices generated by the CB method possess unique block sparse structures that have not been fully exploited in current calculation schemes. By leveraging these characteristics and employing the block Gaussian elimination (BGE) method [29; 30], we propose an algorithm-level parallel scheme for the direct solution of linearized systemic equations. In the proposed scheme, the Jacobian matrix is eliminated into a small subspace of Lagrange multipliers in a block-wise and fully parallel manner. Once the Lagrange multipliers are resolved, the reverse substitution can also be executed in full parallel.