STFC Website

part of UK Research & Innovation

Version 1.1.3

3rd May 2023

HSL_ME57: Sparse solver for complex symmetric or Hermitian linear systems

To solve a sparse complex symmetric or Hermitian system of linear equations. Given a sparse complex symmetric or Hermitian matrix \(\mathbf{A} = \{a_{ij}\}_{n \times n}\) and an \(n\)-vector \(\mathbf{b}\) or a matrix \(\mathbf{B} = \{b_{ij} \}_{n \times r}\), this subroutine solves the system \(\mathbf{Ax} = \mathbf{b}\) or the system \(\mathbf{AX} = \mathbf{B}\). The matrix \(\mathbf{A}\) can be either complex symmetric or Hermitian. There is an option for iterative refinement.

The multifrontal method is used. HSL_ME57 is a complex version of the code HSL_MA57. It is a direct method based on a sparse variant of Gaussian elimination and is discussed further by Duff and Reid, ACM Trans. Math. Software 9 (1983), 302-325. A detailed discussion on the MA57 strategy and performance is given by Duff, ACM Trans. Math. Software 30 (2004), 118-144. Relevant work on pivoting and scaling strategies is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications 27 (2005), 313-340. More recent work on static pivoting is given by Duff and Pralet, SIAM Journal Matrix Analysis and Applications 29 (2007), 1007-1024.

The HSL_ME57 package has a range of options including several sparsity orderings, multiple right-hand sides, partial solutions, error analysis, scaling, a matrix modification facility, the efficient factorization of highly rank deficient systems, and a stop and restart facility. Although the default settings should work well in general, there are several parameters available to enable the user to tune the code for his or her problem class or computer architecture.

The package has facilities for automatic restarts when storage limits are exceeded, the return of information on pivots, permutations, scaling, modifications, and the possibility to alter the pivots a posteriori.