
-------- Original Message -------- Subject: ODEInt review Date: Wed, 26 Sep 2012 11:48:18 -0400 From: Reese, Greg Dr. <greg.reese@miamioh.edu> To: watanabesj@gmail.com <watanabesj@gmail.com> CC: Reese, Greg Dr. <greg.reese@miamioh.edu> Please always state in your review, whether you think the library should be accepted as a Boost library! Absolutely! - What is your evaluation of the design? Good. Good use of policies Is it necessary to set an initial step size on the adaptive integrators? Shouldn't they be able to figure this out on their own? If the size is needed, maybe it could have a default value so the user doesn't have to pass the argument. - What is your evaluation of the implementation? Appears to be good but I didn't look at code in detail. - What is your evaluation of the documentation? Excellent! Probably the best documentation of any Boost library. Suggestions: 1) Add general explanation of "observers", e.g., what they do, sample uses. 2) In documentation of example programs, add plots of outputs. These help users decide if the program ran correctly and if they're interpreting the outputs correctly - What is your evaluation of the potential usefulness of the library? Extremely useful to C++ programmers who want to incorporate ODE solutions into their code - Did you try to use the library? With what compiler? Did you have any problems? Used Microsoft Visual C++ 2012. No problems. - How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? 2-3 hours. Read through documentation, ran a number of sample programs - Are you knowledgeable about the problem domain? Yes Suggestion for future (not current!) version - add capability for user routines to stop the Integration process. This is useful for breaking out of periodic solutions, for stopping the computations if the solution attains meaningless values, and for limiting the amount of running time. See, for example, "Event Location" at http://www.mathworks.com/help/matlab/math/ordinary-differential-equations.ht... Perhaps this capability can be incorporated into the observers. Greg Reese

On Tue, 02 Oct 2012 11:15:33 -0700 Steven Watanabe <watanabesj@gmail.com> wrote:
-------- Original Message -------- Subject: ODEInt review Date: Wed, 26 Sep 2012 11:48:18 -0400 From: Reese, Greg Dr. <greg.reese@miamioh.edu> To: watanabesj@gmail.com <watanabesj@gmail.com> CC: Reese, Greg Dr. <greg.reese@miamioh.edu>
Please always state in your review, whether you think the library should be accepted as a Boost library!
Absolutely!
- What is your evaluation of the design?
Good. Good use of policies
Is it necessary to set an initial step size on the adaptive integrators? Shouldn't they be able to
figure this out on their own? If the size is needed, maybe it could have a default value so the
user doesn't have to pass the argument.
- What is your evaluation of the implementation?
Appears to be good but I didn't look at code in detail.
- What is your evaluation of the documentation?
Excellent! Probably the best documentation of any Boost library.
Suggestions:
1) Add general explanation of "observers", e.g., what they do, sample uses.
2) In documentation of example programs, add plots of outputs. These help users decide
if the program ran correctly and if they're interpreting the outputs correctly
- What is your evaluation of the potential usefulness of the library?
Extremely useful to C++ programmers who want to incorporate ODE solutions into their code
- Did you try to use the library? With what compiler? Did you have any problems?
Used Microsoft Visual C++ 2012. No problems.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
2-3 hours. Read through documentation, ran a number of sample programs
- Are you knowledgeable about the problem domain?
Yes
Suggestion for future (not current!) version - add capability for user routines to stop the
Integration process. This is useful for breaking out of periodic solutions, for stopping
the computations if the solution attains meaningless values, and for limiting the amount
of running time. See, for example, "Event Location" at http://www.mathworks.com/help/matlab/math/ordinary-differential-equations.ht...
Perhaps this capability can be incorporated into the observers.
Out of curiosity, why is this not possible now by throwing an exception from the observer (or the RHS evaluation)? -Hal
Greg Reese
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory

