Dense output for highly oscillatory numerical solutions

9 Jul 2020  ·  F. J. Agocs, M. P. Hobson, W. J. Handley, A. N. Lasenby ·

We present a method to construct a continuous extension (otherwise known as dense output) for a numerical routine in the special case of the numerical solution being a scalar-valued function exhibiting rapid oscillations. Such cases call for numerical routines that make use of the known global behaviour of the solution, one example being methods using asymptotic expansions to forecast the solution at each step of the independent variable. An example is oscode, numerical routine which uses the Wentzel-Kramers-Brillouin (WKB) approximation when the solution oscillates rapidly and otherwise behaves as a Runge-Kutta (RK) solver. Polynomial interpolation is not suitable for producing the solution at an arbitrary point mid-step, since efficient numerical methods based on the WKB approximation will step through multiple oscillations in a single step. Instead we construct the continuous solution by extending the numerical quadrature used in computing a WKB approximation of the solution with no additional evaluations of the differential equation or terms within, and provide an error estimate on this dense output. Finally, we draw attention to previous work on the continuous extension of Runge-Kutta formulae, and construct an extension to a RK method based on Gauss--Lobatto quadrature nodes, thus describing how to generate dense output from each of the methods underlying oscode.

PDF Abstract

Categories


Computational Physics Instrumentation and Methods for Astrophysics