I am solving a Stokes problem with nonlinear slip boundary conditions. I don't think I can take advantage of block structure since the normal component of velocity has a Dirichlet constraint and this must be built into the velocity space in order to preserve conditioning. An alternative formulation involves a Lagrange multiplier for the constraint, but even with clever preconditioning, this system is still more expensive to solve according to [1].
In solving the (velocity-pressure) saddle point problem, many approximate solves with the velocity system is needed in the preconditioner, hence I need a strong preconditioner for the velocity system. Currently, I am using algebraic multigrid on a low-order discretization which works fairly well. Since Hypre and ML only take AIJ matrices, perhaps I shouldn't worry about blocking after all. Is there a way to use MATBAIJ when some nodes have fewer degrees of freedom? Should I bother? Note that my method (currently just a single element) uses a high order discretization on some elements and low order on others. The global matrix for the low order elements is assembled, but it is applied locally for the high order elements taking advantage of the tensor product basis. For the preconditioner, a low order discretization on the nodes of the high order elements is globally assembled and added to the global matrix from the low-order elements. Experiments with a single element (spectral rather than spectral/hp element) show this to be effective, converging in a constant number of iterations independent of polynomial order when using a V-cycle of AMG as a preconditioner. Thanks. Jed [1] B?nsch, H?hn 2000, `Numerical treatment of the Navier-Stokes equations with slip boundary conditions', SIAM J. Sci. Comput.
