From: Jed Brown <jed@59...>  20100126 19:49:31

On Tue, 26 Jan 2010 13:23:19 0600, "Vijay S. Mahadevan" <vijay.m@...> wrote: > I know that Implicit Midpoint (IM2) is not Lstable either but it is > my understanding that it has a lower truncation error because the > coefficient in front of the error is smaller compared to that of CN. > So I usually prefer IM2 to CN. Hmm, it's easier to handle boundary conditions in IM2, but I thought the truncation error was the same. > I'm curious about the TSGL methods and will try out those integrators > soon. It might be a stretch to do that in the current problem > implementation but I have other coupled problems that could use > adaptive, higher order temporal integration. If there are references > explaining the properties of these methods, their butcher tableau and > such, please do let me know. Also, are these implemented only in > petscdev currently since I do not see it in the latest release of > petsc. These are only in petscdev, I added them in the fall. http://www.mcs.anl.gov/petsc/petscas/snapshots/petscdev/docs/manualpages/TS/TSGL.html the primary reference is John Butcher and Z. Jackieweicz and W. Wright, On error propagation in general linear methods for ordinary differential equations, Journal of Complexity, Vol 23 (46), 2007 tables for many of the methods are here http://www.math.auckland.ac.nz/~hpod/atlas/ IIRC, somehow those tables have errors in error estimators, in TSGL they are computed automatically according to the algorithms in the 2007 paper. The implementation only uses the implicit form, and is also suitable for DAEs (probably only index 1). This implicit form is also better for finite element methods because assembling the mass matrix separately is a bad idea, see TSSetIFunction and TSSetIJacobian. http://www.mcs.anl.gov/petsc/petscas/snapshots/petscdev/docs/manualpages/TS/TSSetIFunction.html http://www.mcs.anl.gov/petsc/petscas/snapshots/petscdev/docs/manualpages/TS/TSSetIJacobian.html Let me know if you have questions. Suggestions about controllers would also be appreciated, my controllers just try to maximise the effective step size over the available schemes subject to a local truncation error tolerance, with a very naive smoothing procedure to (hopefully) keep it from bouncing between schemes too often. But there is a plugin architecture so hopefully we'll accumulate a library of controllers. Starting procedures are also a bit naive, just starting with a small implicit Euler step and moving to higher order schemes as smoothness of the solution indicates. The usual alternative is to start with a singly implicit RungeKutta scheme, but they suffer from reduced stage order and I haven't gotten around to writing one. Jed 