| Is there a robust way to implement the following? Suppose I have a block diagonal matrix P = [A 0; 0 Q]; and I know the indices of A and Q in this block matrix. I now want to apply different preconditioners on the A block and on the Q block. One way, that I've had some success with, is to write a PCSHELL, where I split the input and output vectors using index sets and apply the relevant preconditioner on each of these. However, this hardwires things, and I was wondering if there was another method. -gideon |