<p>If you make a consistent RHS, then ICC with a positive definite shift might be fine. You could certainly define a dynamic ordering that puts the "good" blocks first. If the transformation can identify the bad blocks, you could solve the embedded problem with PCREDISTRIBUTE.</p>
<div class="gmail_quote">On Jan 9, 2012 6:24 PM, "Geoffrey Irving" <<a href="mailto:irving@naml.us">irving@naml.us</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Mon, Jan 9, 2012 at 3:20 PM, Geoffrey Irving <<a href="mailto:irving@naml.us">irving@naml.us</a>> wrote:<br>
> Ah, right. I'm using incomplete Cholesky as a preconditioner, which<br>
> usually won't be stable on the subspace. The subspace is derived from<br>
> freezing the normal velocity of points involved in collisions, so it<br>
> has no useful algebraic properties.<br>
><br>
> It's not too difficult to symbolically apply P to A (it won't change<br>
> the sparsity), but unfortunately that would make the sparsity pattern<br>
> change each iteration, which would significantly increase the cost of<br>
> ICC.<br>
<br>
Sorry, that sentence was poorly phrased. I meant that it's not too<br>
difficult to symbolically eliminate the relevant subspace from A, but<br>
that this would produce a matrix whose size changes each time around.<br>
I could also replace A with PAP directly without changing the sparsity<br>
pattern, but I imagine incomplete Cholesky might choke on the result,<br>
which would be a 3x3 block matrix with a lot of singular diagonal<br>
blocks.<br>
<br>
Geoffrey<br>
</blockquote></div>