<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Is there a robust way to implement the following?<div><br class="webkit-block-placeholder"></div><div>Suppose I have a block diagonal matrix</div><div>P = [A 0; 0 Q];</div><div>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.  </div><div><br class="webkit-block-placeholder"></div><div>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.</div><br><br><div> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">-gideon</font></p>  </div><br></body></html>