## 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:

## 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