It is important to note that in this implementation, L and U can
reuse the memory from the initial sparse matrix A, as long as
provisions for storage of fillin values are provided. This algorithm
assumes no pivoting is required to ensure numerical stability. Fillin
results when either and
or
and
are both non-zero and
or
are initially equal to
zero. The amount of fillin in the factorization of a sparse matrix is
highly dependent on the order in which calculations are performed.
There are many ways to order a sparse matrix to reduce the
amount of fillin [5,9,12]. Two noteworthy ordering
techniques are minimum degree ordering and nested
dissection. The foundation for minimum degree ordering is based in
graph theory, which shows that fillin can be minimized by first
eliminating rows and columns that have the fewest number of non-zero
values, thus minimizing early fillin, which will hopefully minimize
fillin later in the factorization. Minimum degree ordering is a
greedy algorithm that is far from optimal because no good tie breaking
rules exist and numerous rows and columns have equal numbers of
elements. Nested dissection recursively breaks a matrix into a
block-diagonal-bordered form where fillin is limited by the resulting
structure. This technique is marginally effective for irregular
networks or sparsity patterns, although it is considered the
theoretical benchmark to which the quality of orderings are compared
[12]. We have developed other ordering techniques for highly
irregular matrices [14] that