On 10/02/2012 08:46 PM, Hal Finkel wrote:
On Tue, 02 Oct 2012 11:15:33 -0700 Steven Watanabe <watanabesj@gmail.com> wrote:
-------- Original Message -------- Subject: ODEInt review Date: Wed, 26 Sep 2012 11:48:18 -0400 From: Reese, Greg Dr. <greg.reese@miamioh.edu> To: watanabesj@gmail.com <watanabesj@gmail.com> CC: Reese, Greg Dr. <greg.reese@miamioh.edu>
Please always state in your review, whether you think the library should be accepted as a Boost library!
Absolutely!
- What is your evaluation of the design?
Good. Good use of policies
Is it necessary to set an initial step size on the adaptive integrators? Shouldn't they be able to
figure this out on their own? If the size is needed, maybe it could have a default value so the
user doesn't have to pass the argument.
- What is your evaluation of the implementation?
Appears to be good but I didn't look at code in detail.
- What is your evaluation of the documentation?
Excellent! Probably the best documentation of any Boost library.
Suggestions:
1) Add general explanation of "observers", e.g., what they do, sample uses.
2) In documentation of example programs, add plots of outputs. These help users decide
if the program ran correctly and if they're interpreting the outputs correctly
- What is your evaluation of the potential usefulness of the library?
Extremely useful to C++ programmers who want to incorporate ODE solutions into their code
- Did you try to use the library? With what compiler? Did you have any problems?
Used Microsoft Visual C++ 2012. No problems.
- How much effort did you put into your evaluation? A glance? A quick reading? In-depth study?
2-3 hours. Read through documentation, ran a number of sample programs
- Are you knowledgeable about the problem domain?
Yes
Suggestion for future (not current!) version - add capability for user routines to stop the
Integration process. This is useful for breaking out of periodic solutions, for stopping
the computations if the solution attains meaningless values, and for limiting the amount
of running time. See, for example, "Event Location" at http://www.mathworks.com/help/matlab/math/ordinary-differential-equations.ht...
Perhaps this capability can be incorporated into the observers.
Out of curiosity, why is this not possible now by throwing an exception from the observer (or the RHS evaluation)?
In principle this can be done with exception. But I am a bit curious if this is the right way. For me an exception is something which indicates an error or something unwanted. Here, you expect that some event will happen and you know in principle how to deal with it. But maybe this is only my opinion.
-Hal
Greg Reese
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Hi Freg, thank you for your review- On 10/02/2012 08:15 PM, Steven Watanabe wrote:
-------- Original Message -------- Subject: ODEInt review Date: Wed, 26 Sep 2012 11:48:18 -0400 From: Reese, Greg Dr. <greg.reese@miamioh.edu> To: watanabesj@gmail.com <watanabesj@gmail.com> CC: Reese, Greg Dr. <greg.reese@miamioh.edu>
Please always state in your review, whether you think the library should be accepted as a Boost library!
Absolutely!
- What is your evaluation of the design?
Good. Good use of policies
Is it necessary to set an initial step size on the adaptive integrators? Shouldn't they be able to
figure this out on their own? If the size is needed, maybe it could have a default value so the
user doesn't have to pass the argument.
In principle you are right. But I think an initial guess for the step size is not such a bad idea. (There are methods for choosing an initial guess of the step size). If the step size is to large it will simply we decreased.
- What is your evaluation of the documentation?
Excellent! Probably the best documentation of any Boost library.
Thank you.
Suggestions:
1) Add general explanation of "observers", e.g., what they do, sample uses.
Ok, good point. We had initially a concept section for observer, but it is not a real concept. We can introduce
2) In documentation of example programs, add plots of outputs. These help users decide
if the program ran correctly and if they're interpreting the outputs correctly
Ok, also good point. I will put this on our todo list.
[snip]
Suggestion for future (not current!) version - add capability for user routines to stop the
Integration process. This is useful for breaking out of periodic solutions, for stopping
the computations if the solution attains meaningless values, and for limiting the amount
of running time. See, for example, "Event Location" at http://www.mathworks.com/help/matlab/math/ordinary-differential-equations.ht...
Right, there was a question some minutes ago on the boost users list about the same topic. I think we will think about a feature like this. In the mean time you can use the iterators or range of odeint in combination with a find_if boost::find_if( make_const_step_range( stepper , sys , state , t_start , t_end , dt ) , []( const state_type &x ) { // your break condition } );
participants (3)
-
Hal Finkel
-
Karsten Ahnert
-
Steven Watanabe