4. AMG for Saddle Point Systems
4.3. Iterative solvers for Saddle Point Systems
We now discuss several iterative solution methods for saddle point systems. First, we introduce the generalized minimal residual (GMRES) algorithm, which, in exact arith- metic, converges within m iterations for any non-singular matrix K ∈ Rm×m. Then, we
describe some iterative solvers and smoothers aimed at saddle point matrices.
4.3.1. GMRES
The generalized minimal residual (GMRES) method [SS86] is a generalization of the minimal residual (MINRES) method introduced in [PS75]. While the latter requires that K is symmetric and an optional preconditioner Q must be symmetric positive definite, the GMRES method is not restricted to this case.
Both methods belong to the class of Krylov subspace methods. A Krylov subspace is spanned by powers of K applied to the right hand side y,
Kit
(K, y) := span{y, Ky, . . . , Kit−1y}.
After each iteration it, the current approximation xit minimizes the residual over the
Krylov space,
min
xit∈Kit(K,y)ky − Kx
itk E.
To this end, the GMRES algorithm constructs an orthonormal basis ofKit(K, y). As the number of iterations grows, this requires O(it · m) memory to store all of these vectors. Hence, in practice one often restarts GMRES, i.e. after a certain amount of steps we start the iteration with the current approximation xit as the initial guess and abandon the previously created orthonormal vectors. In Algorithm 4.1 we give the preconditioned restarted GMRES algorithm.
4.3.2. Uzawa methods
The Uzawa method is a well-known iterative solver for saddle point systems of the form (4.1). In each iteration, the following equations are solved ([Bra97], algorithm 5.1),
Auit+1= f − BTpit (4.46)
pit+1= pit+ σ Buit− Cpit− g . (4.47) Note that the previous velocity iterate uit is not used at all, instead uit+1 is computed to
solve the momentum equation Auit+1+ BTpit = f given the pressure iterate pit. Hence,
for convergence considerations, we only need to monitor the pressure p. We eliminate uit from (4.47) and obtain
pit+1= pit+ σ BA−1BT + C p − pit ,
where p denotes the pressure part of the exact solution for (4.1). We have convergence for σ < kBA−12BT+Ck, see [Bra97].
A drawback of this method is that we must solve Auit+1 = f − BTpit within each
iteration, i.e. we need a direct or iterative solver, e.g. geometric or algebraic multigrid, for A.
To circumvent this difficulty, one can choose to solve (4.46) only inexactly, i.e. to replace (4.46) by
ˆ
A uit+1− uit = f − Auit− BTpit,
where ˆA is an easily invertible preconditioner for A, e.g. ˆA = αI for some number α (Arrow-Hurwicz method [AHU58]).
A symmetric version of the inexact Uzawa method is also possible. The iteration then reads [Wab03, Zul02]
u∗ = uit+ ˆA−1 f − Auit− BTpit
(4.48) pit+1 = pit+ ˆS−1 Bu∗− Cpit− g
(4.49) uit+1 = u∗− ˆA−1BTpit+1 pit+1− pit , (4.50)
i.e. we first compute a predictor velocity u∗ and then use it to determine uit+1 and pit+1. Note that (4.50) can be rewritten as
uit+1 = uit+ ˆA−1 f − Auit− BTpit+1 . (4.51)
We will further discuss the inexact symmetric Uzawa method in Section 4.5. The additive version of our saddle point AMG smoother also belongs to this class.
algorithm 4.1 GMRES(k,K, Q,y,x,tol) ([Wab03], algorithm 2.11) begin
choose initial guess x0;
q1 ← Q−1(y − Kx0); apply preconditioner z1 ← |q1|; q1 ← 1 z1q 1; while |z1| > tol do
for j ← 1 to k do form orthonormal basis
qj+1 ← Q−1Kqj; for i ← 1 to it do hi,j ← qi· qj+1; qj+1← qj+1− h i,jqi; od; hj+1,j ← |qj+1|; q1 ← 1 |qj+1|qj+1; od
for j ← 1 to k do seek minimizer
d ←qh2 j,j+ h2j+1,j; c ← hj,j d ; s ← hj+1,j d ; hj,j ← d; for i ← j + 1 to k do
hj,i ← c · hj,i+ s · hj+1,i;
hj+1,i ← s · hj,i− c · hj+1,i;
od; zj ← c · zj; zj+1 ← s · zj; od; αk ← hzk k,k; for i ← k to 1 do αi ← h1 i,i zi−Pkj=i+1hi,jαj ; od; xk ← x0+Pk
i=1αiqi; update iterate
rk← Q−1(y − Kxk); preconditioned residual x0 ← xk; r0 ← rk; restart z1 ← |r0|; q1 ← 1 z1r 0; od; end
4.3.3. SIMPLE
The (semi-implicit method for pressure–linked equations (SIMPLE) method [PS72, Pat80] is another approach to circumvent the exact solution of (4.46). We determine an auxil- iary vector u∗ that satisfies
˜
Au∗ = f − BTpit,
where ˜A is some approximation to A. To obtain the next velocity iterate uit+1, we first
need to compute a pressure correction q∗,
q∗ = −α ˆS−1 Buit− Cpit− g , (4.52)
Here, ˆS denotes an approximation to the Schur complement BD−1BT + C, where D is
the diagonal of A. The damping parameter α must be chosen such that no overshooting occurs. Finally, we obtain the new iterates for velocity and pressure by
uit+1 = u∗− αD−1BTq∗, pit+1 = pit+ q∗. (4.53)
It remains to define ˆA−1and ˆS−1, which describe the action of a linear solver. Depending on the size and the shape of A and BD−1BT + C, we might choose direct methods,
relaxation processes like Jacobi or Gauss–Seidel, or even (algebraic) multigrid methods. Several variants of the SIMPLE method have been developed (SIMPLER, SIMPLEV, SIMPLEC [VDR84]). Note that, as in the exact Uzawa iteration, the previous velocity iterate uit is not used to obtain uit+1 and pit.
4.3.4. Transforming Smoothers
The idea of transforming smoothers [Wit89, Wit90] is to multiply the matrix K from the left and the right by some non-singular matrices KL and KR and to apply a standard
smoothing method to the transformed system,
zit+1 = zit+ ˆK−1 KLy − KLKKRzit ,
In terms of the original unknown x, we use x = K−1R z and re-write the iteration,
xit+1 = xit+ KRKˆ−1KL y − Kxit .
A possible choice is ([Wit89], Section 3.1)
KL= I, KR =
I A−1BT BA−1BT + C F
0 − BA−1BT + C−1 F
with some positive definite matrix F . for example, one can take F = BA−1BT + C,
or a discretization of the Laplacian on the pressure grid. The transformed system takes the form KKR = A 0 B F .
A suitable smoother for the transformed system only needs to posses the smoothing property for the diagonal blocks A and F [Wit90], i.e. we can set
ˆ
K =KU 0 0 KP
where KU and KP can be chosen e.g. to be the scaled diagonals (Jacobi), the diagonals
and the lower right blocks (Gauss–Seidel) or an incomplete LU discretization of A and F , respectively. Under certain assumptions on the discretization, the smoothing ratio for the transforming smoothers applied to a Stokes problem can be shown to range from O(√1
it) (damped Jacobi) to O( ln it√
it) (ILU), where it denotes the number of iterations
([Wit90], Theorems 3.1.4, 3.1.7, 3.2.1).
4.3.5. Braess–Sarazin smoother
In contrast to the exact Uzawa and the SIMPLE methods, the Braess–Sarazin smoother [BS97] computes the iterates uit+1 and pit+1 from the old velocity iterate uit. To this
end, let ˆA = α diag(A), where α is chosen such that ˆA > A. Furthermore, let ˆS be a preconditioner or approximate solver for the Schur complement B ˆA−1BT + C. Then we can compute the iterates uit+1 and pit+1 as follows,
u∗ = uit+ ˆA−1 f − Auit , (4.54)
pit+1 = − ˆS−1[g − Bu∗] , (4.55)
uit+1 = u∗− ˆA−1BTpit+1. (4.56)
It can be shown that the Braess-Sarazin smoother possesses a smoothing ratio of O(it1) ([BS97], Lemma 3.2 and Theorem 5.1).
4.3.6. Vanka Smoothers
The smoother introduced in [Van86] treats velocity and pressure updates simultane- ously. This method was first introduced within the context of a multigrid method for staggered mesh discretizations of the Navier–Stokes equations. Here, a global symmetric block Gauss–Seidel iteration processes all discretization cells. On each such cell, a small saddle point system is solved to obtain an update for the pressure unknown and velocity unknowns belonging to this cell.
The multiplicative variant of our smoother for saddle point AMG also belongs to this class. We postpone a further discussion to Section 4.6.