/[MITgcm]/manual/s_algorithm/text/time_stepping.tex
ViewVC logotype

Diff of /manual/s_algorithm/text/time_stepping.tex

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.23 by edhill, Tue Jun 27 22:29:56 2006 UTC revision 1.28 by jmc, Mon Aug 30 23:09:19 2010 UTC
# Line 10  describe the spatial discretization. The Line 10  describe the spatial discretization. The
10  terms are described first, afterwards the schemes that apply to  terms are described first, afterwards the schemes that apply to
11  passive and dynamically active tracers are described.  passive and dynamically active tracers are described.
12    
13  \input{part2/notation}  \input{s_algorithm/text/notation}
14    
15  \section{Time-stepping}  \section{Time-stepping}
16    \label{sec:time_stepping}
17  \begin{rawhtml}  \begin{rawhtml}
18  <!-- CMIREDIR:time-stepping: -->  <!-- CMIREDIR:time-stepping: -->
19  \end{rawhtml}  \end{rawhtml}
# Line 50  evaluated explicitly in time. Since the Line 51  evaluated explicitly in time. Since the
51  independent of the particular time-stepping scheme chosen we will  independent of the particular time-stepping scheme chosen we will
52  describe first the over-arching algorithm, known as the pressure  describe first the over-arching algorithm, known as the pressure
53  method, with a rigid-lid model in section  method, with a rigid-lid model in section
54  \ref{sect:pressure-method-rigid-lid}. This algorithm is essentially  \ref{sec:pressure-method-rigid-lid}. This algorithm is essentially
55  unchanged, apart for some coefficients, when the rigid lid assumption  unchanged, apart for some coefficients, when the rigid lid assumption
56  is replaced with a linearized implicit free-surface, described in  is replaced with a linearized implicit free-surface, described in
57  section \ref{sect:pressure-method-linear-backward}. These two flavors  section \ref{sec:pressure-method-linear-backward}. These two flavors
58  of the pressure-method encompass all formulations of the model as it  of the pressure-method encompass all formulations of the model as it
59  exists today. The integration of explicit in time terms is out-lined  exists today. The integration of explicit in time terms is out-lined
60  in section \ref{sect:adams-bashforth} and put into the context of the  in section \ref{sec:adams-bashforth} and put into the context of the
61  overall algorithm in sections \ref{sect:adams-bashforth-sync} and  overall algorithm in sections \ref{sec:adams-bashforth-sync} and
62  \ref{sect:adams-bashforth-staggered}. Inclusion of non-hydrostatic  \ref{sec:adams-bashforth-staggered}. Inclusion of non-hydrostatic
63  terms requires applying the pressure method in three dimensions  terms requires applying the pressure method in three dimensions
64  instead of two and this algorithm modification is described in section  instead of two and this algorithm modification is described in section
65  \ref{sect:non-hydrostatic}. Finally, the free-surface equation may be  \ref{sec:non-hydrostatic}. Finally, the free-surface equation may be
66  treated more exactly, including non-linear terms, and this is  treated more exactly, including non-linear terms, and this is
67  described in section \ref{sect:nonlinear-freesurface}.  described in section \ref{sec:nonlinear-freesurface}.
68    
69    
70  \section{Pressure method with rigid-lid}  \section{Pressure method with rigid-lid}
71  \label{sect:pressure-method-rigid-lid}  \label{sec:pressure-method-rigid-lid}
72  \begin{rawhtml}  \begin{rawhtml}
73  <!-- CMIREDIR:pressure_method_rigid_lid: -->  <!-- CMIREDIR:pressure_method_rigid_lid: -->
74  \end{rawhtml}  \end{rawhtml}
75    
76  \begin{figure}  \begin{figure}
77  \begin{center}  \begin{center}
78  \resizebox{4.0in}{!}{\includegraphics{part2/pressure-method-rigid-lid.eps}}  \resizebox{4.0in}{!}{\includegraphics{s_algorithm/figs/pressure-method-rigid-lid.eps}}
79  \end{center}  \end{center}
80  \caption{  \caption{
81  A schematic of the evolution in time of the pressure method  A schematic of the evolution in time of the pressure method
# Line 198  The calling tree for these routines is g Line 199  The calling tree for these routines is g
199  Fig.~\ref{fig:call-tree-pressure-method}.  Fig.~\ref{fig:call-tree-pressure-method}.
200    
201    
202    %\paragraph{Need to discuss implicit viscosity somewhere:}
203  \paragraph{Need to discuss implicit viscosity somewhere:}  In general, the horizontal momentum time-stepping can contain some terms
204    that are treated implicitly in time,
205    such as the vertical viscosity when using the backward time-stepping scheme
206    (\varlink{implicitViscosity}{implicitViscosity} {\it =.TRUE.}).
207    The method used to solve those implicit terms is provided in
208    section \ref{sec:implicit-backward-stepping}, and modifies
209    equations \ref{eq:discrete-time-u} and \ref{eq:discrete-time-v} to
210    give:
211  \begin{eqnarray}  \begin{eqnarray}
212  \frac{1}{\Delta t} u^{n+1} - \partial_z A_v \partial_z u^{n+1}  u^{n+1} - \Delta t \partial_z A_v \partial_z u^{n+1}
213  + g \partial_x \eta^{n+1} & = & \frac{1}{\Delta t} u^{n} +  + \Delta t g \partial_x \eta^{n+1} & = & u^{n} + \Delta t G_u^{(n+1/2)}
 G_u^{(n+1/2)}  
214  \\  \\
215  \frac{1}{\Delta t} v^{n+1} - \partial_z A_v \partial_z v^{n+1}  v^{n+1} - \Delta t \partial_z A_v \partial_z v^{n+1}
216  + g \partial_y \eta^{n+1} & = & \frac{1}{\Delta t} v^{n} + G_v^{(n+1/2)}  + \Delta t g \partial_y \eta^{n+1} & = & v^{n} + \Delta t G_v^{(n+1/2)}
217  \end{eqnarray}  \end{eqnarray}
218    
219    
220  \section{Pressure method with implicit linear free-surface}  \section{Pressure method with implicit linear free-surface}
221  \label{sect:pressure-method-linear-backward}  \label{sec:pressure-method-linear-backward}
222  \begin{rawhtml}  \begin{rawhtml}
223  <!-- CMIREDIR:pressure_method_linear_backward: -->  <!-- CMIREDIR:pressure_method_linear_backward: -->
224  \end{rawhtml}  \end{rawhtml}
# Line 245  pressure method is then replaced by the Line 252  pressure method is then replaced by the
252  \label{eq:discrete-time-backward-free-surface}  \label{eq:discrete-time-backward-free-surface}
253  \end{equation}  \end{equation}
254  where the use of flow at time level $n+1$ makes the method implicit  where the use of flow at time level $n+1$ makes the method implicit
255  and backward in time. The is the preferred scheme since it still  and backward in time. This is the preferred scheme since it still
256  filters the fast unresolved wave motions by damping them. A centered  filters the fast unresolved wave motions by damping them. A centered
257  scheme, such as Crank-Nicholson, would alias the energy of the fast  scheme, such as Crank-Nicholson (see section \ref{sec:freesurf-CrankNick}),
258  modes onto slower modes of motion.  would alias the energy of the fast modes onto slower modes of motion.
259    
260  As for the rigid-lid pressure method, equations  As for the rigid-lid pressure method, equations
261  \ref{eq:discrete-time-u}, \ref{eq:discrete-time-v} and  \ref{eq:discrete-time-u}, \ref{eq:discrete-time-v} and
# Line 279  recovered. However, the implicit treatme Line 286  recovered. However, the implicit treatme
286  the flow to be divergent and for the surface pressure/elevation to  the flow to be divergent and for the surface pressure/elevation to
287  respond on a finite time-scale (as opposed to instantly). To recover  respond on a finite time-scale (as opposed to instantly). To recover
288  the rigid-lid formulation, we introduced a switch-like parameter,  the rigid-lid formulation, we introduced a switch-like parameter,
289  $\epsilon_{fs}$, which selects between the free-surface and rigid-lid;  $\epsilon_{fs}$ (\varlink{freesurfFac}{freesurfFac}),
290    which selects between the free-surface and rigid-lid;
291  $\epsilon_{fs}=1$ allows the free-surface to evolve; $\epsilon_{fs}=0$  $\epsilon_{fs}=1$ allows the free-surface to evolve; $\epsilon_{fs}=0$
292  imposes the rigid-lid. The evolution in time and location of variables  imposes the rigid-lid. The evolution in time and location of variables
293  is exactly as it was for the rigid-lid model so that  is exactly as it was for the rigid-lid model so that
# Line 290  pressure-method. Line 298  pressure-method.
298    
299    
300  \section{Explicit time-stepping: Adams-Bashforth}  \section{Explicit time-stepping: Adams-Bashforth}
301  \label{sect:adams-bashforth}  \label{sec:adams-bashforth}
302  \begin{rawhtml}  \begin{rawhtml}
303  <!-- CMIREDIR:adams_bashforth: -->  <!-- CMIREDIR:adams_bashforth: -->
304  \end{rawhtml}  \end{rawhtml}
# Line 300  time discretization of the explicit term Line 308  time discretization of the explicit term
308  the quasi-second order Adams-Bashforth method for all explicit terms  the quasi-second order Adams-Bashforth method for all explicit terms
309  in both the momentum and tracer equations. This is still the default  in both the momentum and tracer equations. This is still the default
310  mode of operation but it is now possible to use alternate schemes for  mode of operation but it is now possible to use alternate schemes for
311  tracers (see section \ref{sect:tracer-advection}).  tracers (see section \ref{sec:tracer-advection}).
312    
313  \begin{figure}  \begin{figure}
314  \begin{center} \fbox{ \begin{minipage}{4.5in} \begin{tabbing}  \begin{center} \fbox{ \begin{minipage}{4.5in} \begin{tabbing}
# Line 317  FORWARD\_STEP \\ Line 325  FORWARD\_STEP \\
325  \end{tabbing} \end{minipage} } \end{center}  \end{tabbing} \end{minipage} } \end{center}
326  \caption{  \caption{
327  Calling tree for the Adams-Bashforth time-stepping of temperature with  Calling tree for the Adams-Bashforth time-stepping of temperature with
328  implicit diffusion.}  implicit diffusion.
329      (\filelink{THERMODYNAMICS}{model-src-thermodynamics.F},
330       \filelink{ADAMS\_BASHFORTH2}{model-src-adams_bashforth2.F})}
331  \label{fig:call-tree-adams-bashforth}  \label{fig:call-tree-adams-bashforth}
332  \end{figure}  \end{figure}
333    
# Line 348  simpler to include these terms and this Line 358  simpler to include these terms and this
358  and forcing evolves smoothly. Problems can, and do, arise when forcing  and forcing evolves smoothly. Problems can, and do, arise when forcing
359  or motions are high frequency and this corresponds to a reduced  or motions are high frequency and this corresponds to a reduced
360  stability compared to a simple forward time-stepping of such terms.  stability compared to a simple forward time-stepping of such terms.
361  The model offers the possibility to leave the forcing term outside the  The model offers the possibility to leave the tracer and momentum
362  Adams-Bashforth extrapolation, by turning off the logical flag  forcing terms and the dissipation terms outside the
363  {\bf forcing\_In\_AB } (parameter file {\em data}, namelist {\em PARM01},  Adams-Bashforth extrapolation, by turning off the logical flags
364  default value = True).  \varlink{forcing\_In\_AB}{forcing_In_AB}
365    (parameter file {\em data}, namelist {\em PARM01}, default value = True).
366    (\varlink{tracForcingOutAB}{tracForcingOutAB}, default=0,
367    \varlink{momForcingOutAB}{momForcingOutAB}, default=0)
368    and \varlink{momDissip\_In\_AB}{momDissip_In_AB}
369    (parameter file {\em data}, namelist {\em PARM01}, default value = True).
370    respectively.
371    
372  A stability analysis for an oscillation equation should be given at this point.  A stability analysis for an oscillation equation should be given at this point.
373  \marginpar{AJA needs to find his notes on this...}  \marginpar{AJA needs to find his notes on this...}
# Line 359  A stability analysis for an oscillation Line 375  A stability analysis for an oscillation
375  A stability analysis for a relaxation equation should be given at this point.  A stability analysis for a relaxation equation should be given at this point.
376  \marginpar{...and for this too.}  \marginpar{...and for this too.}
377    
378    \begin{figure}
379    \begin{center}
380    \resizebox{5.5in}{!}{\includegraphics{s_algorithm/figs/oscil+damp_AB2.eps}}
381    \end{center}
382    \caption{
383    Oscillatory and damping response of
384    quasi-second order Adams-Bashforth scheme for different values
385    of the $\epsilon_{AB}$ parameter (0., 0.1, 0.25, from top to bottom)
386    The analytical solution (in black), the physical mode (in blue)
387    and the numerical mode (in red) are represented with a CFL
388    step of 0.1.
389    The left column represents the oscillatory response
390    on the complex plane for CFL ranging from 0.1 up to 0.9.
391    The right column represents the damping response amplitude
392    (y-axis) function of the CFL (x-axis).
393    }
394    \label{fig:adams-bashforth-respons}
395    \end{figure}
396    
397    
398    
399  \section{Implicit time-stepping: backward method}  \section{Implicit time-stepping: backward method}
400    \label{sec:implicit-backward-stepping}
401  \begin{rawhtml}  \begin{rawhtml}
402  <!-- CMIREDIR:implicit_time-stepping_backward: -->  <!-- CMIREDIR:implicit_time-stepping_backward: -->
403  \end{rawhtml}  \end{rawhtml}
# Line 408  unconditionally stable, no-slip boundary Line 445  unconditionally stable, no-slip boundary
445  implicit and are thus cast as a an explicit drag term.  implicit and are thus cast as a an explicit drag term.
446    
447  \section{Synchronous time-stepping: variables co-located in time}  \section{Synchronous time-stepping: variables co-located in time}
448  \label{sect:adams-bashforth-sync}  \label{sec:adams-bashforth-sync}
449  \begin{rawhtml}  \begin{rawhtml}
450  <!-- CMIREDIR:adams_bashforth_sync: -->  <!-- CMIREDIR:adams_bashforth_sync: -->
451  \end{rawhtml}  \end{rawhtml}
452    
453  \begin{figure}  \begin{figure}
454  \begin{center}  \begin{center}
455  \resizebox{5.0in}{!}{\includegraphics{part2/adams-bashforth-sync.eps}}  \resizebox{5.0in}{!}{\includegraphics{s_algorithm/figs/adams-bashforth-sync.eps}}
456  \end{center}  \end{center}
457  \caption{  \caption{
458  A schematic of the explicit Adams-Bashforth and implicit time-stepping  A schematic of the explicit Adams-Bashforth and implicit time-stepping
# Line 528  time-step. The corresponding calling tre Line 565  time-step. The corresponding calling tre
565  \ref{fig:call-tree-adams-bashforth-sync}.  \ref{fig:call-tree-adams-bashforth-sync}.
566    
567  \section{Staggered baroclinic time-stepping}  \section{Staggered baroclinic time-stepping}
568  \label{sect:adams-bashforth-staggered}  \label{sec:adams-bashforth-staggered}
569  \begin{rawhtml}  \begin{rawhtml}
570  <!-- CMIREDIR:adams_bashforth_staggered: -->  <!-- CMIREDIR:adams_bashforth_staggered: -->
571  \end{rawhtml}  \end{rawhtml}
572    
573  \begin{figure}  \begin{figure}
574  \begin{center}  \begin{center}
575  \resizebox{5.5in}{!}{\includegraphics{part2/adams-bashforth-staggered.eps}}  \resizebox{5.5in}{!}{\includegraphics{s_algorithm/figs/adams-bashforth-staggered.eps}}
576  \end{center}  \end{center}
577  \caption{  \caption{
578  A schematic of the explicit Adams-Bashforth and implicit time-stepping  A schematic of the explicit Adams-Bashforth and implicit time-stepping
# Line 673  time-level variables and terms correspon Line 710  time-level variables and terms correspon
710    
711    
712  \section{Non-hydrostatic formulation}  \section{Non-hydrostatic formulation}
713  \label{sect:non-hydrostatic}  \label{sec:non-hydrostatic}
714  \begin{rawhtml}  \begin{rawhtml}
715  <!-- CMIREDIR:non-hydrostatic_formulation: -->  <!-- CMIREDIR:non-hydrostatic_formulation: -->
716  \end{rawhtml}  \end{rawhtml}
# Line 692  The momentum equations are discretized i Line 729  The momentum equations are discretized i
729  \frac{1}{\Delta t} v^{n+1} + g \partial_y \eta^{n+1} + \partial_y \phi_{nh}^{n+1}  \frac{1}{\Delta t} v^{n+1} + g \partial_y \eta^{n+1} + \partial_y \phi_{nh}^{n+1}
730  & = & \frac{1}{\Delta t} v^{n} + G_v^{(n+1/2)} \label{eq:discrete-time-v-nh} \\  & = & \frac{1}{\Delta t} v^{n} + G_v^{(n+1/2)} \label{eq:discrete-time-v-nh} \\
731  \frac{1}{\Delta t} w^{n+1} + \partial_r \phi_{nh}^{n+1}  \frac{1}{\Delta t} w^{n+1} + \partial_r \phi_{nh}^{n+1}
732  & = & \frac{1}{\Delta t} w^{n} + G_w^{(n+1/2)} \label{eq:discrete-time-w-nh} \\  & = & \frac{1}{\Delta t} w^{n} + G_w^{(n+1/2)} \label{eq:discrete-time-w-nh}
733  \end{eqnarray}  \end{eqnarray}
734  which must satisfy the discrete-in-time depth integrated continuity,  which must satisfy the discrete-in-time depth integrated continuity,
735  equation~\ref{eq:discrete-time-backward-free-surface} and the local continuity equation  equation~\ref{eq:discrete-time-backward-free-surface} and the local continuity equation
# Line 765  u^{**} & = & u^{*} - \Delta t g \partial Line 802  u^{**} & = & u^{*} - \Delta t g \partial
802  v^{**} & = & v^{*} - \Delta t g \partial_y \eta^{n+1} \label{eq:vnx-nh}\\  v^{**} & = & v^{*} - \Delta t g \partial_y \eta^{n+1} \label{eq:vnx-nh}\\
803  \partial_{xx} \phi_{nh}^{n+1} + \partial_{yy} \phi_{nh}^{n+1} +  \partial_{xx} \phi_{nh}^{n+1} + \partial_{yy} \phi_{nh}^{n+1} +
804  \partial_{rr} \phi_{nh}^{n+1} & = &  \partial_{rr} \phi_{nh}^{n+1} & = &
805  \partial_x u^{**} + \partial_y v^{**} + \partial_r w^{*} \\  \partial_x u^{**} + \partial_y v^{**} + \partial_r w^{*}  \label{eq:phi-nh}\\
806  u^{n+1} & = & u^{**} - \Delta t \partial_x \phi_{nh}^{n+1} \label{eq:un+1-nh}\\  u^{n+1} & = & u^{**} - \Delta t \partial_x \phi_{nh}^{n+1} \label{eq:un+1-nh}\\
807  v^{n+1} & = & v^{**} - \Delta t \partial_y \phi_{nh}^{n+1} \label{eq:vn+1-nh}\\  v^{n+1} & = & v^{**} - \Delta t \partial_y \phi_{nh}^{n+1} \label{eq:vn+1-nh}\\
808  \partial_r w^{n+1} & = & - \partial_x u^{n+1} - \partial_y v^{n+1}  \partial_r w^{n+1} & = & - \partial_x u^{n+1} - \partial_y v^{n+1}
# Line 776  $w^{n+1}$. Line 813  $w^{n+1}$.
813    
814    
815  \section{Variants on the Free Surface}  \section{Variants on the Free Surface}
816  \label{sect:free-surface}  \label{sec:free-surface}
817    
818  We now describe the various formulations of the free-surface that  We now describe the various formulations of the free-surface that
819  include non-linear forms, implicit in time using Crank-Nicholson,  include non-linear forms, implicit in time using Crank-Nicholson,
# Line 796  where Line 833  where
833  \begin{eqnarray}  \begin{eqnarray}
834  {\eta}^* = \epsilon_{fs} \: {\eta}^{n} -  {\eta}^* = \epsilon_{fs} \: {\eta}^{n} -
835  \Delta t {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o} \vec{\bf v}^* dr  \Delta t {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o} \vec{\bf v}^* dr
836  \: + \: \epsilon_{fw} \Delta_t (P-E)^{n}  \: + \: \epsilon_{fw} \Delta t (P-E)^{n}
837  \label{eq-solve2D_rhs}  \label{eq-solve2D_rhs}
838  \end{eqnarray}  \end{eqnarray}
839    
840  \fbox{ \begin{minipage}{4.75in}  \fbox{ \begin{minipage}{4.75in}
841  {\em S/R SOLVE\_FOR\_PRESSURE} ({\em solve\_for\_pressure.F})  {\em S/R SOLVE\_FOR\_PRESSURE} ({\em solve\_for\_pressure.F})
842    
843  $u^*$: {\bf GuNm1} ({\em DYNVARS.h})  $u^*$: {\bf gU} ({\em DYNVARS.h})
844    
845  $v^*$: {\bf GvNm1} ({\em DYNVARS.h})  $v^*$: {\bf gV} ({\em DYNVARS.h})
846    
847  $\eta^*$: {\bf cg2d\_b} (\em SOLVE\_FOR\_PRESSURE.h)  $\eta^*$: {\bf cg2d\_b} (\em SOLVE\_FOR\_PRESSURE.h)
848    
# Line 857  without any consequence on the solution. Line 894  without any consequence on the solution.
894    
895  $\eta^{n+1}$: {\bf etaN} (\em DYNVARS.h)  $\eta^{n+1}$: {\bf etaN} (\em DYNVARS.h)
896    
897  $\phi_{nh}^{n+1}$: {\bf phi\_nh} (\em DYNVARS.h)  $\phi_{nh}^{n+1}$: {\bf phi\_nh} (\em NH\_VARS.h)
898    
899  $u^*$: {\bf GuNm1} ({\em DYNVARS.h})  $u^*$: {\bf gU} ({\em DYNVARS.h})
900    
901  $v^*$: {\bf GvNm1} ({\em DYNVARS.h})  $v^*$: {\bf gV} ({\em DYNVARS.h})
902    
903  $u^{n+1}$: {\bf uVel} ({\em DYNVARS.h})  $u^{n+1}$: {\bf uVel} ({\em DYNVARS.h})
904    
# Line 889  at the same point in the code. Line 926  at the same point in the code.
926    
927    
928  \subsection{Crank-Nickelson barotropic time stepping}  \subsection{Crank-Nickelson barotropic time stepping}
929  \label{sect:freesurf-CrankNick}  \label{sec:freesurf-CrankNick}
930    
931  The full implicit time stepping described previously is  The full implicit time stepping described previously is
932  unconditionally stable but damps the fast gravity waves, resulting in  unconditionally stable but damps the fast gravity waves, resulting in

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.22