[petsc-dev] TS Terminology

Matthew Knepley knepley at gmail.com
Fri Oct 20 10:43:05 CDT 2017


On Fri, Oct 20, 2017 at 11:22 AM, Emil Constantinescu <emconsta at mcs.anl.gov>
wrote:

> On 10/20/17 9:11 AM, Matthew Knepley wrote:
>
>> On Fri, Oct 20, 2017 at 9:23 AM, Emil Constantinescu <
>> emconsta at mcs.anl.gov <mailto:emconsta at mcs.anl.gov>> 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/63ae3ecac3af8ce782273a
>> 76ad4152cddc2fd80a/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.
>

I know what it does. I looked at the code. You are missing the point here.

We cannot use the same word, IFunction, for two different things, F and
F-G. The argument that is is not user facing is complete bullshit.
The user inputs the points for ifunction, and can also call the toplevel
interface.

   Matt


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


-- 
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/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20171020/7aea2d35/attachment.html>


More information about the petsc-dev mailing list