<div class="gmail_quote">On Wed, May 23, 2012 at 2:52 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_quote"><div class="im">On Wed, May 23, 2012 at 2:26 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br></blockquote></div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Note that you could use -pc_type eisenstat perhaps in this case instead. Might save lots of flops? I've often wondered about doing Mark's favorite chebyshev smoother with Eisenstat, seems like it should be a good match.<br>
</blockquote><div><br></div></div><div><div>[0]PETSC ERROR: --------------------- Error Message ------------------------------------</div><div>[0]PETSC ERROR: No support for this operation for this object type!</div><div>
[0]PETSC ERROR: Cannot have different mat and pmat!</div></div></div></blockquote><div><br></div><div>Also, I'm having trouble getting Eisenstat to be more than very marginally faster than SOR.</div><div><br></div><div>
<br></div><div>I think we should later be getting the eigenvalue estimate by applying the preconditioned operator to a few random vectors, then orthogonalizing. The basic algorithm is to generate a random matrix X (say 5 or 10 columns), compute</div>
<div><br></div><div>Y = (P^{-1} A)^q X</div><div><br></div><div>where q is 1 or 2 or 3, then compute</div><div><br></div><div>Q R = Y</div><div><br></div><div>and compute the largest singular value of the small matrix R. The orthogonalization can be done in one reduction and all the MatMults can be done together. Whenever we manage to implement a MatMMult and PCMApply or whatever (names inspired by VecMDot), this will provide a very low communication way to get the eigenvalue estimates.</div>
<div><br></div><div><br></div><div>I want to turn off norms in Chebyshev by default (they are very wasteful), but how should I make -mg_levels_ksp_monitor turn them back on? I'm already tired of typing -mg_levels_ksp_norm_type unpreconditioned.</div>
</div>