## Version 2.1.0

21st March 2022

Recent Changes

• Single
• Double

### 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.