# Parallel Direct Solution of Flexible Multibody Systems Based on Block Gaussian Elimination
## 2 Flexible Multibody Formulation with the Craig-Bampton Method
### Flexible Body Formulation with the Craig-Bampton Method  
#### 2.2.1. DOFs Reduction by the Craig-Bampton Method  
To reduce the degrees of freedom (DOFs) of flexible parts in multibody systems, the component mode synthesis (CMS) [2; 3] methods are widely utilized. In all CMS methods, the first step is to calculate the preserved modes of the flexible parts under specified boundary conditions. For the Craig-Bampton (CB) method [5; 6], all interfaces for joint connections and force applications are fixed when calculating the inner flexible modes. Hence, the CB method is also referred to as a fixed-interface method. Only a few inner modes are preserved to reduce the DOFs of a flexible part. To express the connections and forces acting on the flexible body, static response modes for each boundary DOF are also calculated and preserved, which are known as the boundary modes. The boundary modes are indeed static equilibrium configurations of the flexible body when a single boundary DOF moves a unit displacement in its own direction. Before performing the modes calculation of the flexible body \(i\), we first separate the inner DOFs \(\mathbf{u}_{i}^{\Lambda}\) and boundary DOFs \(\mathbf{u}_{i}^{\Gamma}\) within the finite element (FE) formulation. Superscripts \(\square^{\Lambda}\) and \(\square^{\Gamma}\) denote the inner DOFs and boundary DOFs, respectively. Set \(\mathbf{u}_{i}=[\mathbf{u}_{i}^{\Gamma};\mathbf{u}_{i}^{\Lambda}]\) and rearrange the FE equations to obtain  
\[\underbrace{ \begin{bmatrix}\overline{\mathbf{K}}_{i}^{\Gamma\Gamma}&\overline{\mathbf{ K}}_{i}^{\Gamma\Lambda}\\ \overline{\mathbf{K}}_{i}^{\Lambda\Gamma}&\overline{\mathbf{K}}_{i}^{\Lambda\Lambda} \end{bmatrix} }_{\overline{\mathbf{K}}_{i}} \begin{bmatrix}\mathbf{u}_{i}^{\Gamma}\\ \mathbf{u}_{i}^{\Lambda}\end{bmatrix} +\underbrace{ \begin{bmatrix}\overline{\mathbf{ M}}_{i}^{\Gamma\Gamma}&\overline{\mathbf{M}}_{i}^{\Gamma\Lambda}\\ \overline{\mathbf{M}}_{i}^{\Lambda\Gamma}&\overline{\mathbf{M}}_{i}^{\Lambda\Lambda} \end{bmatrix} }_{\overline{\mathbf{u}}_{i}} \begin{bmatrix}\widetilde{\mathbf{u}}_{i}^{ \Gamma}\\ \widetilde{\mathbf{u}}_{i}^{\Lambda}\end{bmatrix} = \begin{bmatrix}\widehat{f}_{i} \\ \mathbf{0}\end{bmatrix} , \tag{19}\]  
wherein \(\overline{\mathbf{K}}_{i}\) represents the stiffness matrix and \(\overline{\mathbf{M}}_{i}\) represents the mass matrix. \(\widehat{f}_{i}\) denotes the external forces applied to the boundary DOFs. To obtain the inner modes, we fix the boundary DOFs and set \(\mathbf{u}_{i}^{\Gamma}=\widetilde{\mathbf{u}}_{i}^{\Gamma}=\overline{\mathbf{f}}_{i}= \mathbf{0}\) in Equation (19) to obtain  
\[\overline{\mathbf{K}}_{i}^{\Lambda\Lambda}\mathbf{u}_{i}^{\Lambda}+\overline{\mathbf{M}} _{i}^{\Lambda\Lambda}\widetilde{\mathbf{u}}_{i}^{\Lambda}=\mathbf{0}. \tag{20}\]  
Then, the vibration Equation (20) is solved, and the first \(N_{i}\) low-frequency modes \(\overline{\mathbf{\varphi}}_{i,j}^{\Lambda}\) (\(j=1,\cdots,N_{i}\)) are preserved for coordinates \(\mathbf{u}_{i}^{\Lambda}\). These modes are extended to the full DOFs \(\mathbf{u}_{i}\), and we have the vibration modes matrix as follows:  
\[\overline{\mathbf{\varphi}}_{i}^{\text{vibr}}= \begin{bmatrix}\mathbf{0}&\cdots&\mathbf{0 }\\ \overline{\mathbf{\varphi}}_{i,1}^{\Lambda}&\cdots&\overline{\mathbf{\varphi}}_{i,N_{i }}^{\Lambda}\end{bmatrix} . \tag{21}\]  
Assuming the number of boundary DOFs for flexible body \(i\) is \(M_{i}\), a total of \(M_{i}\) boundary modes need to be calculated. To obtain the \(j^{\text{th}}\) boundary mode, we ignore the inertial force term and the external forces and set \(\mathbf{u}_{i}^{\Gamma}=[0;\cdots;0;1;0;\cdots;0]\) with the only \(1\) at the \(j^{\text{th}}\) coordinate in Equation (19) to obtain  
\[ \begin{bmatrix}\overline{\mathbf{K}}_{i,j}^{\Gamma\Gamma}\\ \overline{\mathbf{K}}_{i,j}^{\Gamma\Gamma}\end{bmatrix} + \begin{bmatrix}\overline{ \mathbf{K}}_{i}^{\Gamma\Lambda}\\ \overline{\mathbf{K}}_{i}^{\Lambda\Lambda}\end{bmatrix} \mathbf{u}_{i}^{\Lambda}= \begin{bmatrix}\mathbf{0}\\ \mathbf{0}\end{bmatrix}