At Sun, 17 Aug 2008 11:38:15 +0300, Tuomo Keskitalo wrote: > Implicit solvers result in a group of algebraic non-linear > equations, for which there exists several solution strategies. The > choice of the efficient strategy depends on the problem. For > example, some modified Newton iteration methods are suitable for > stiff systems, while functional iteration works for non-stiff > systems. I would like to give the user the freedom to choose the > non-linear eq solver separately from the stepping method. Does > anyone see a way to do this with current framework?
If it is only a small number (and they don't need any additional parameters) then it's simplest to use the existing framework with explicit names for each combination, e.g. gsl_odeiv_step_foo_newt, gsl_odeiv_step_foo_imp, etc We mainly need additional stiff solvers, so in practical terms the functional iteration case probably isn't needed -- the non-stiff case should be covered adequately by the existing RK-type rules. Of course, in terms of internal implementation it's better to have the methods interchangeable and it is worth implementing it that way if it's not too complicated -- but in terms of exposing them to the user I don't think it's necessary to have all the permutations. > I am currently considering to add a new framework part for specifying > the non-linear equation solver. However, this would break the > current framework. I wonder if I should write a separate > "ode-initval2" library because of this. Any comments? In terms of testing and being useful in existing code, it's a lot easier to go with the current framework. -- Brian Gough
