"StiffnessSwitching" Method for NDSolve
Introduction
The basic idea behind the

method is to provide an automatic means of switching between a nonstiff and a stiff solver.
The

and

options (described within
"Stiffness Detection in NDSolve") provides a useful means of detecting when a problem appears to be stiff.
The

method traps any failure code generated by

and switches to an alternative solver. The

method also uses the method specified in the

option to switch back from a stiff to a nonstiff method.

provides a powerful technique for computing highly accurate solutions using dynamic order and step size selection (see
"Extrapolation Method for NDSolve" for more details) and is therefore used as the default choice in

.
Examples
This loads some useful packages.
This selects a stiff problem and specifies a longer integration time interval than the default specified by

.
The default

base method is not appropriate for stiff problems and gives up quite quickly.
| Out[7]= |  |
Instead of giving up, the

method continues the integration with a stiff solver.
| Out[8]= |  |
The

method uses a pair of extrapolation methods as the default. The nonstiff solver uses the

base method, and the stiff solver uses the

base method.
For small values of the
AccuracyGoal and
PrecisionGoal tolerances, it is sometimes preferable to use an explicit Runge-Kutta method for the nonstiff solver.
The

method eventually gives up when the problem is considered to be stiff.
| Out[9]= |  |
This sets the

method as a submethod of

.
| Out[10]= |  |
A switch to the stiff solver occurs at

, and a plot of the step sizes used shows that the stiff solver takes much larger steps.
| Out[11]= |  |
Option Summary
| | |
| Method | {Automatic,Automatic} | specify the methods to use for the nonstiff and stiff solvers respectively |
| "NonstiffTest" | Automatic | specify the method to use for deciding whether to switch to a nonstiff solver |
Options of the method
.