1 |
jmc |
1.1 |
% $Header: /u/gcmpack/manual/part2/time_stepping.tex,v 1.26 2006/06/29 01:45:32 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 |
|
|
\begin{figure} |
11 |
|
|
\begin{center} |
12 |
|
|
\resizebox{10cm}{!}{\includegraphics{under_dvlp/stab_AB3_oscil.eps}} |
13 |
|
|
\end{center} |
14 |
|
|
\caption{ |
15 |
|
|
Comparaison of the oscillatory response of Adams-Bashforth schemes: |
16 |
|
|
} |
17 |
|
|
\label{fig:ab_oscill_response} |
18 |
|
|
\end{figure} |
19 |
|
|
|
20 |
|
|
\begin{figure} |
21 |
|
|
\begin{center} |
22 |
|
|
\resizebox{10cm}{!}{\includegraphics{under_dvlp/stab_AB3_dampR.eps}} |
23 |
|
|
\end{center} |
24 |
|
|
\caption{ |
25 |
|
|
Comparaison of the damping (diffusion like) response of Adams-Bashforth schemes: |
26 |
|
|
} |
27 |
|
|
\label{fig:ab_damp_response} |
28 |
|
|
\end{figure} |
29 |
|
|
|
30 |
|
|
As seen on fig.\ref{fig:adams-bashforth-respons} |
31 |
|
|
The third-order Adams-Bashforth time stepping (AB-3) can be used instead |
32 |
|
|
of the default quasi-second order Adams-Bashforth (AB-2), |
33 |
|
|
with several advantages (see, e.g., \cite{durr:91}): |
34 |
|
|
\begin{itemize} |
35 |
|
|
\item higher accuracy. |
36 |
|
|
\item stable with a longer time-step (for an oscillatory problem |
37 |
|
|
like advection or corriolis, stable up to a CFL of 0.72, |
38 |
|
|
compared to only 0.50 with AB-2 and $\epsilon_{AB} = 0.1$) |
39 |
|
|
(fig.\ref{fig:ab_oscill_response}) |
40 |
|
|
\item no additional computation, but only requires to store one additional |
41 |
|
|
time level. |
42 |
|
|
\end{itemize} |
43 |
|
|
|
44 |
|
|
The extrapolation forward in time of the tendency (replacing equation |
45 |
|
|
\ref{eq:adams-bashforth2} can be written: |
46 |
|
|
\begin{equation} |
47 |
|
|
G_\tau^{(n+1/2)} = ( 1 + \alpha_{AB} + \beta_{AB}) G_\tau^n |
48 |
|
|
- ( \alpha_{AB} - 2 \beta_{AB}) G_\tau^{n-1} |
49 |
|
|
+ \beta_{AB}) G_\tau^{n-2} |
50 |
|
|
\label{eq:adams-bashforth3} |
51 |
|
|
\end{equation} |
52 |
|
|
with $(\alpha_{AB},\beta_{AB}) = (1/2, 5/12)$ corresponding to the |
53 |
|
|
3rd order AB. One can also recover |
54 |
|
|
The quasi-2nd order AB corresponds to the particular case |
55 |
|
|
$(\alpha_{AB},\beta_{AB}) = (1/2+\epsilon_{AB}, 0)$. |
56 |
|
|
|
57 |
|
|
One can also extend the stability limit |
58 |
|
|
up to a CFL of 0.786 for an oscillatory problem |
59 |
|
|
(see fig.\ref{fig:ab_oscill_response}) |
60 |
|
|
using $(\alpha_{AB},\beta_{AB}) = (0.5, 0.2811)$ |
61 |
|
|
but then the scheme is only 2nd order accurate. |
62 |
|
|
|
63 |
|
|
However, the behavior of the AB-3 for a damping problem (like diffusion) |
64 |
|
|
is less favorable, since the stability limit is reduced to |
65 |
|
|
0.54 only (and 0.64 with $\beta_{AB} = 0.2811$) compared to 1. (and 0.9 |
66 |
|
|
with $\epsilon_{AB} = 0.1$) with the AB-2 (see fig.\ref{fig:ab_damp_response}). |
67 |
|
|
|
68 |
|
|
A way to enable the use of a longer time step is |
69 |
|
|
to keep the dissipation terms ouside the AB extrapolation |
70 |
|
|
(therefore using a simple forward time-stepping) (setting |
71 |
|
|
momDissip\_In\_AB=.FALSE. in main parameter file "data", |
72 |
|
|
namelist PARM03), and use AB-3 for advection and corriolis terms. |
73 |
|
|
|
74 |
|
|
The AB-3 time stepping is activated by defining the option |
75 |
|
|
\#define ALLOW\_ADAMSBASHFORTH\_3 |
76 |
|
|
in CPP\_OPTIONS.h |
77 |
|
|
The parameters $\alpha_{AB},\beta_{AB}$ can be set from the |
78 |
|
|
main parameter file "data" (namelist "PARM03") and their |
79 |
|
|
default values correspond to the 3rd order Adams-Bashforth. |
80 |
|
|
A simple example is provided in verification/advect\_xy/input.ab3\_c4. |
81 |
|
|
|
82 |
|
|
The AB-3 is not yet available for |
83 |
|
|
the vertical momentum equation (Non-Hydrostatic) and passive |
84 |
|
|
tracers. |
85 |
|
|
|
86 |
|
|
\subsection{tracer rather than tendency time-extrapolation} |