## Version 6.1.0

24th April 2015

Recent Changes

• Single
• Double

### HSL_MA77 Sparse symmetric system: multifrontal out of core

HSL_MA77 solves one or more sets of sparse symmetric equations $AX=B$ using an out-of-core multifrontal method. The symmetric matrix $A$ may be either positive deﬁnite or indeﬁnite. It may be input by the user in either of the following ways:

(i) by square symmetric elements, such as in a ﬁnite-element calculation, or
(ii) by rows.

In both cases, the coeﬃcient matrix is of order $n$ and is of the form

$A=\sum _{k=1}^{m}{A}^{\left(k\right)}.$

In (i), the summation is over elements and ${A}^{\left(k\right)}$ is nonzero only in those rows and columns that correspond to variables in the $k$th element. In (ii), the summation is over rows and ${A}^{\left(k\right)}$ is nonzero only in row $k$. In both cases, for each $k$, the user must supply a list specifying which columns of $A$ are associated with ${A}^{\left(k\right)}$, and an array containing ${A}^{\left(k\right)}$ in packed form.

The multifrontal method is a variant of sparse Gaussian elimination. In the positive-deﬁnite case, it involves the Cholesky factorization

$A=\left(PL\right){\left(PL\right)}^{T}$

where $P$ is a permutation matrix and $L$ is lower triangular. In the indeﬁnite case, it involves the factorization

$A=\left(PL\right)D{\left(PL\right)}^{T}$

where $P$ is a permutation matrix, $L$ is unit lower triangular, and $D$ is block diagonal with blocks of size $1×1$ and $2×2$. The factorization is performed by the subroutine MA77_factor and is controlled by an elimination tree that is constructed by the subroutine MA77_analyse, which needs the lists of variables in elements or rows and an elimination sequence. Once a matrix has been factorized, any number of calls to the subroutine MA77_solve may be made for diﬀerent right-hand sides $B$. An option exists for computing the residuals. For large problems, the matrix data and the computed factors are held in direct-access ﬁles.

The eﬃciency of HSL_MA77 is dependent on the elimination order that the user supplies. The HSL routine HSL_MC68 may be used to obtain a suitable ordering.