If one attempts to solve a (block matrix) saddle point problem such as $$\begin{bmatrix} A & -B^T \\ B & 0 \end{bmatrix} \begin{bmatrix} u \\ p \end{bmatrix} = \begin{bmatrix} f \\ 0 \end{bmatrix}$$ using a Schur complement structure, then one needs to form the inverse of the Schur complement, $S = BA^{-1}B^T$. We are assuming that $A$ is nonsingular but nothing else. It may be indefinite and nonsymmetric. Additionally, $B$ may be rectangular. Herein lies my issue. Generally, we want to avoid matrix-matrix products. And so, if we have to solve something like $CDx=b$ for invertible matrices $C$ and $D$, we might do a two step process:
- Solve $Cy=b$.
- Solve $Dx=y$.
This is done all the time when using a Krylov solver with preconditioning (if I'm off base please correct me), for example.
However, to apply $S^{-1}$ to some vector $b$, we need to solve $Sx=b$ or equivalently $BA^{-1}B^Tx=b$ also without forming matrix-matrix products. There has to be a standard way of doing this, but I have not been able to track it down or come up with one on my own, since $B$ need not be nonsingular or even square. Thank you for your suggestions.