On 10/20/17 9:11 AM, Matthew Knepley wrote:
On Fri, Oct 20, 2017 at 9:23 AM, Emil Constantinescu <[email protected] <mailto:[email protected]>> wrote:

    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.


This is not "internal". Its the toplevel interface:

https://bitbucket.org/petsc/petsc/src/63ae3ecac3af8ce782273a76ad4152cddc2fd80a/src/ts/interface/ts.c?at=master&fileviewer=file-view-default#ts.c-884

It computes F - G.

That's what it should do in some cases. The user provides either ifunction or rhs funtion or both. The api to the solvers can take care of this stuff automatically - that's what I meant by internal. Different TS solvers can take different definitions of the funtions; e.g., imex need both, beuler can take ifuntion and/or rhs function but instead of writing beuler for both we choose the most general case (ifunction) and compose the functions accordingly. The F - G is transparent to the user. But somewhere the sausage needs to be made and I think that is the right level because that is least likely to change and least maintenance.

Emil

    Matt

    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/
        <https://www.cse.buffalo.edu/~knepley/>
        <http://www.caam.rice.edu/~mk51/ <http://www.caam.rice.edu/~mk51/>>




--
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/>

Reply via email to