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, 2018 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$ Oct 4, 2018 at 13:22
  • $\begingroup$ There is still the hope that a developer stumbles upon this post and provides some details. $\endgroup$ Oct 5, 2018 at 12:03


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.