On 10/20/17 7:57 AM, Matthew Knepley wrote:
I am confused by some of the terminology in TS. At the top level,
IFunction appears to mean the entire equation
F(u, u_t, x) = 0
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.
Emil
PS: Manual: PETSc 3.8 September 26, 2017
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.
What guarantees about initialization should we have?
Matt
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
https://www.cse.buffalo.edu/~knepley/ <http://www.caam.rice.edu/~mk51/>