Abstract: oscode solves oscillatory ordinary differential equations efficiently. It is designed to deal with equations of the form x¨(t)+2γ(t)x˙(t)+ω2(t)x(t)=0, where γ(t) and ω(t) can be given as explicit functions or sequence containers (Eigen::Vectors, arrays, std::vectors, lists) in C++ or as numpy.arrays in Python. oscode makes use of an analytic approximation of x(t) embedded in a stepping procedure to skip over long regions of oscillations, giving a reduction in computing time. The approximation is valid when the frequency changes slowly relative to the timescales of integration, it is therefore worth applying when this condition holds for at least some part of the integration range.
Credit: Agocs, Fruzsina J.; Handley, Will J.; Hobson, Mike; Lasenby, Anthony
Preferred citation method: https://ui.adsabs.harvard.edu/abs/2019arXiv190601421A