flexible TS implementation for user-defined timestepping

Lisandro Dalcin dalcinl at gmail.com
Mon Sep 17 18:48:28 CDT 2007


Current TS implementations never fited my needs. Why? My target
application is solving incompressible NS equations with FEM and fully
implicit schemes (trapezoidal rule with theta in [0.5, 1.0] ) and
residual-based stabilization (SUPG/PSPG). Then I need to solve at each
time step a nonlinear problem like F(t, u, t0, u0), where F is
nonlinear in u. I'm surelly naive, and I could not accomodate my
function and Jacobian code for the beuler/cn TS implementations.

Futhermore, I've recently convinced some coworkers to take advance of
SNES/TS features and my Python wrappers (petsc4py) to manage the the
time evolution of some problems related to fluid-structure interaction
and mesh movement (formulated as an optimization problem, only nodal
positions change, not remeshing needed for many timesteps).

In order to support those applications setups, I've wrote a new TS
implemetation, which enables users to (almost) completely define the
temporal evolution of their problems, with  pre/post solve/step
methods and support for accept/reject steps and implementing timestep
size control. Some of these features are available in some TS types,
but not all-in-one.

This code is available for review in petsc4py SVN repo (link below),
an python example of this in action (very simple, just for testing all
is working) is attached. Currently it only support implicit schemes
and nonlinear problems, but I believe it can be extended to support
explicit schemes and linear problems.

http://petsc4py.googlecode.com/svn/trunk/petsc/lib/ext/src/ts/impls/implicit/user/

I want to know the opinion of PETSc core developers and potential
users ot this, and I hope anyone can provide suggestions for
improvements. After that, I can push this to petsc-dev for general
availability (in fact, the code is almost ready to be integrated in
petsc).

Perhaps in the long term, all this can be integrated in the generic TS
interface if that is appropriate. Of course, this would require some
(I hope minor) changes in TS interface, some additions, and a
reimplementation of some default TS types

Regards, and I'm waiting for your comments.


-- 
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_tsuser.py
Type: text/x-python
Size: 4014 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20070917/05a7984e/attachment.py>


More information about the petsc-users mailing list