Solvers

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.

Solver options include:

`minIter`

: minimum number of solver iterations`maxIter`

: maximum number of solver iterations`nSweeps`

: number of solver iterations between checks for solver convergence

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

Copyright © 2011-2016 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.