<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Oct 20, 2017 at 9:23 AM, Emil Constantinescu <span dir="ltr"><<a href="mailto:emconsta@mcs.anl.gov" target="_blank">emconsta@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 10/20/17 7:57 AM, Matthew Knepley wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I am confused by some of the terminology in TS. At the top level, IFunction appears to mean the entire equation<br>
<br>
   F(u, u_t, x) = 0<br>
</blockquote>
<br></span>
Matt, page 141 of the manual: F(t, u, u_t) = G(t, u), and not zero on the RHS side. To make the interface general we allow internally for F:= F(t, u, u_t) - G(t, u) and then F=0.<br></blockquote><div><br></div><div>This is not "internal". Its the toplevel interface:</div><div><br></div><div>  <a href="https://bitbucket.org/petsc/petsc/src/63ae3ecac3af8ce782273a76ad4152cddc2fd80a/src/ts/interface/ts.c?at=master&fileviewer=file-view-default#ts.c-884">https://bitbucket.org/petsc/petsc/src/63ae3ecac3af8ce782273a76ad4152cddc2fd80a/src/ts/interface/ts.c?at=master&fileviewer=file-view-default#ts.c-884</a></div><div><br></div><div>It computes F - G.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Emil<br>
<br>
PS: Manual: PETSc 3.8 September 26, 2017<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">
However, this appears to mean something different than ifunction at the function pointer level. Inside TSCompiteIFunction(), it uses both ifunction and rhsfunction. This makes it hard to understand how composition works. TSComputeRHS() is called inside TSComputeIFunction(), so if we want to reuse vectors it should not initialize the vector, but it seems like TSComputeIFunction() should initialize the vector since TSComputeIFunctionLocal() does.<br>
<br>
What guarantees about initialization should we have?<br>
<br>
    Matt<br>
<br>
-- <br>
What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
-- Norbert Wiener<br>
<br>
</span><a href="https://www.cse.buffalo.edu/~knepley/" rel="noreferrer" target="_blank">https://www.cse.buffalo.edu/~k<wbr>nepley/</a> <<a href="http://www.caam.rice.edu/~mk51/" rel="noreferrer" target="_blank">http://www.caam.rice.edu/~mk5<wbr>1/</a>><br>
</blockquote>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>