Documentation (particularly for ODE solvers)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Documentation (particularly for ODE solvers)

Alexey Cherkaev
Hi all,

I apologize if the question is trivial: I'm still quite new to Smalltalk.

So far I've tried SciSmalltalk library (in Pharo) and found (if I am not mistaken) that ODE steppers/solvers do not have step-size control. Furthermore, I would like to have something like `evolve` for solver, which acts as an iterator over output time points. The latter is quite trivial to implement, the step-size control, however, requires digging rather deeply.

So, my question is if PolyMath has step-size/accuracy controlled ODE steppers? Ideally I would like something like LSODE, which can switch between the AM and BDF methods if the problem is stiff and change the method approximation order dynamically.

If not, where can I find the documentation on steppers implementation to figure out how to integrate this with PolyMath? And would this work to be of interest to become a part of PolyMath?

Regards, Alexey

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

SergeStinckwich
On Thu, Mar 24, 2016 at 1:27 PM, Alexey Cherkaev
<[hidden email]> wrote:
> Hi all,

Hi Alexey,

> I apologize if the question is trivial: I'm still quite new to Smalltalk.
>
> So far I've tried SciSmalltalk library (in Pharo) and found (if I am not
> mistaken) that ODE steppers/solvers do not have step-size control.
> Furthermore, I would like to have something like `evolve` for solver, which
> acts as an iterator over output time points. The latter is quite trivial to
> implement, the step-size control, however, requires digging rather deeply.
>
> So, my question is if PolyMath has step-size/accuracy controlled ODE
> steppers? Ideally I would like something like LSODE, which can switch
> between the AM and BDF methods if the problem is stiff and change the method
> approximation order dynamically.
>
> If not, where can I find the documentation on steppers implementation to
> figure out how to integrate this with PolyMath? And would this work to be of
> interest to become a part of PolyMath?

This is great if you could improve this part of PolyMath !
ODE solvers was originally writen by Natalia Tymchuck during her GSOC.
Normally she is still on the mailing-list.

What is lacking at the moment is a real documentation about ODEs.
Don't hesitate to add class comments and enhance the current sparse
documentation available here:
https://github.com/SergeStinckwich/SciSmalltalk/wiki/How-does-ODE-package-work%3F
https://github.com/SergeStinckwich/SciSmalltalk/wiki/Quick-start-to-ODE

Thank you for your help.
Regards,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

stepharo
In reply to this post by Alexey Cherkaev


Le 24/3/16 13:27, Alexey Cherkaev a écrit :
Hi all,

I apologize if the question is trivial: I'm still quite new to Smalltalk.

Welcome :)
You see I do not understand anything about math so we complement each others.
but you are in the lucky situation that you can learn Pharo and my understand of math
will not grow much :)
I'm helping to structure PolyMath and make it more modular.
https://ci.inria.fr/pharo-contribution/job/PolyMath/So far I've tried SciSmalltalk library (in Pharo) and found (if I am not mistaken) that ODE steppers/solvers do not have step-size control. Furthermore, I would like to have something like `evolve` for solver, which acts as an iterator over output time points. The latter is quite trivial to implement, the step-size control, however, requires digging rather deeply.

So, my question is if PolyMath has step-size/accuracy controlled ODE steppers? Ideally I would like something like LSODE, which can switch between the AM and BDF methods if the problem is stiff and change the method approximation order dynamically.

If not, where can I find the documentation on steppers implementation to figure out how to integrate this with PolyMath? And would this work to be of interest to become a part of PolyMath?

Have a look at the code here
I will start to clean some duplication code in ODE

https://ci.inria.fr/pharo-contribution/job/PolyMath/

Regards, Alexey

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

Natalia Tymchuk
In reply to this post by SergeStinckwich
Hi Alexey.

So, my question is if PolyMath has step-size/accuracy controlled ODE
steppers?

As it was written by Serge, you can read how to control step-size on the link below.

Ideally I would like something like LSODE, which can switch
between the AM and BDF methods if the problem is stiff and change the method
approximation order dynamically.

Unfortunately, it is not implemented.

Best regards,
Natalia



--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

Nicolas Cellier


2016-03-24 14:49 GMT+01:00 Natalia Tymchuk <[hidden email]>:
Hi Alexey.

