5.17 Multi-grid method

The methods for solving matrix equations described so far are Gauss-Seidel and CG. They are iterative, and require few iterations to calculate changes in the field, when the change at any given point is influenced only by points in the close vicinity.

This makes them efficient for solving equations whose range of influence is limited, e.g. by the flow speed through advection eqn in a transport equation.

The pressure equation contains neither a local rate of change eqn nor advection term (assuming eqn). A disturbance at any point influences the solution everywhere in the domain instantaneously, as discussed in Sec. 4.3 .

To transfer changes across a domain, Gauss-Seidel might require as many sweeps as the number of cells across a domain, which would be impractical. Some method is therefore needed that transfers change across the domain more efficiently.

The multi-grid method6 uses a coarse mesh to overcome the problem of slow transfer of change across the domain, reducing the error at “low-frequency”. It transfers that solution through a succession of finer meshes to be accurate at higher frequencies.

The multi-grid method works by first calculating the matrix eqn and residual vector eqn on the original (finest) mesh. Coarser meshes are then successively formed until the mesh reaches its coarsest level, containing as few as 10 cells.

The matrix eqn and eqn are formed at each level of coarsening. Different methods exist to calculate eqn and eqn, including a simple agglomeration discussed in Sec. 5.18 .

PIC
Equations are constructed in terms of the correction eqn, required to make eqn exact, related to the residual eqn by
 r = b A = A ex A = A : \relax \special {t4ht=
(5.36)
At the coarsest level, eqn is solved precisely for eqn, which can be performed efficiently using a direct solver since the matrix is small.

eqn is then injected into the finer level, providing the initial eqn for a few sweeps of the Gauss-Seidel method at that level. Smoothing and injection are repeated up to the finest level, when the final eqn is applied to eqn to yield the solution.

It is generally more efficient to do more Gauss-Seidel sweeps at the coarser levels, when the cost if low due to a smaller matrix size. For example, 4 sweeps may be applied at the coarser levels, while 2 sweeps are applied at the finest.


6Achi Brandt, Multi-level adaptive solutions to boundary-value problems, 1977.

Notes on CFD: General Principles - 5.17 Multi-grid method