### HSL_MP48 Sparse unsymmetric system: parallel direct method

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

$$\left(\begin{array}{cccccc}\hfill {A}_{11}\hfill & \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill {C}_{1}\hfill \\ \hfill \hfill & \hfill {A}_{22}\hfill & \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill {C}_{2}\hfill \\ \hfill \hfill & \hfill \hfill & \hfill \dots \hfill & \hfill \hfill & \hfill \hfill & \hfill \dots \hfill \\ \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill \dots \hfill & \hfill \hfill & \hfill \dots \hfill \\ \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill \hfill & \hfill {A}_{NN}\hfill & \hfill {C}_{N}\hfill \end{array}\right).$$
MPI is used for message passing.

A partial $LU$
decomposition is performed on each of the submatrices
$\left({A}_{ll}{C}_{L}\right)$
separately. Once all possible eliminations have been performed,
for each submatrix there remains a Schur complement matrix
${F}_{l}$. The
variables that remain are called interface variables and the interface matrix
$F$ is formed by summing
the matrices ${F}_{l}$. Gaussian
elimination is used to factorize $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 ﬁles. In
addition, $L$
and $U$
factors for the submatrices may optionally be written to sequential
ﬁles. 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.