1 |
% $Header: /u/gcmpack/manual/under_dvlp/time_stepping_dvlp.tex,v 1.2 2010/08/24 22:46:34 jmc Exp $ |
2 |
% $Name: $ |
3 |
|
4 |
\section{Other Time-stepping Options} |
5 |
%\begin{rawhtml} |
6 |
%<!-- CMIREDIR:dvlp-time-stepping: --> |
7 |
%\end{rawhtml} |
8 |
|
9 |
\subsection{Adams-Bashforth III} |
10 |
|
11 |
\begin{figure}[ht] |
12 |
\begin{center} |
13 |
\resizebox{10cm}{!}{\includegraphics{under_dvlp/stab_AB3_oscil.eps}} |
14 |
\end{center} |
15 |
\caption{ |
16 |
Comparison of the oscillatory response of Adams-Bashforth scheme. |
17 |
} |
18 |
\label{fig:ab_oscill_response} |
19 |
\end{figure} |
20 |
|
21 |
The third-order Adams-Bashforth time stepping (AB-3) provides |
22 |
several advantages (see, e.g., \cite{durr:91}) compared to |
23 |
the default quasi-second order Adams-Bashforth (AB-2): |
24 |
\begin{itemize} |
25 |
\item higher accuracy; |
26 |
\item stable with a longer time-step; |
27 |
\item no additional computation (just requires the storage of one additional |
28 |
time level). |
29 |
\end{itemize} |
30 |
|
31 |
The $3^{rd}$ order Adams-Bashforth can be used to |
32 |
extrapolate forward in time the tendency |
33 |
(replacing equation \ref{eq:adams-bashforth2}) |
34 |
which writes: |
35 |
\begin{equation} |
36 |
G_\tau^{(n+1/2)} = ( 1 + \alpha_{AB} + \beta_{AB}) G_\tau^n |
37 |
- ( \alpha_{AB} + 2 \beta_{AB}) G_\tau^{n-1} |
38 |
+ \beta_{AB} G_\tau^{n-2} |
39 |
\label{eq:adams-bashforth3} |
40 |
\end{equation} |
41 |
The 3rd order AB is obtained |
42 |
with $(\alpha_{AB},\,\beta_{AB}) = (1/2,\,5/12)$. |
43 |
Note that selecting |
44 |
$(\alpha_{AB},\,\beta_{AB}) = (1/2+\epsilon_{AB},\,0)$ |
45 |
one recovers the quasi-2nd order AB. |
46 |
%as illustrated on fig.\ref{fig:adams-bashforth-respons}. |
47 |
|
48 |
The AB-3 time stepping improves the stability limit |
49 |
for an oscillatory problem like advection or Coriolis. |
50 |
As seen from Fig.\ref{fig:ab_oscill_response}, |
51 |
it remains stable up to a CFL of 0.72, |
52 |
compared to only 0.50 with AB-2 and $\epsilon_{AB} = 0.1$. |
53 |
% |
54 |
It is interesting to note that the stability limit can be further |
55 |
extended up to a CFL of 0.786 for an oscillatory problem |
56 |
(see fig.\ref{fig:ab_oscill_response}) |
57 |
using $(\alpha_{AB},\,\beta_{AB}) = (0.5,\,0.2811)$ |
58 |
but then the scheme is only 2nd order accurate. |
59 |
|
60 |
\begin{figure}[ht] |
61 |
\begin{center} |
62 |
\resizebox{10cm}{!}{\includegraphics{under_dvlp/stab_AB3_dampR.eps}} |
63 |
\end{center} |
64 |
\caption{ |
65 |
Comparison of the damping (diffusion like) response of Adams-Bashforth schemes. |
66 |
} |
67 |
\label{fig:ab_damp_response} |
68 |
\end{figure} |
69 |
|
70 |
However, the behavior of the AB-3 for a damping problem (like diffusion) |
71 |
is less favorable, since the stability limit is reduced to |
72 |
0.54 only (and 0.64 with $\beta_{AB} = 0.2811$) compared to 1. (and 0.9 |
73 |
with $\epsilon_{AB} = 0.1$) with the AB-2 (see fig.\ref{fig:ab_damp_response}). |
74 |
|
75 |
A way to enable the use of a longer time step is |
76 |
to keep the dissipation terms outside the AB extrapolation |
77 |
(setting {\em momDissip\_In\_AB=.FALSE.} in main parameter file |
78 |
"\texttt{data}", namelist {\em PARM03}), |
79 |
thus returning to a simple forward time-stepping for dissipation, |
80 |
and to use AB-3 only for advection and Coriolis terms. |
81 |
|
82 |
The AB-3 time stepping is activated by defining the option |
83 |
{\em \#define ALLOW\_ADAMSBASHFORTH\_3} |
84 |
in "\texttt{CPP\_OPTIONS.h}". |
85 |
The parameters $\alpha_{AB},\beta_{AB}$ can be set from the |
86 |
main parameter file "\texttt{data}" (namelist {\em PARM03}) and their |
87 |
default value corresponds to the 3rd order Adams-Bashforth. |
88 |
A simple example is provided in "\texttt{verification/advect\_xy/input.ab3\_c4}". |
89 |
|
90 |
The AB-3 is not yet available for |
91 |
the vertical momentum equation (Non-Hydrostatic) |
92 |
neither for passive tracers. |
93 |
|
94 |
\subsection{Time-extrapolation of tracer (rather than tendency)} |
95 |
(to be continued ...) |