HSL_MA77 solves one or more sets of sparse symmetric equations using an out-of-core multifrontal method. The symmetric matrix 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 and is of the form
In (i), the summation is over elements and is nonzero only in those rows and columns that correspond to variables in the th element. In (ii), the summation is over rows and is nonzero only in row . In both cases, for each , the user must supply a list specifying which columns of are associated with , and an array containing in packed form.
The multifrontal method is a variant of sparse Gaussian elimination. In the positive-deﬁnite case, it involves the Cholesky factorization
where is a permutation matrix and is lower triangular. In the indeﬁnite case, it involves the factorization
where is a permutation matrix, is unit lower triangular, and is block diagonal with blocks of size and . 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 . 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.