This is the mail archive of the gsl-discuss@sourceware.org mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GSL ode-initval development


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]