So, my question is if PolyMath has step-size/accuracy controlled ODE
steppers?

As it was written by Serge, you can read how to control step-size on the link below.

Ideally I would like something like LSODE, which can switch
between the AM and BDF methods if the problem is stiff and change the method
approximation order dynamically.

Unfortunately, it is not implemented.

Best regards,
Natalia


That would be a great addition, LSODE was one of my favourite choices for general purpose solver
 


--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

Alexey Cherkaev
In reply to this post by SergeStinckwich
Hi Serge (and others who replied),

Thanks for the links and points! I will need to dive deeper into the code to understand inner workings and connections. I have some ideas (and perhaps opinions about how things should be :) ), but I don't want to jump to them before understanding current code base.

What would be a preferable channel of communication if I have a question about a particular method or what data structures should be used, etc? This is to say, mostly small questions? Is there a IRC chat, Slack or something similar? Or this email list/group would be fine?

PS. Maybe a bit of my background and why I am interested in SciSmalltalk/PolyMath:

I'm doing my PhD in Chemical Engineering, but I was always interested  in programming. As a part of my PhD, I need to construct a model of  an industrial (mining) process. This model involves the solution of PDEs that do not fall into a standard CFD framework. Also, within the model, I would like to deal with higher level concepts: minerals, species, reactions, etc. and not vectors, arrays... So, FORTRAN, or C, or even something like MATLAB or SciLab aren't going to be sufficient. Another candidate is (obviously) Python with SciPy/NumPy, but being in academia gives one freedom to explore other alternatives and Smalltalk managed to fascinate me (even after Lisp).

On Thursday, March 24, 2016 at 3:05:45 PM UTC+2, Serge Stinckwich wrote:
On Thu, Mar 24, 2016 at 1:27 PM, Alexey Cherkaev
<<a href="javascript:" target="_blank" gdf-obfuscated-mailto="lHcHMUmtBAAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">alexey....@...> wrote:
> Hi all,

Hi Alexey,

> I apologize if the question is trivial: I'm still quite new to Smalltalk.
>
> So far I've tried SciSmalltalk library (in Pharo) and found (if I am not
> mistaken) that ODE steppers/solvers do not have step-size control.
> Furthermore, I would like to have something like `evolve` for solver, which
> acts as an iterator over output time points. The latter is quite trivial to
> implement, the step-size control, however, requires digging rather deeply.
>
> So, my question is if PolyMath has step-size/accuracy controlled ODE
> steppers? Ideally I would like something like LSODE, which can switch
> between the AM and BDF methods if the problem is stiff and change the method
> approximation order dynamically.
>
> If not, where can I find the documentation on steppers implementation to
> figure out how to integrate this with PolyMath? And would this work to be of
> interest to become a part of PolyMath?

This is great if you could improve this part of PolyMath !
ODE solvers was originally writen by Natalia Tymchuck during her GSOC.
Normally she is still on the mailing-list.

What is lacking at the moment is a real documentation about ODEs.
Don't hesitate to add class comments and enhance the current sparse
documentation available here:
<a href="https://github.com/SergeStinckwich/SciSmalltalk/wiki/How-does-ODE-package-work%3F" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FSergeStinckwich%2FSciSmalltalk%2Fwiki%2FHow-does-ODE-package-work%253F\46sa\75D\46sntz\0751\46usg\75AFQjCNHEYCPlC2FMxlWHemfCvVz_HkB9lA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FSergeStinckwich%2FSciSmalltalk%2Fwiki%2FHow-does-ODE-package-work%253F\46sa\75D\46sntz\0751\46usg\75AFQjCNHEYCPlC2FMxlWHemfCvVz_HkB9lA&#39;;return true;">https://github.com/SergeStinckwich/SciSmalltalk/wiki/How-does-ODE-package-work%3F
<a href="https://github.com/SergeStinckwich/SciSmalltalk/wiki/Quick-start-to-ODE" target="_blank" rel="nofollow" onmousedown="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FSergeStinckwich%2FSciSmalltalk%2Fwiki%2FQuick-start-to-ODE\46sa\75D\46sntz\0751\46usg\75AFQjCNFioCvozGamarjkWcQWPgSxzhuduA&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\75https%3A%2F%2Fgithub.com%2FSergeStinckwich%2FSciSmalltalk%2Fwiki%2FQuick-start-to-ODE\46sa\75D\46sntz\0751\46usg\75AFQjCNFioCvozGamarjkWcQWPgSxzhuduA&#39;;return true;">https://github.com/SergeStinckwich/SciSmalltalk/wiki/Quick-start-to-ODE

