For stokes problems, $$ -\Delta \vec{u} + \nabla p =\vec{f},\qquad \nabla . \vec{u} = 0; $$ with appropriate boundary conditions which guarantee there is a unique solution.
Using FDM or FEM, discretization, we can obtain a saddle point system $$Ax = \begin{bmatrix} B&E\\ E^T&O \end{bmatrix}\begin{bmatrix}u\\p\end{bmatrix}=b, $$ where, matrix $B$ is SPD, matrix $E$ is full of column rank,so that marix $A$ is nonsingular.
As is known, Krylov subspace methods, such as MINRES, GMRES, etc, wil be slow. We must use a preconditioner to accelerate the convergence rate. I have known that, the maybe the best choice is block diagonal and block tiragular preconditioner are as follows: $$ P_1 = \begin{bmatrix} B&O\\O&S \end{bmatrix},\qquad P_2 = \begin{bmatrix} B&E\\O&S \end{bmatrix} $$ where matrix $S = E^TB^{-1}E$ is the Schur complement. Because the minimal polynomial of the preconditioned matrix $P_1^{-1}A, P_2^{-1}A$ is 3 and 2, respectively, which means that GMRES will converges in at most 3 and 2 steps under the sense of exact arithmatic.
So, the only thing we need to do is to find the best methods to approximate the matrix $B,S$ to obtain the optimal $B^{-1},S^{-1}$. Fortunately, the AMG is spectral equivalent to $B$ and the Schur compelemt $S$ is spectral equivalent to indentity matrix. And this preconditioner is the optimal one which means that the iterative steps are independent on mesh size and the CPU time is linear with the unkowns. I think there are no other better preconditioners than AMG and indentity matrix for $B$ and $S$ so far, right?
My question is that from above discussion, I find that the saddle points problems have already been solved, because there indeed exists the optimal preconditioner which is easy to invert and independent on mesh size. So, why there are still many people research the saddle point problems. Are there better preconditioner that the above? I cannot find one, if you find, please give me an example.
(Or maybe this preconditioner is just optimal for the stokes problem? Or If the saddle matrix is from other real applications, can we still use this optimal preconditioner?) Any hints and suggestions are welcome.