###
HSL_MP48: Sparse unsymmetric system: parallel direct method

The module `HSL_MP48`

solves sets of \(n \times n\) unsymmetric linear systems of equations \(\mathbf{Ax} = \mathbf{b}\), in parallel using Gaussian elimination. The matrix \(\mathbf{A}\) must have been preordered to singly-bordered block-diagonal form

\[\left (
\begin{array}{cccccc}
\mathbf{A} _{11} &&&&& \mathbf{C} _1 \\
& \mathbf{A} _{22} &&&& \mathbf{C} _2 \\
&& \ldots &&& \ldots \\
&&& \ldots && \ldots \\
&&&&\mathbf{A} _{NN} & \mathbf{C} _N
\end{array} \right ) .\] MPI is used for message passing.

A partial \(\mathbf{LU}\) decomposition is performed on each of the submatrices \((\mathbf{A} _{ll} \mathbf{C} _L)\) separately. Once all possible eliminations have been performed, for each submatrix there remains a Schur complement matrix \(\mathbf{F} _l\). The variables that remain are called interface variables and the interface matrix \(\mathbf{F}\) is formed by summing the matrices \(\mathbf{F} _l\). Gaussian elimination is used to factorize \(\mathbf{F}\), using the HSL sparse direct solver `MA48`

. Block forward elimination and back substitution completes the solution.

The userâ€™s matrix data may optionally be held in unformatted sequential files. In addition, \(\mathbf{L}\) and \(\mathbf{U}\) factors for the submatrices may optionally be written to sequential files. This reduces main memory requirements when the number \(N\) of submatrices is greater than the number of processes used.

The HSL package `HSL_MC66`

may be used for preordering the matrix to singly-bordered block-diagonal form.