<div class="gmail_quote">On Fri, Dec 23, 2011 at 13:11, Mark F. Adams <span dir="ltr"><<a href="mailto:mark.adams@columbia.edu">mark.adams@columbia.edu</a>></span> wrote: <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><div class="im"><blockquote type="cite"><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></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>
</blockquote></div><br><div>Sure, so this update lhs for some equations, but there is no Mat (because it's nonlinear). To create the ISs, we'll have to specify the connections between nodes (could use a matrix to denote that).</div>