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} |
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 |
205 |
such as the vertical viscosity when using the backward time-stepping scheme |
such as the vertical viscosity when using the backward time-stepping scheme |
206 |
(\varlink{implicitViscosity}{implicitViscosity} {\it =.TRUE.}). |
(\varlink{implicitViscosity}{implicitViscosity} {\it =.TRUE.}). |
207 |
The method used to solve those implicit terms is provided in |
The method used to solve those implicit terms is provided in |
208 |
section \ref{sect:implicit-backward-stepping}, and modifies |
section \ref{sec:implicit-backward-stepping}, and modifies |
209 |
equations \ref{eq:discrete-time-u} and \ref{eq:discrete-time-v} to |
equations \ref{eq:discrete-time-u} and \ref{eq:discrete-time-v} to |
210 |
give: |
give: |
211 |
\begin{eqnarray} |
\begin{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} |
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. This 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 (see section \ref{sect:freesurf-CrankNick}), |
scheme, such as Crank-Nicholson (see section \ref{sec:freesurf-CrankNick}), |
258 |
would alias the energy of the fast 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 |
263 |
\begin{eqnarray} |
\begin{eqnarray} |
264 |
u^{*} & = & u^{n} + \Delta t G_u^{(n+1/2)} \label{eq:ustar-backward-free-surface} \\ |
u^{*} & = & u^{n} + \Delta t G_u^{(n+1/2)} \label{eq:ustar-backward-free-surface} \\ |
265 |
v^{*} & = & v^{n} + \Delta t G_v^{(n+1/2)} \label{eq:vstar-backward-free-surface} \\ |
v^{*} & = & v^{n} + \Delta t G_v^{(n+1/2)} \label{eq:vstar-backward-free-surface} \\ |
266 |
\eta^* & = & \epsilon_{fs} \left( \eta^{n} + \Delta t (P-E) \right)- \Delta t |
\eta^* & = & \epsilon_{fs} \left( \eta^{n} + \Delta t (P-E) \right) |
267 |
\partial_x H \widehat{u^{*}} |
- \Delta t \left( \partial_x H \widehat{u^{*}} |
268 |
+ \partial_y H \widehat{v^{*}} |
+ \partial_y H \widehat{v^{*}} \right) |
269 |
\\ |
\\ |
270 |
\partial_x g H \partial_x \eta^{n+1} |
\partial_x g H \partial_x \eta^{n+1} |
271 |
& + & \partial_y g H \partial_y \eta^{n+1} |
& + & \partial_y g H \partial_y \eta^{n+1} |
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} |
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} |
377 |
|
|
378 |
\begin{figure} |
\begin{figure} |
379 |
\begin{center} |
\begin{center} |
380 |
\resizebox{5.5in}{!}{\includegraphics{part2/oscil+damp_AB2.eps}} |
\resizebox{5.5in}{!}{\includegraphics{s_algorithm/figs/oscil+damp_AB2.eps}} |
381 |
\end{center} |
\end{center} |
382 |
\caption{ |
\caption{ |
383 |
Oscillatory and damping response of |
Oscillatory and damping response of |
397 |
|
|
398 |
|
|
399 |
\section{Implicit time-stepping: backward method} |
\section{Implicit time-stepping: backward method} |
400 |
\label{sect:implicit-backward-stepping} |
\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} |
425 |
\end{eqnarray} |
\end{eqnarray} |
426 |
where ${\cal L}_\tau^{-1}$ is the inverse of the operator |
where ${\cal L}_\tau^{-1}$ is the inverse of the operator |
427 |
\begin{equation} |
\begin{equation} |
428 |
{\cal L} = \left[ 1 + \Delta t \partial_r \kappa_v \partial_r \right] |
{\cal L}_\tau = \left[ 1 + \Delta t \partial_r \kappa_v \partial_r \right] |
429 |
\end{equation} |
\end{equation} |
430 |
Equation \ref{eq:taustar-implicit} looks exactly as \ref{eq:taustar} |
Equation \ref{eq:taustar-implicit} looks exactly as \ref{eq:taustar} |
431 |
while \ref{eq:tau-n+1-implicit} involves an operator or matrix |
while \ref{eq:tau-n+1-implicit} involves an operator or matrix |
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 |
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 |
613 |
allowing the use of the most recent velocities to compute |
allowing the use of the most recent velocities to compute |
614 |
the advection terms. Once the thermodynamics fields are |
the advection terms. Once the thermodynamics fields are |
615 |
updated, the hydrostatic pressure is computed |
updated, the hydrostatic pressure is computed |
616 |
to step forwrad the dynamics. |
to step forward the dynamics. |
617 |
Note that the pressure gradient must also be taken out of the |
Note that the pressure gradient must also be taken out of the |
618 |
Adams-Bashforth extrapolation. Also, retaining the integer time-levels, |
Adams-Bashforth extrapolation. Also, retaining the integer time-levels, |
619 |
$n$ and $n+1$, does not give a user the sense of where variables are |
$n$ and $n+1$, does not give a user the sense of where variables are |
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} |
718 |
The non-hydrostatic formulation re-introduces the full vertical |
The non-hydrostatic formulation re-introduces the full vertical |
719 |
momentum equation and requires the solution of a 3-D elliptic |
momentum equation and requires the solution of a 3-D elliptic |
720 |
equations for non-hydrostatic pressure perturbation. We still |
equations for non-hydrostatic pressure perturbation. We still |
721 |
intergrate vertically for the hydrostatic pressure and solve a 2-D |
integrate vertically for the hydrostatic pressure and solve a 2-D |
722 |
elliptic equation for the surface pressure/elevation for this reduces |
elliptic equation for the surface pressure/elevation for this reduces |
723 |
the amount of work needed to solve for the non-hydrostatic pressure. |
the amount of work needed to solve for the non-hydrostatic pressure. |
724 |
|
|
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} |
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, |
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 |
950 |
\frac{ \vec{\bf v}^{n+1} }{ \Delta t } |
\frac{ \vec{\bf v}^{n+1} }{ \Delta t } |
951 |
+ {\bf \nabla}_h b_s [ \beta {\eta}^{n+1} + (1-\beta) {\eta}^{n} ] |
+ {\bf \nabla}_h b_s [ \beta {\eta}^{n+1} + (1-\beta) {\eta}^{n} ] |
952 |
+ \epsilon_{nh} {\bf \nabla}_h {\phi'_{nh}}^{n+1} |
+ \epsilon_{nh} {\bf \nabla}_h {\phi'_{nh}}^{n+1} |
953 |
= \frac{ \vec{\bf v}^* }{ \Delta t } |
= \frac{ \vec{\bf v}^{n} }{ \Delta t } |
954 |
|
+ \vec{\bf G}_{\vec{\bf v}} ^{(n+1/2)} |
955 |
|
+ {\bf \nabla}_h {\phi'_{hyd}}^{(n+1/2)} |
956 |
\end{eqnarray*} |
\end{eqnarray*} |
957 |
\begin{eqnarray} |
\begin{eqnarray} |
958 |
\epsilon_{fs} \frac{ {\eta}^{n+1} - {\eta}^{n} }{ \Delta t} |
\epsilon_{fs} \frac{ {\eta}^{n+1} - {\eta}^{n} }{ \Delta t} |
961 |
= \epsilon_{fw} (P-E) |
= \epsilon_{fw} (P-E) |
962 |
\label{eq:eta-n+1-CrankNick} |
\label{eq:eta-n+1-CrankNick} |
963 |
\end{eqnarray} |
\end{eqnarray} |
964 |
where: |
We set |
965 |
\begin{eqnarray*} |
\begin{eqnarray*} |
966 |
\vec{\bf v}^* & = & |
\vec{\bf v}^* & = & |
967 |
\vec{\bf v} ^{n} + \Delta t \vec{\bf G}_{\vec{\bf v}} ^{(n+1/2)} |
\vec{\bf v} ^{n} + \Delta t \vec{\bf G}_{\vec{\bf v}} ^{(n+1/2)} |