<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Dec 23, 2011, at 1:24 PM, Jed Brown wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Fri, Dec 23, 2011 at 12:19, Mark F. Adams <span dir="ltr"><<a href="mailto:mark.adams@columbia.edu">mark.adams@columbia.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div>Eisenstat is not computing with zero data if there is no initial guess, right? I'm not sure I understand you here.</div></div></blockquote><div><br></div><div>I'm thinking of, e.g. third order Cheby preconditioned by GS.</div></div></blockquote><div><br></div><div>And so you would always have a zero initial guess ... this is messy to implement but it could be done. </div><br><blockquote type="cite"><div class="gmail_quote">
<div> </div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div><div class="im"><br><blockquote type="cite"><div>I know the theory doesn't argue for it, but G-S with Cheby sometimes wins over everything else I've tried. </div>
</blockquote><div><br></div></div><div>People damp G-S for convection etc, which is what Cheb/GS does. Do you do this for SPD systems?</div></div></blockquote><div><br></div><div>No, I was doing it for the thermo/lid-driven cavity, for example.</div>
<div> </div><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; "><div><div class="im"><br><blockquote type="cite"><div>Is there any hope of doing nonlinear G-S where the user can provide something moderately simple?</div>
</blockquote><br></div></div><div>Nonlinear should be very simple actually. Just replace my hacks into (MPI)AIJ matrices with your own operator.</div></blockquote></div><br><div>Sure, but what does the user need to provide? How much code can we reuse between the matrix-based implementation and the nonlinear implementation?</div>
</blockquote></div><br><div>You just have to provide a method like </div><div><br></div><div>int applyGS( Mat mat, Vec lhs, Vec rhs, IS eqs, Bool reverse)</div><div><br></div><div>that applies G-S to the local rows in "eqs" and processes them in reverse order if "reverse" is true. Reverse is just to symmetrize the operator. Since this is probably best used for non-symetric operators we could simplify the algorithm a bit and get rid of this ...</div><div><br></div><div>Mark</div><div><br></div><div><br></div><div><br></div></body></html>