# SplitSolve

SplitSolve is a parallel block Gauss-Seidel solver for semi-structured problems with multiple parts. For problems with only one variable, it can be viewed as a domain-decomposition solver with no grid overlapping.

Consider a multiple part problem given by the linear system \(Ax=b\). Matrix \(A\) can be decomposed into a structured intra-variable block diagonal component \(M\) and a component \(N\) consisting of the inter-variable blocks and any unstructured connections between the parts. SplitSolve performs the iteration

\[x_{k+1} = \tilde{M}^{-1} (b + N x_k),\]

where \(\tilde{M}^{-1}\) is a decoupled block-diagonal V(1,1) cycle, a separate cycle for each part and variable type. There are two V-cycle options, SMG and PFMG.