I am interested in knowing some efficient techniques for solving the following extended Saddle point problem. \begin{align} \begin{bmatrix} A & B^T & C^T \\ B & 0 & 0 \\ C & 0 & 0 \\ \end{bmatrix} \begin{Bmatrix} x \\ y \\ z \\ \end{Bmatrix} = \begin{Bmatrix} F_x \\ F_y \\ F_z \\ \end{Bmatrix} \end{align}
x is velocity, y is pressure, and z is Lagrange multipliers for imposing interface conditions on immersed solids. Such a matrix system is obtained using the fictitious domain/distributed Lagrange multiplier method for incompressible flow problems.
I am looking at two different schemes. In both the schemes, matrices A and B remain the same at each time step but for matrix C the values, as well as the locations of non-zero entries, change from one time step to the other. The number of rows of matrix C is significantly small compared to those of A and B.
Scheme 1: Matrix A is diagonal (and invertible). Since A is diagonal, I am employing a Schur complement based solver using SuperLU solver from the Eigen library. I am wondering if the efficiency can be improved further since only matrix C, which is significantly smaller in size compared to B, changes at each time step.
Scheme 2: Matrix A is sparse and symmetric (and invertible). At the moment I use the sparse direct solver PARDISO. This is certainly not an efficient approach since matrices A and B remain the same. I do not know what type of Schur complement approach would be efficient.
I am looking for some alternative strategies that can be efficient. I very much appreciate any inputs in this regard.
Note: I tried Uzawa type schemes in the past. They are neither efficient nor robust for generic problems; I do not like to fiddle with the relaxation parameters in the Uzawa scheme and its variants.