The Asynchronous Leapfrog Method as a Stiff ODE Solver
The Asynchronous Leapfrog Method as a Stiff ODE Solver
The asynchronous leapfrog method together with a simple adaptive step-size control is tested with a well-known stiff initial value problem, which is a simplified model for an expanding flame ball. It describes the flame ball as going through three phases: slow growth, very fast expansion, and a final phase of constant size. No constant time step integrator can run through these phases in reasonable time and with normal 64-bit arithmetic. This can be considered a practical characterization of stiffness.
This Demonstration shows that an extremely simple integrator (explicit, second-order, only one evaluation of the right-hand side per time step) and a very simple step-size control master the challenge of running through the process with reasonable accuracy.
Three plots are provided to support this claim. The first one shows the computed solution in red and the much more accurate solution obtained from NDSolve superimposed in blue. We observe that the graphical resolution prevents us from clearly differentiating between the two solutions. The second plot shows the difference between the solutions in logarithmic representation and gives a clear picture of the integration error. The last plot shows how the time step evolves under adaptive step-size control for the method parameters as set via the second and third slider. These method parameters are explained in the Details section.
The default values are reasonable for all cases and variability is provided only for the investigative mind. The first slider is by far the most important. It controls the steepness of the expansion phase and thus, in a sense, the stiffness of the problem. In more general terms, it defines the initial value problem to be solved.