[petsc-dev] TS Terminology

Emil Constantinescu emconsta at mcs.anl.gov
Fri Oct 20 10:58:21 CDT 2017


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

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





More information about the petsc-dev mailing list