Introduction🔗
This section describes the linear solver options available to solve the matrix system
\[\mat{A} \vec{x} = \vec{b}\]where:
- \(\mat{A}\)
- coefficient matrix
- \(\vec{x}\)
- vector of unknowns
- \(\vec{b}\)
- source vector
If the coefficient matrix only has values on its diagonal, the solution vector can be obtained inverting the matrix system:
\[\vec{x} = \mat{A}^{-1} \vec{b}\]Where the inverse of the diagonal matrix is simply:
\[\mat{A}^{-1} = \frac{1}{\mathrm{diag}(\mat{A})}\]This is available as the diagonalSolver
. More typically the matrix cannot be
inverted easily and the system is solved using iterative methods, as described
in the following sections.
Options🔗
Solver options include:
Solver control🔗
Common usage🔗
-
minIter
: minimum number of solver iterations -
maxIter
: maximum number of solver iterations -
nSweeps
: number of solver iterations between checks for solver convergence
Implementation details🔗
Matrix structure🔗
Matrix coefficients are stored in upper-triangular order
- neighbour cell index always higher than owner cell index across a face
- when looping over cell faces, the face index increases with increasing cell index
- for the 1-D case, if cell index 0 is at the boundary, this equates to a monotonic increase in cell numbers, i.e. defines a continuous sweep across the 1-D region
- used in Gauss-Seidel method