## Version 3.5.0

3rd January 2012

Recent Changes

Code Download

• Single
• Double

### HSL_MA78 Sparse unsymmetric ﬁnite-element system: multifrontal out of core

HSL_MA78 solves one or more sets of sparse unsymmetric equations $AX=B$ or ${A}^{T}X=B$ using an out-of-core multifrontal method. The $n×n$ matrix $A$ must be in unassembled element form, that is,

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

where 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. 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. It is permissible for some of the rows and corresponding columns to be empty, that is, to appear in none of the matrices ${A}^{\left(k\right)}$; such rows and columns are ignored in determining whether the matrix is singular.

The multifrontal method is a variant of sparse Gaussian elimination. It involves the factorization

$A=PLDUQ$

where $P$ and $Q$ are a permutation matrices, $L$ and $U$ are unit lower and upper triangular matrices, respectively, and $D$ is a diagonal matrix. The factorization is performed by the subroutine MA78_factor and is controlled by an elimination tree that is constructed by the subroutine MA78_analyse, which needs the lists of variables in elements and an elimination sequence. Once a matrix has been factorized, any number of calls to the subroutine MA78_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_MA78 is dependent on the elimination order that the user supplies. A suitable ordering may be obtained by ﬁrst assembling the sparsity pattern of the matrix $A$ (MC57 can be used to do this) and then calling the HSL package HSL_MA68.