I am currently working on my bachelor’s diploma. The research concerns mixed finite element method for the 2D Stokes system
$$ - \Delta \boldsymbol u + \nabla p = \boldsymbol f, \quad \boldsymbol x \in \Omega \subset \mathbb R^2, \\ \nabla \cdot \boldsymbol u = 0, \quad \boldsymbol x \in \Omega, $$
with homogeneous Dirichlet (no–slip) BCs
$$ \boldsymbol u = \boldsymbol 0, \quad \boldsymbol x \in \partial \Omega. $$
Obtaining weak form and choosing appropriate spaces $\mathbb U_h \times \mathbb P_h \ni (\boldsymbol u_h, \, p_h)$ for the velocity field and pressure distribution, one reduces the problem to a saddle–point linear system
$$ \begin{bmatrix} \mathbf A & \mathbf B^T \\ \mathbf B & \mathbf 0 \end{bmatrix} \begin{bmatrix} \boldsymbol \xi \\ \boldsymbol \psi \end{bmatrix} = \begin{bmatrix} \boldsymbol b \\ \boldsymbol 0 \end{bmatrix}, $$
from which one then gets FE–solutions (using natural isomorphism $\mathcal P$ between vectors and FE–interpolants) for pressure $p = \mathcal P \, \boldsymbol \psi $ and ditto for velocity components.
I focus on the analysis and implementation of (geometric) multigrid solving techniques for this system.
I have an experience [Russian text] in solving elliptic and time–dependent parabolic and hyperbolic PDEs, yet I’ve never dealt with saddle–point problems before. So I want to clarify several aspects.
It is well–known that one should carefully choose FE–spaces in order to obtain a well–posed problem. I focus on two LBB–stable finite element pairs:
i. $\Delta \, \boldsymbol P^1 \, CR — \Delta \, P^0 \, L$ finite element pair (non–conform space for the velocity components),
ii. $\Delta \, \boldsymbol P^2 \, L — \Delta \, P^1 \, L$ finite element pair (also known as Taylor–Hood).
Let me clarify these notations. I follow Ciarlet’s definition of FE here: $“\Delta”$ defines geometry (a triangle in my case), $“P^i”$ defines a polynomial space for shape functions, and the last component defines DOFs (which one uses to obtain shape functions and their cross–element behavior)—$“L”$ for “Lagrange” and $“CR”$ for “Crouzeix–Raviart.” I have some visualizations for (i) here.
As far as I concerned, inf–sup stability of these elements should guarantee existence of the unique solution of the above linear system. However, since the momentum equation involves only pressure gradient, it is determined up to a constant; so one usually requires $p$ to have zero mean value: $\int_\Omega p \, d \boldsymbol x = 0$.
The question is, should I enforce this constraint explicitly in the system? Authors of [1, p. 309] suggest the following modification (they use (i)st FE pair):
$$ \begin{bmatrix} \mathbf A & \mathbf B^T & \boldsymbol 0 \\ \mathbf B & \mathbf 0 & \boldsymbol a \\ \boldsymbol 0 & \boldsymbol a^T & 0 \end{bmatrix} \begin{bmatrix} \boldsymbol \xi \\ \boldsymbol \psi \\ \mu \end{bmatrix} = \begin{bmatrix} \boldsymbol b \\ \boldsymbol 0 \\ 0 \end{bmatrix}. $$Other publications I’ve seen so far do not mention such modifications. Moreover, since I am interested in implementation of geometric multigrid, I have to assemble prolongation / restriction operators (sparse matrices); this is pretty straightforward for velocity components and pressure vectors (however, non–conform case will require some special handling), yet it is not for $\mu$.
UPD: I noticed this answer. It seems pretty reasonable that, since the “discrete version” of $\nabla p$ is $\mathbf B^T \boldsymbol \psi$, it should imply that operator $\mathbf B^T$ has a kernel consisting of the identity vector (I should check this by direct computations (for not–too–big matrices, of course) when I’m done with assembling routine).
This also implies that the final system actually has an infinite number of solutions (doesn’t it?). However, this should not cause any problems for a Krylov solver to converge, and one can enforce the desired constraints on the pressure at the post–processing step.
But now I got a bit confused. Does LBB–stability of a finite element pair really imply existence and uniqueness? Isn’t it really about existence?
According, for one, to [2, p. 99] it is reasonable to use multigrid as a preconditioner for a Krylov solver for div–grad elliptic problems. For the Stokes problem, is it reasonable to use multigrid (for one, with the Vanka smoother) as a preconditioner for MINRES? MINRES seems reasonable since the system is symmetric and sign–indefinite. I’ve seen articles suggesting using multigrid as a stand–alone solver.
I also want to compare my future implementation with “black–box” Krylov solvers (for one, in terms of residuals’ history). And I do not want to implement them all.
I’ve already implemented data structures for CSC and symmetric CSlC sparse matrices (these data structures are used for $B$ and $A$ blocks of the system, respectively). I’ve also implemented import / export in Harwell–Boeing format for these data structures (HB–format is pretty popular and supported, for example, by Mathematica).
So I am wondering which tools I can use. It would be nice if the solver routine provided residuals’ history (not only the solution vector). Any suggestions?
References:
Mats G. Larson, Fredrik Bengzon
The Finite Element Method: Theory, Implementation, and Applications
2013Maxim A. Olshanskii, Eugene E. Tyrtyshnikov
Iterative Methods for Linear Systems
2014