Inspired by my question regarding the computation time of NDSolve using the LSODA backend I was wondering how NDSolve is actually calling LSODA (what arguments are sent to LSODA), i.e. what are the detailed preprocessing steps done before the LSODA calls.

For example, in the post linked above I NDSolve was asked to solve system of ODEs in the time range {t, 0, 3. 10^16} . Given the fact that NDSolve returns an InterpolationFunction covering the whole t range I suspect that it decides on a temperature mesh to compute the ODEs solutions on instead of letting LSODA decide.

Does anybody have more information or is there a way to listen to the communication between Mathematica and the LSODA library?

  • 1
    $\begingroup$ I tried Trace with TraceInternal -> True but without success. $\endgroup$ – bbgodfrey Oct 4 '18 at 12:29
  • $\begingroup$ The LSODA stuff is in C (IIRC), so I don't think Trace[] will catch anything. That being said, it is a multistep method that can generate its own interpolant (a.k.a. dense output), so I guess Mathematica is exploiting that. $\endgroup$ – J. M. will be back soon Oct 4 '18 at 13:22
  • $\begingroup$ There is still the hope that a developer stumbles upon this post and provides some details. $\endgroup$ – Markus Roellig Oct 5 '18 at 12:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.