OOF2: The Manual
Name
MatrixMethod — Ways to solve a matrix equation.
Subclasses
Subclasses are listed as they appear in the GUI and (in parentheses) as they appear in scripts.
-
CG (
ConjugateGradient
) -- Conjugate Gradient method for iteratively solving symmetric matrices. -
BiCG (
BiConjugateGradient
) -- Bi-conjugate gradient method for iteratively solving non-symmetric matrices. -
BiCGStab (
StabilizedBiConjugateGradient
) -- Stabilized bi-conjugate gradient method for iteratively solving non-symmetric matrices. -
SimplicialLDLT (
SimplicialLDLT
) -- A direct sparse matrix solver using LDLt Cholesky factorizations for sparse positive definite matrices. Recommended for very sparse and not too large problems. -
SimplicialLLT (
SimplicialLLT
) -- A direct sparse matrix solver using LLT Cholesky factorizations for sparse positive definite matrices. -
SparseLU (
SparseLU
) -- A direct sparse matrix solver using LU factorizations for square matrices. -
SparseQR (
SparseQR
) -- A direct sparse matrix solver using QR factorizations for any type of matrices. -
DirectMatrixSolver (
DirectMatrixSolver
) -- An obsolete matrix solver preserved for compitability.
Description
Subclasses of MatrixMethod
specify the matrix equation
solver to be used in AdvancedSolverMode.
The different types of MatrixMethod
are
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.