•
|
•
|
By projection from the finer level: Ai = PiTAi−1Pi. This is also called the Galerkin method. It typically leads to more nonzero elements in the system matrix Ai, but the convergence can be faster than in the default method.
|
1
|
2
|
Starting with x0, apply a few iterations of a presmoother to the linear system A0x = b, yielding a more accurate iterate x0s. Typically the presmoother is some simple iterative algorithm such as SOR, but you can also choose any iterative solver.
|
3
|
Compute the residual r0 = b − A0 x0s. The presmoother “smooths” the residual so the oscillations in r have such a long wavelength that they are well resolved on the next coarser level (1). Therefore, project the residual onto level 1 by applying the transpose of the prolongation: r1 = P1Tr0.
|
4
|
If N = 1 use the coarse solver to solve the system A1x1 = r1. The coarse solver is typically a direct solver such as MUMPS. The number of degrees of freedom on level 1 is less than for level 0, which means that solving A1x1 = r1 is less expensive. If instead N > 1, solve the system A1x1 = r1 (approximately) by recursively applying one cycle of the multigrid algorithm for levels 1, 2, …, N. In both cases the obtained solution x1 is called the coarse grid correction.
|
5
|
6
|
Starting with x0c, apply a few iterations of a postsmoother to the linear system A0x = b, yielding a more accurate iterate x0mg. The default postsmoother is SORU (the version of SOR using the upper triangle of the matrix). The iterate x0mg is the output of the multigrid cycle.
|