A frontal solver is an approach to solving
sparse linear systems which is used extensively in
finite element analysis
Finite element method (FEM) is a popular method for numerically solving differential equations arising in engineering and mathematical models, mathematical modeling. Typical problem areas of interest include the traditional fields of structural ...
. Algorithms of this kind are variants of
Gauss elimination that automatically avoids a large number of operations involving zero terms due to the fact that the matrix is only sparse. The development of frontal solvers is usually considered as dating back to work by
Bruce Irons.
A frontal solver builds a
LU or
Cholesky decomposition of a sparse matrix.
Frontal solvers start with one or a few diagonal entries of the matrix, then consider all of those diagonal entries that are coupled to the first set via off-diagonal entries, and so on. In the finite element context, these consecutive sets form "fronts" that march through the domain (and consequently through the matrix, if one were to permute rows and columns of the matrix in such a way that the diagonal entries are ordered by the wave they are part of). Processing the front involves
dense matrix operations, which use the CPU efficiently.
Given that the elements of the matrix are only needed as the front marches through the matrix, it is possible (but not necessary) to provide matrix elements only as needed. For example, for matrices arising from the finite element method, one can structure the "assembly" of element matrices by assembling the matrix and eliminating equations only on a subset of elements at a time. This subset is called the front and it is essentially the transition region between the part of the system already finished and the part not touched yet. In this context, the whole sparse matrix is never created explicitly, though the decomposition of the matrix is stored. This approach was mainly used historically, when computers had little memory; in such implementations, only the front is in
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
, while the factors in the decomposition are written into
files. The element matrices are read from files or created as needed and discarded. More modern implementations, running on computers with more memory, no longer use this approach and instead store both the original matrix and its decomposition entirely in memory.
A variation of frontal solvers is the multifrontal method that originates in work of
Duff and
Reid. It is an improvement of the frontal solver that uses several independent fronts at the same time. The fronts can be worked on by different
processors, which enables
parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
.
See
[Iain S Duff, Albert M Erisman, John K Reid, Direct methods for sparse matrices, Oxford University Press, Inc., New York, NY, 1986] for a monograph exposition.
See also
*
MUMPS
MUMPS ("Massachusetts General Hospital Utility Multi-Programming System"), or M, is an imperative, high-level programming language with an integrated transaction processing key–value database. It was originally developed at Massachusetts Gen ...
*
UMFPACK
*
Skyline matrix
*
Banded matrix
References
Numerical linear algebra
Numerical software
{{math-software-stub