flexible TS implementation for user-defined timestepping

Lisandro Dalcin dalcinl at gmail.com
Wed Sep 19 15:37:52 CDT 2007


On 9/18/07, Matthew Knepley <knepley at gmail.com> wrote:
> I can accept that the user might have to change the function. However, if we
> cannot swap methods in the way we can swap KSP or SNES, what is the value
> for the user?

For me, having a consistent, generic TS interface that just save me to
write the time-step loop, and where I can set 'hooks' for pre/post
solve/step and make timestep control, it really great.

I already have the code completelly defining the complete
function/Jacobian (derivative term/mass matrix all included in the
inner FEM computation), but then current TS implementations does not
support my code, as it is forcing me to setup my problem as it where
dU/dt=F(U), and that just does not fit my formulation. I believe other
PETSc users solving transient problems have the same problem, and then
never used TS and wrote his/her own time-loop.

> That is the point I am trying to make. I can see how to do many
> FD methods if I have the identity, but see no approach to FEM. So maybe we
> can be more specific about:
>
>   a) What class of methods we can support interchangably

Perhaps very few, or even none. In specialized FEM formulations, you
have to think your time-step problem as a algebraic nonlinear problem,
where you need to solve for U^{n+1}, and some space operators are
influenced by the time discretization.

There are other problems where you just cannot easy guess the way to
alleviate the user. Pressure-splitting methods in incompressible CFD
have to be solved at each time level with SNES/KSP combinations for
momentum and pressure updating. And those formulations are really
different to a monolithic, saddle-point like, formulation.

So I really doubt we can be able to alleviate all users from having to
write the code for advancing solution in each timestep. But TS can
provide the time-looping management in a consistent way.

>   b) What interface is necessary to support these methods

At the very high-level, TS would be in charge of doing the
time-looping. Particular type implementations should just have to deal
on how to update the solution at each time step (not sure if this is
possible with some external packages like sundials).

Perhaps TS will also need a new inner object (like KSP has PC, or SNES
has KSP) to deal with the more low-level details of particular
time/space discretizations. As you can see, I do not have (like you) a
clear idea of who to define a inteface for this.


-- 
Lisandro Dalcín
---------------
Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC)
Instituto de Desarrollo Tecnológico para la Industria Química (INTEC)
Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET)
PTLC - Güemes 3450, (3000) Santa Fe, Argentina
Tel/Fax: +54-(0)342-451.1594




More information about the petsc-dev mailing list