OOF2: The Manual
MatrixMethod — Ways to solve a matrix equation.
Subclasses are listed as they appear in the GUI and (in parentheses) as they appear in scripts.
ConjugateGradient) -- Conjugate Gradient method for iteratively solving symmetric matrices.
BiConjugateGradient) -- Bi-conjugate gradient method for iteratively solving non-symmetric matrices.
StabilizedBiConjugateGradient) -- Stabilized bi-conjugate gradient method for iteratively solving non-symmetric matrices.
GeneralizedMinResidual) -- Generalized Minimal Residual method for iteratively solving non-symmetric matrices.
DirectMatrixSolver) -- A non-iterative non-sparse matrix solver using LU decomposition. Uses a lot of memory. Not recommended if the finite element mesh is large.
The different types of
applicable to different types of matrix equations. The reference
page for each subclass gives some information about its
applicability. In particular, solution methods for
symmetric matrices can take advantage of the
symmetry to obtain a solution more efficiently. OOF2 constructs
symmetric matrices when possible, and only allows the symmetric
solver (ConjugateGradient) to be
used in those cases.
The matrices that arise in finite element calculations are generally
sparse, meaning that many of their entries are
zero. Sparse matrices can be stored efficiently by only retaining
the non-zero values. The iterative
MatrixMethods have the advantageous property
of not requiring storage for the full matrix. Direct solvers,
on the other hand, generate intermediate values at all matrix
entries, and so their storage requirements are much larger.