Version 1.0.1
1st March 2008 User documentation
 Recent Changes

Code Download
 Single
 Double
ME62: Sparse Hermitian or complex symmetric finiteelement system: outofcore frontal method
To solve one or more sets of sparse Hermitian or complex symmetric linear unassembled finiteelement equations, \(\mathbf{AX} = \mathbf{B}\), by the frontal method, optionally holding the matrix factor outofcore in directaccess files. Numerical pivoting is not performed so for Hermitian matrices it is primarily designed for the positivedefinite case. Use is made of highlevel BLAS kernels. The coefficient matrix \(\mathbf{A}\) must of the form
\[\mathbf{A} = \sum _{ k=1} ^ m \mathbf{A} ^{(k)} ,\]
with \(\mathbf{A} ^{(k)}\) nonzero only in those rows and columns that correspond to variables in the \(k\)th element.
The frontal method is a variant of Gaussian elimination and involves the factorization \[\mathbf{A} = \mathbf{PLD} {(\mathbf{PL})} ^ H \mathrm{(Hermitian \; case)},\] or \[\mathbf{A} = \mathbf{PLD} {(\mathbf{PL})} ^ T \mathrm{(symmetric \; case),}\] where \(\mathbf{P}\) is a permutation matrix, \(\mathbf{D}\) is a diagonal matrix, and \(\mathbf{L}\) is a unit lower triangular matrix. The solution process is completed by performing the forward elimination \[(\mathbf{PL})\mathbf{DY}\normalfont = \mathbf{B},\] followed by the back substitution \[(\mathbf{PL}) ^H \mathbf{X}\normalfont = \mathbf{Y}\mathrm{ (Hermitian\; case)}\] or \[(\mathbf{PL}) ^T \mathbf{X}\normalfont = \mathbf{Y} \mathrm{(symmetric\; case).}\] ME62
stores the values of the entries in the factors and their indices separately. A principal feature of ME62
is that, by holding the factors outofcore, large problems can be solved using a predetermined and relatively small amount of incore memory. At an intermediate stage of the solution, \(l\) say, the ‘front’ contains those variables associated with one or more of \(\mathbf{A} ^{(k)}\), \(k = 1, 2,..., l\), which are also present in one or more of \(\mathbf{A} ^
{(k)}\), \(k = l+1,..., m\). For efficiency, the user should order the \(\mathbf{A} ^{(k)}\) so that the number of variables in the front (the ‘front size’) is small. For example, a very rectangular grid should be ordered pagewise parallel to the short side of the rectangle. The elements may be preordered using the HSL routine MC63
.