Thank you for your help.
Regards,
--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
<a href="http://www.doesnotunderstand.org/" target="_blank" rel="nofollow" onmousedown="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fwww.doesnotunderstand.org%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEmratUCplMDry5gDXSals1R-iPLw&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\75http%3A%2F%2Fwww.doesnotunderstand.org%2F\46sa\75D\46sntz\0751\46usg\75AFQjCNEmratUCplMDry5gDXSals1R-iPLw&#39;;return true;">http://www.doesnotunderstand.org/

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

stepharo

>
> Thanks for the links and points! I will need to dive deeper into the
> code to understand inner workings and connections. I have some ideas
> (and perhaps opinions about how things should be :) ), but I don't
> want to jump to them before understanding current code base.
>
> What would be a preferable channel of communication if I have a
> question about a particular method or what data structures should be
> used, etc? This is to say, mostly small questions? Is there a IRC
> chat, Slack or something similar?
if you have pharo questions and you want a fast answer: slack is full of
people willing to help :)

> Or this email list/group would be fine?
> PS. Maybe a bit of my background and why I am interested in
> SciSmalltalk/PolyMath:
>
> I'm doing my PhD in Chemical Engineering, but I was always interested
>  in programming. As a part of my PhD, I need to construct a model of
>  an industrial (mining) process. This model involves the solution of
> PDEs that do not fall into a standard CFD framework. Also, within the
> model, I would like to deal with higher level concepts: minerals,
> species, reactions, etc. and not vectors, arrays... So, FORTRAN, or C,
> or even something like MATLAB or SciLab aren't going to be sufficient.
> Another candidate is (obviously) Python with SciPy/NumPy, but being in
> academia gives one freedom to explore other alternatives and Smalltalk
> managed to fascinate me (even after Lisp).
Me too :)
I always thought it was designed for me. I did my PhD in CLOS with
metaobjects protocols but I prefer objects+closure to functions+closures :)

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Documentation (particularly for ODE solvers)

SergeStinckwich
In reply to this post by Alexey Cherkaev
On Fri, Mar 25, 2016 at 12:06 PM, Alexey Cherkaev
<[hidden email]> wrote:
> Hi Serge (and others who replied),

Hi Alexey,

> Thanks for the links and points! I will need to dive deeper into the code to
> understand inner workings and connections. I have some ideas (and perhaps
> opinions about how things should be :) ), but I don't want to jump to them
> before understanding current code base.
>
> What would be a preferable channel of communication if I have a question
> about a particular method or what data structures should be used, etc? This
> is to say, mostly small questions? Is there a IRC chat, Slack or something
> similar? Or this email list/group would be fine?
>
> PS. Maybe a bit of my background and why I am interested in
> SciSmalltalk/PolyMath:
>
> I'm doing my PhD in Chemical Engineering, but I was always interested  in
> programming. As a part of my PhD, I need to construct a model of  an
> industrial (mining) process. This model involves the solution of PDEs that
> do not fall into a standard CFD framework. Also, within the model, I would
> like to deal with higher level concepts: minerals, species, reactions, etc.
> and not vectors, arrays... So, FORTRAN, or C, or even something like MATLAB
> or SciLab aren't going to be sufficient. Another candidate is (obviously)
> Python with SciPy/NumPy, but being in academia gives one freedom to explore
> other alternatives and Smalltalk managed to fascinate me (even after Lisp).

Interesting, looks like a DSL for me.
We have done something like that epidemiology:
http://ummisco.github.io/kendrick/

--
Serge Stinckwich
UCBN & UMI UMMISCO 209 (IRD/UPMC)
Every DSL ends up being Smalltalk
http://www.doesnotunderstand.org/

--
You received this message because you are subscribed to the Google Groups "SciSmalltalk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.