public inbox for gsl-discuss@sourceware.org
 help / color / mirror / Atom feed
* Implementing hybrid explicit/implicit ODE stepper
@ 2009-06-03 14:32 Rhys Ulerich
  2009-06-04 13:38 ` Brian Gough
  0 siblings, 1 reply; 5+ messages in thread
From: Rhys Ulerich @ 2009-06-03 14:32 UTC (permalink / raw)
  To: gsl-discuss

Hi all,

I'm looking into implementing a hybrid explicit, implicit ODE
integrator within the GSL ODE framework.
This one splits the right hand side of u_t = f(u) into an implicit
linear operator L(u) and an explicit nonlinear operator N(u).  The
scheme requires L(u) be available in a matrix or matrix-like form.

What's the "right way" to shoehorn this into the gsl_odeiv_system
struct (http://www.gnu.org/software/gsl/manual/html_node/Defining-the-ODE-System.html)
?
L(u) as gsl_odeiv_system.function with N(u) passed within
gsl_odeiv_system.params ?  The reverse?  Neither?

Thanks,
Rhys

P.S. It's Spalart, Moser, & Rogers 1991 appendix A for anyone interested.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Implementing hybrid explicit/implicit ODE stepper
  2009-06-03 14:32 Implementing hybrid explicit/implicit ODE stepper Rhys Ulerich
@ 2009-06-04 13:38 ` Brian Gough
  2009-06-04 17:20   ` Tuomo Keskitalo
  0 siblings, 1 reply; 5+ messages in thread
From: Brian Gough @ 2009-06-04 13:38 UTC (permalink / raw)
  To: Rhys Ulerich; +Cc: gsl-discuss, tuomo.keskitalo

At Wed, 3 Jun 2009 09:31:40 -0500,
Rhys Ulerich wrote:
> What's the "right way" to shoehorn this into the gsl_odeiv_system
> struc?  L(u) as gsl_odeiv_system.function with N(u) passed within
> gsl_odeiv_system.params ?  The reverse?  Neither?

That's a good question, I'm not sure - maybe Tuomo has some
suggestions? 

My gut instict would be to create a new class of solver for this but
it would be better if they could all be in one framework of course.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Implementing hybrid explicit/implicit ODE stepper
  2009-06-04 13:38 ` Brian Gough
@ 2009-06-04 17:20   ` Tuomo Keskitalo
  2009-06-04 17:40     ` Rhys Ulerich
  0 siblings, 1 reply; 5+ messages in thread
From: Tuomo Keskitalo @ 2009-06-04 17:20 UTC (permalink / raw)
  To: Rhys Ulerich; +Cc: Brian Gough, gsl-discuss

On 06/04/2009 10:18 AM, Brian Gough wrote:

> At Wed, 3 Jun 2009 09:31:40 -0500,
> Rhys Ulerich wrote:
>> What's the "right way" to shoehorn this into the gsl_odeiv_system
>> struc?  L(u) as gsl_odeiv_system.function with N(u) passed within
>> gsl_odeiv_system.params ?  The reverse?  Neither?
> 
> That's a good question, I'm not sure - maybe Tuomo has some
> suggestions? 

Sorry, your description of the method is not clear to me. Can you send 
me the reference as e.g. pdf?

-- 
Tuomo.Keskitalo@iki.fi
http://iki.fi/tuomo.keskitalo

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Implementing hybrid explicit/implicit ODE stepper
  2009-06-04 17:20   ` Tuomo Keskitalo
@ 2009-06-04 17:40     ` Rhys Ulerich
  2009-06-04 18:52       ` Tuomo Keskitalo
  0 siblings, 1 reply; 5+ messages in thread
From: Rhys Ulerich @ 2009-06-04 17:40 UTC (permalink / raw)
  To: Tuomo Keskitalo; +Cc: Brian Gough, gsl-discuss

> Sorry, your description of the method is not clear to me. Can you send me
> the reference as e.g. pdf?

Sure, scanned images (sorry no PDF) of the three page appendix
detailing the method are at

http://users.ices.utexas.edu/~rhys/smr_appendix/page1.jpg
http://users.ices.utexas.edu/~rhys/smr_appendix/page2.jpg
http://users.ices.utexas.edu/~rhys/smr_appendix/page3.jpg

Though the appendix talks about A. Wray's submission to J. Comput.
Phys., that paper was never published.

This integrator tends to get used in DNS of Navier-Stokes since the
memory savings become significant for very large fields.

- Rhys

On Thu, Jun 4, 2009 at 12:21 PM, Tuomo Keskitalo <Tuomo.Keskitalo@iki.fi> wrote:
> On 06/04/2009 10:18 AM, Brian Gough wrote:
>
>> At Wed, 3 Jun 2009 09:31:40 -0500,
>> Rhys Ulerich wrote:
>>>
>>> What's the "right way" to shoehorn this into the gsl_odeiv_system
>>> struc?  L(u) as gsl_odeiv_system.function with N(u) passed within
>>> gsl_odeiv_system.params ?  The reverse?  Neither?
>>
>> That's a good question, I'm not sure - maybe Tuomo has some
>> suggestions?
>

>
> --
> Tuomo.Keskitalo@iki.fi
> http://iki.fi/tuomo.keskitalo
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Implementing hybrid explicit/implicit ODE stepper
  2009-06-04 17:40     ` Rhys Ulerich
@ 2009-06-04 18:52       ` Tuomo Keskitalo
  0 siblings, 0 replies; 5+ messages in thread
From: Tuomo Keskitalo @ 2009-06-04 18:52 UTC (permalink / raw)
  To: Rhys Ulerich; +Cc: Brian Gough, gsl-discuss

On 06/04/2009 08:40 PM, Rhys Ulerich wrote:

> This integrator tends to get used in DNS of Navier-Stokes since the
> memory savings become significant for very large fields.

Ok, now I understand a bit more. I don't think the current GSL 
ode-initval is directly suitable for that kind of specialized problem. 
The framework does not support separation of f(u) into two components. 
You would first have to make changes to gsl_odeiv_system to provide 
that, and then modify all the rest accordingly. Might be doable, I don't 
know.

Would your application benefit from step size control, or evolution 
functionality similar to those in ode-initval? If yes, then you might 
try to start from ode-initval and modify it. Otherwise I suggest you 
look for how others have designed these kinds of solvers and then create 
a new framework suitable for this kind of a problem.

Of course, if you end up implementing only that one stepper, you can use 
code snippets from ode-initval for it.

Regards,
Tuomo

-- 
Tuomo.Keskitalo@iki.fi
http://iki.fi/tuomo.keskitalo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-06-04 18:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-03 14:32 Implementing hybrid explicit/implicit ODE stepper Rhys Ulerich
2009-06-04 13:38 ` Brian Gough
2009-06-04 17:20   ` Tuomo Keskitalo
2009-06-04 17:40     ` Rhys Ulerich
2009-06-04 18:52       ` Tuomo Keskitalo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).