Version 1.0.1

Code Download

  • Single
  • Double

ME62 Sparse Hermitian or complex symmetric finite-element system: out-of-core frontal method

To solve one or more sets of sparse Hermitian or complex symmetric linear unassembled finite-element equations, AX = B, by the frontal method, optionally holding the matrix factor out-of-core in direct-access files. Numerical pivoting is not performed so for Hermitian matrices it is primarily designed for the positive-definite case. Use is made of high-level BLAS kernels. The coefficient matrix A must of the form

A = k=1mA(k),

with 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

A = PLD(PL)H(Hermitian case),


A = PLD(PL)T(symmetric case),

where P is a permutation matrix, D is a diagonal matrix, and L is a unit lower triangular matrix. The solution process is completed by performing the forward elimination

(PL)DY = B,

followed by the back substitution

(PL)HX = Y(Hermitian case)


(PL)TX = Y(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 out-of-core, large problems can be solved using a predetermined and relatively small amount of in-core memory. At an intermediate stage of the solution, l say, the ‘front’ contains those variables associated with one or more of A(k), k = 1,2,...,l, which are also present in one or more of A(k), k = l + 1,...,m. For efficiency, the user should order the 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.