24th April 2015
User documentation
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:
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\times 1$ and $2\times 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.