On Tue, 20 Apr 2010 17:00:39 -0500, Barry Smith <bsmith at mcs.anl.gov> wrote: > > Jed and other TS folks, > > Since you introduced providing the ODE/DAE in the form F(t,u,u_t) > = 0 and it seems universal is there any reason to keep all the old > crap around at all?
We need to keep RHSFunction because that is required by explicit integrators [1], I would definitely like to get rid of left-matrix and make right-matrix uniformly a special case of right-function. I don't believe there is any need for right-matrix to exist unless we implement exponential integrators some day, but it's trivial because the TS implementations don't need to call it, so it would only be used by TSComputeRHSFunction (similar to the current dispatch in TSComputeIFunction). I definitely want to get rid of all the special cases in TS implementations, but I think TSTHETA is a fine example of this (I think it actually includes all the functionality of TSBEULER and TSCN while also working for DAE, correct me if I'm wrong). Jed [1] This is not quite true because f_RHS(t,u) = F(t,u,0) *if* the implicit system is actually an ODE with identity as a mass matrix. Rather than having a convention about how to write your IFunction so that explicit integrators can possibly work (otherwise they will appear to work but get wrong results), I prefer to have an interface that enforces this convention. As mentioned above, this provides no complication beyond the existence of the TSSetRHSFunction() because none of the implicit integrators need to know about this interface since they just call TSComputeIFunction().
