# Simplest way to precondition Uzawa iteration

I have a diffusion problem with an internal circular dirichlet constraint and a side condition which shall enforce a certain global volume integral.

$$\nabla(D \nabla u(x)) = 0$$

outer boundary constraint:

$$u(x) = 0 ~~\forall~x~\in \partial\Omega$$

inner boundary constraint:

$$u(x) = 1 ~~\forall~x~\in \Omega_{int}$$

$$\int_{\Omega} u ~dx = V_t$$

I have successfully discretized the bilinear form into A, and the volume constraint is basically a row/column vector with the cell sizes.

I have also succeeded in solving the resulting saddle point problem:

$$\begin{pmatrix} A & B^T \\ B & 0 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \end{pmatrix} = \begin{pmatrix} 0 \\ V_t \end{pmatrix}$$

via a classical uzawa iteration:

$$x_{1}^{k+1} =x_{1}^{k} - A^{-1}(A x_{1}^{k} + B x_{2}^{k})$$

$$x_{2}^{k+1} = x_{2}^{k} + \tau (B^{T} x_{1}^{k+1}-V_t)$$

The result looks just like i want it too, and all side conditions are met: I read that the classical uzawa iteration is far from being the most efficient, and that there is a lot of approaches to do it better. I have a hard time understanding how the preconditioned Uzawa methods work, and how to actually come up with the preconditioner Matrix without doing costly inversions.

What is the easiest way to properly precondition my uzawa method so that the convergence becomes faster (and hopefully more stable)

This should be a "comment", but I don't have the credentials. I interpret the question as being about understanding the workings of the Uzawa methods, their stability and optimization, rather than how to solve the diffusion equation. The following articles are easily readable and address this:

Ho et al. https://arxiv.org/abs/1510.04246 ("Accelerating the Uzawa Algorithm")

Pascanu _et al. https://arxiv.org/abs/1405.4604 ("On the saddle point problem for non-convex optimization")

Both of these present a clear discussion of the algorithm, giving nice explanations of why it works and when it might be desirable to use use it.

The article of

Dauphin et al. https://arxiv.org/abs/1406.2572 ("Identifying and attacking the saddle point problem in high-dimensional non-convex optimization")

compares the method with Newton-style and gradient descent methods. The last two references are aimed mainly towards the neural net learning process.