[petsc-dev] TS Terminology
Matthew Knepley
knepley at gmail.com
Fri Oct 20 11:06:12 CDT 2017
On Fri, Oct 20, 2017 at 11:58 AM, Emil Constantinescu <emconsta at mcs.anl.gov>
wrote:
> On 10/20/17 10:43 AM, Matthew Knepley wrote:
>
>> On Fri, Oct 20, 2017 at 11:22 AM, Emil Constantinescu <
>> emconsta at mcs.anl.gov <mailto: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>
>> <mailto: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
>> <https://bitbucket.org/petsc/petsc/src/63ae3ecac3af8ce782273
>> a76ad4152cddc2fd80a/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, we do not. IFunction is F(t,u_t,u), RHS function is G(t,u). What we
> solve is F=G and not F=0. Do you doubt that?
>
> When the user specifies IFunction it is that F; when the user specifies
> RHS it is that G.
>
Nope. We use the word IFunction, specifically in the ifunction function
pointer to mean
F
but we use the word IFunction, specifically in TSComputeIFunction, to mean
F - G
And, no its visible to everyone, not just "TS developers".
Matt
> Now internally, because different solvers have different needs the
> IFunction ... presented to the TS solver may look differently. This is a
> design choice - if you are not a TS developer it should not affect you.
>
> This is a design decision: if implemented at this level, we avoid having
> every TS method be aware of the upper level functions.
>
> Emil
>
>
>
>
--
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/1424a50a/attachment-0001.html>
More information about the petsc-dev
mailing list