2.3 Time-Differencing
67
access memory (RAM) of a digital computer. If m is the number of unknowns
in cP, the Williamson-Runge-Kutta scheme economizes on storage by allowing
the integration to proceed using only 2m storage locations, divided between the
arrays q and cP, which are overwritten three times during each integration step.
The storage requirement of the Williamson-Runge-Kutta scheme is identical to
that of forward time-differencing and the standard leapfrog scheme, and is less
than that required for the Asselin-filtered leapfrog scheme.
Finite-difference formulae for several time-differencing schemes are summarized in Table 2.1. Although it is not apparent from their most common names,
most of the schemes shown in Table 2.1 are either Adams-Bashforth, AdamsMoulton, or Runge-Kutta schemes. Adams-Bashforth schemes are explicit multilevel methods whose first-order variant is the forward difference. Adams-Moulton
methods are implicit multilevel methods that include backward and trapezoidal
differencing as their first- and second-order representatives. One way to approximate the solution of the implicit algebraic equations generated by an AdamsMoulton method is to estimate cP n +I using an Adams-Bashforth scheme and
then substitute this estimate into the Adams-Moulton formula. The third-order
Adams-Bashforth-Moulton corrector is listed in Table 2.1. The particular secondorder Runge-Kutta scheme appearing in Table 2.1 is also the second-order AdamsBashforth-Moulton predictor corrector.
Several important properties of the schemes listed in Table 2.1 are given in
Table 2.2. The column labeled "storage factor" indicates the number of full arrays that must be allocated for each unknown variable in order to implement each
scheme. Storage factors are not provided for the implicit methods listed in Table 2.2 because the storage factor for implicit methods can vary from problem to
problem, depending on the numerical algorithm used to solve the implicit system.
Inspection of Table 2.2 clearly reveals the low-storage advantage of the thirdorder Runge-Kutta scheme. This advantage may, however, be slightly exaggerated, since the storage factors listed in Table 2.2 are upper limits that allow each
method to be programmed in a completely straightforward manner. In many instances, it is possible to utilize less memory than that suggested by the storage
factor if newly computed quantities are initially placed in a small, temporary storage array. As an example, when integrating a partial differential equation with
forward time differencing, it is not generally possible to write the newly computed cP'tI directly into the storage occupied by cP'j, because cP' j may be required
for the computation of cPitf . However, at some point in the integration cycle, cP' j
will no longer be needed, and at that stage it may be overwritten by cP'!+I . During
/
J
the interim between the calculation of cPi+I and the last use of cP'j, cPrI may be
held in a temporary storage array. In many applications, the temporary storage
array can be much smaller than the full array required to hold a complete set of
cP n , and use of such a temporary array will reduce the storage factor by almost one
unit.
In applications where storage is not a problem, the third-order Adams-Bashforth
scheme
67
access memory (RAM) of a digital computer. If m is the number of unknowns
in cP, the Williamson-Runge-Kutta scheme economizes on storage by allowing
the integration to proceed using only 2m storage locations, divided between the
arrays q and cP, which are overwritten three times during each integration step.
The storage requirement of the Williamson-Runge-Kutta scheme is identical to
that of forward time-differencing and the standard leapfrog scheme, and is less
than that required for the Asselin-filtered leapfrog scheme.
Finite-difference formulae for several time-differencing schemes are summarized in Table 2.1. Although it is not apparent from their most common names,
most of the schemes shown in Table 2.1 are either Adams-Bashforth, AdamsMoulton, or Runge-Kutta schemes. Adams-Bashforth schemes are explicit multilevel methods whose first-order variant is the forward difference. Adams-Moulton
methods are implicit multilevel methods that include backward and trapezoidal
differencing as their first- and second-order representatives. One way to approximate the solution of the implicit algebraic equations generated by an AdamsMoulton method is to estimate cP n +I using an Adams-Bashforth scheme and
then substitute this estimate into the Adams-Moulton formula. The third-order
Adams-Bashforth-Moulton corrector is listed in Table 2.1. The particular secondorder Runge-Kutta scheme appearing in Table 2.1 is also the second-order AdamsBashforth-Moulton predictor corrector.
Several important properties of the schemes listed in Table 2.1 are given in
Table 2.2. The column labeled "storage factor" indicates the number of full arrays that must be allocated for each unknown variable in order to implement each
scheme. Storage factors are not provided for the implicit methods listed in Table 2.2 because the storage factor for implicit methods can vary from problem to
problem, depending on the numerical algorithm used to solve the implicit system.
Inspection of Table 2.2 clearly reveals the low-storage advantage of the thirdorder Runge-Kutta scheme. This advantage may, however, be slightly exaggerated, since the storage factors listed in Table 2.2 are upper limits that allow each
method to be programmed in a completely straightforward manner. In many instances, it is possible to utilize less memory than that suggested by the storage
factor if newly computed quantities are initially placed in a small, temporary storage array. As an example, when integrating a partial differential equation with
forward time differencing, it is not generally possible to write the newly computed cP'tI directly into the storage occupied by cP'j, because cP' j may be required
for the computation of cPitf . However, at some point in the integration cycle, cP' j
will no longer be needed, and at that stage it may be overwritten by cP'!+I . During
/
J
the interim between the calculation of cPi+I and the last use of cP'j, cPrI may be
held in a temporary storage array. In many applications, the temporary storage
array can be much smaller than the full array required to hold a complete set of
cP n , and use of such a temporary array will reduce the storage factor by almost one
unit.
In applications where storage is not a problem, the third-order Adams-Bashforth
scheme
