[petsc-dev] spectral deferred correction (SDC) time stepper

Jed Brown jedbrown at mcs.anl.gov
Wed May 29 15:37:30 CDT 2013


Matthew Emmett <memmett at gmail.com> writes:

> Hello PETSc dev,
>
> I'm working on an SDC time stepper to contribute to PETSc, and have made
> decent progress so far.  Currently I am stuck on how to decide between
> explicit only, implicit only, or IMEX based stepping.
>
> Ideally I think it would be nice if the user could just add "-ts_type sdc"
> and have the code figure out which SDC variant (explicit, implicit, or
> imex) to use.  The trouble I am having is that a users RHSFunction can be
> recast into implicit form by TSComputeIFunction if an implicit time-stepper
> is used... which means that I can't just check whether RHSFunction has been
> registered to switch between explicit only and implicit only.  

TSGetRHSFunction() should return NULL if the user did not set an
RHSFunction, however, many stiff systems are described using RHSFunction
as a matter of convenience, and because in some parameter regimes, they
may be non-stiff.

> Is there a preferred way of doing this, or should I add another option
> to select which SDC variant to use?

I would use an option for this.  The user likely wants to try both for
moderately stiff systems.

If you would like comments on your code and general approach, please
push it in a fork on bitbucket or github.



More information about the petsc-dev mailing list