mbd-astro / forest

Fast open-source software toolkit for numerical integration in orbital environments, and is easily incorporated into existing projects with seamless Python and Matlab support
BSD 3-Clause "New" or "Revised" License
5 stars 1 forks source link

Select which Boost ODE methods to initially support #3

Open nicklafarge opened 1 year ago

rjpower4 commented 1 year ago

For reference, the boost Steppers are:

Additionally they have controlled and dense output forms of these.

rjpower4 commented 1 year ago

Do we plan on requiring Boost or do we want to allow use of other packages such as SUNDIALS... 😅

nicklafarge commented 1 year ago

I'm definitely interested in exploring other options. The "choice" of boost so far is an inherited one from prior work, not for any specific reason. I guess we need to learn enough about what options are out there to make an informed choice as to which one is "best" for our project - or if there is a use case for supporting more than one. Some considerations that go along with any potential choices are understanding licensing, minimum supported c++ versions, and perhaps (eventually) benchmarks to see if there is a speed increase.

Exploring other underlying integration implementations is could also be a 2.0 task. Maybe we should prioritize getting the project up and running with boost, and then later revisit that choice and evaluate how we might improve it

rjpower4 commented 1 year ago

I think that sticking to boost at this point is a good call, but I think that we should try to design an abstraction around the integrator.

nicklafarge commented 1 year ago

That sounds good. The current prototype has some repeated code anyway in that regard for converging events, so a degree of abstraction there would be helpful regardless of what other options we pursue

nicklafarge commented 1 year ago

@rjpower4 I'm guessing you know a ton more about these options off the cuff than I do, so I'm wondering what insight you may have about them. I currently use Runge-Kutta-Fehlberg 78 exclusively. What sorts of motivations are there for the others? I think maybe, for now, we should have specific reasons for whichever ones we choose to initially support.