New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11543 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex – NEMO

Ignore:
Timestamp:
2019-09-13T15:57:52+02:00 (5 years ago)
Author:
nicolasmartin
Message:

Implementation of convention for labelling references + files renaming
Now each reference is supposed to have the information of the chapter in its name
to identify quickly which file contains the reference (\label{$prefix:$chap_...)

Rename the appendices from 'annex_' to 'apdx_' to conform with the prefix used in labels (apdx:...)
Suppress the letter numbering

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex

    r11537 r11543  
    66% Chapter 2 ——— Time Domain (step.F90) 
    77% ================================================================ 
    8 \chapter{Time Domain (STP)} 
    9 \label{chap:STP} 
     8\chapter{Time Domain} 
     9\label{chap:TD} 
    1010\chaptertoc 
    1111 
     
    1919\newpage 
    2020 
    21 Having defined the continuous equations in \autoref{chap:PE}, we need now to choose a time discretization, 
     21Having defined the continuous equations in \autoref{chap:MB}, we need now to choose a time discretization, 
    2222a key feature of an ocean model as it exerts a strong influence on the structure of the computer code 
    2323(\ie\ on its flowchart). 
     
    2929% ================================================================ 
    3030\section{Time stepping environment} 
    31 \label{sec:STP_environment} 
     31\label{sec:TD_environment} 
    3232 
    3333The time stepping used in \NEMO\ is a three level scheme that can be represented as follows: 
    3434\begin{equation} 
    35   \label{eq:STP} 
     35  \label{eq:TD} 
    3636  x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t - \rdt, \, t, \, t + \rdt} 
    3737\end{equation} 
     
    5252The third array, although referred to as $x_a$ (after) in the code, 
    5353is usually not the variable at the after time step; 
    54 but rather it is used to store the time derivative (RHS in \autoref{eq:STP}) prior to time-stepping the equation. 
     54but rather it is used to store the time derivative (RHS in \autoref{eq:TD}) prior to time-stepping the equation. 
    5555The time stepping itself is performed once at each time step where implicit vertical diffusion is computed, \ie\ in the \mdl{trazdf} and \mdl{dynzdf} modules. 
    5656 
     
    5959% ------------------------------------------------------------------------------------------------------------- 
    6060\section{Non-diffusive part --- Leapfrog scheme} 
    61 \label{sec:STP_leap_frog} 
     61\label{sec:TD_leap_frog} 
    6262 
    6363The time stepping used for processes other than diffusion is the well-known leapfrog scheme 
    6464\citep{mesinger.arakawa_bk76}. 
    6565This scheme is widely used for advection processes in low-viscosity fluids. 
    66 It is a time centred scheme, \ie\ the RHS in \autoref{eq:STP} is evaluated at time step $t$, the now time step. 
     66It is a time centred scheme, \ie\ the RHS in \autoref{eq:TD} is evaluated at time step $t$, the now time step. 
    6767It may be used for momentum and tracer advection, pressure gradient, and Coriolis terms, 
    6868but not for diffusion terms. 
     
    8181is a kind of laplacian diffusion in time that mixes odd and even time steps: 
    8282\begin{equation} 
    83   \label{eq:STP_asselin} 
     83  \label{eq:TD_asselin} 
    8484  x_F^t = x^t + \gamma \, \lt[ x_F^{t - \rdt} - 2 x^t + x^{t + \rdt} \rt] 
    8585\end{equation} 
    8686where the subscript $F$ denotes filtered values and $\gamma$ is the Asselin coefficient. 
    8787$\gamma$ is initialized as \np{rn\_atfp} (namelist parameter). 
    88 Its default value is \np{rn\_atfp}\forcode{=10.e-3} (see \autoref{sec:STP_mLF}), 
     88Its default value is \np{rn\_atfp}\forcode{ = 10.e-3} (see \autoref{sec:TD_mLF}), 
    8989causing only a weak dissipation of high frequency motions (\citep{farge-coulombier_phd87}). 
    9090The addition of a time filter degrades the accuracy of the calculation from second to first order. 
     
    102102% ------------------------------------------------------------------------------------------------------------- 
    103103\section{Diffusive part --- Forward or backward scheme} 
    104 \label{sec:STP_forward_imp} 
     104\label{sec:TD_forward_imp} 
    105105 
    106106The leapfrog differencing scheme is unsuitable for the representation of diffusion and damping processes. 
     
    108108(when present, see \autoref{sec:TRA_dmp}), a forward time differencing scheme is used : 
    109109\[ 
    110   %\label{eq:STP_euler} 
     110  %\label{eq:TD_euler} 
    111111  x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ D_x^{t - \rdt} 
    112112\] 
     
    115115The conditions for stability of second and fourth order horizontal diffusion schemes are \citep{griffies_bk04}: 
    116116\begin{equation} 
    117   \label{eq:STP_euler_stability} 
     117  \label{eq:TD_euler_stability} 
    118118  A^h < 
    119119  \begin{cases} 
     
    123123\end{equation} 
    124124where $e$ is the smallest grid size in the two horizontal directions and $A^h$ is the mixing coefficient. 
    125 The linear constraint \autoref{eq:STP_euler_stability} is a necessary condition, but not sufficient. 
     125The linear constraint \autoref{eq:TD_euler_stability} is a necessary condition, but not sufficient. 
    126126If it is not satisfied, even mildly, then the model soon becomes wildly unstable. 
    127127The instability can be removed by either reducing the length of the time steps or reducing the mixing coefficient. 
     
    131131backward (or implicit) time differencing scheme is used. This scheme is unconditionally stable but diffusive and can be written as follows: 
    132132\begin{equation} 
    133   \label{eq:STP_imp} 
     133  \label{eq:TD_imp} 
    134134  x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t + \rdt} 
    135135\end{equation} 
     
    141141This scheme is rather time consuming since it requires a matrix inversion. For example, the finite difference approximation of the temperature equation is: 
    142142\[ 
    143   % \label{eq:STP_imp_zdf} 
     143  % \label{eq:TD_imp_zdf} 
    144144  \frac{T(k)^{t + 1} - T(k)^{t - 1}}{2 \; \rdt} 
    145145  \equiv 
     
    147147\] 
    148148where RHS is the right hand side of the equation except for the vertical diffusion term. 
    149 We rewrite \autoref{eq:STP_imp} as: 
    150 \begin{equation} 
    151   \label{eq:STP_imp_mat} 
     149We rewrite \autoref{eq:TD_imp} as: 
     150\begin{equation} 
     151  \label{eq:TD_imp_mat} 
    152152  -c(k + 1) \; T^{t + 1}(k + 1) + d(k) \; T^{t + 1}(k) - \; c(k) \; T^{t + 1}(k - 1) \equiv b(k) 
    153153\end{equation} 
     
    159159\end{align*} 
    160160 
    161 \autoref{eq:STP_imp_mat} is a linear system of equations with an associated matrix which is tridiagonal. 
     161\autoref{eq:TD_imp_mat} is a linear system of equations with an associated matrix which is tridiagonal. 
    162162Moreover, 
    163163$c(k)$ and $d(k)$ are positive and the diagonal term is greater than the sum of the two extra-diagonal terms, 
     
    169169% ------------------------------------------------------------------------------------------------------------- 
    170170\section{Surface pressure gradient} 
    171 \label{sec:STP_spg_ts} 
     171\label{sec:TD_spg_ts} 
    172172 
    173173The leapfrog environment supports a centred in time computation of the surface pressure, \ie\ evaluated 
     
    177177(\np{ln\_dynspg\_ts}\forcode{=.true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc 
    178178time steps. The use of the time-splitting (in combination with non-linear free surface) imposes some constraints on the design of 
    179 the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TimeStep_flowchart}). 
     179the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TD_TimeStep_flowchart}). 
    180180 
    181181Compared to the former use of the filtered free surface in \NEMO\ v3.6 (\citet{roullet.madec_JGR00}), the use of a split-explicit free surface is advantageous 
     
    189189    \includegraphics[width=\textwidth]{Fig_TimeStepping_flowchart_v4} 
    190190    \caption{ 
    191       \protect\label{fig:TimeStep_flowchart} 
     191      \protect\label{fig:TD_TimeStep_flowchart} 
    192192      Sketch of the leapfrog time stepping sequence in \NEMO\ with split-explicit free surface. The latter combined 
    193193       with non-linear free surface requires the dynamical tendency being updated prior tracers tendency to ensure 
     
    205205% ------------------------------------------------------------------------------------------------------------- 
    206206\section{Modified Leapfrog -- Asselin filter scheme} 
    207 \label{sec:STP_mLF} 
     207\label{sec:TD_mLF} 
    208208 
    209209Significant changes have been introduced by \cite{leclair.madec_OM09} in the LF-RA scheme in order to 
     
    214214\ie\ it is time-stepped over a $2 \rdt$ period: 
    215215$x^t = x^t + 2 \rdt Q^t$ where $Q$ is the forcing applied to $x$, 
    216 and the time filter is given by \autoref{eq:STP_asselin} so that $Q$ is redistributed over several time step. 
     216and the time filter is given by \autoref{eq:TD_asselin} so that $Q$ is redistributed over several time step. 
    217217In the modified LF-RA environment, these two formulations have been replaced by: 
    218218\begin{gather} 
    219   \label{eq:STP_forcing} 
     219  \label{eq:TD_forcing} 
    220220  x^{t + \rdt} = x^{t - \rdt} + \rdt \lt( Q^{t - \rdt / 2} + Q^{t + \rdt / 2} \rt)  \\ 
    221   \label{eq:STP_RA} 
     221  \label{eq:TD_RA} 
    222222  x_F^t       = x^t + \gamma \, \lt( x_F^{t - \rdt} - 2 x^t + x^{t + \rdt} \rt) 
    223223                    - \gamma \, \rdt \, \lt( Q^{t + \rdt / 2} - Q^{t - \rdt / 2} \rt) 
    224224\end{gather} 
    225 The change in the forcing formulation given by \autoref{eq:STP_forcing} (see \autoref{fig:MLF_forcing}) 
     225The change in the forcing formulation given by \autoref{eq:TD_forcing} (see \autoref{fig:TD_MLF_forcing}) 
    226226has a significant effect: 
    227227the forcing term no longer excites the divergence of odd and even time steps \citep{leclair.madec_OM09}. 
     
    231231Indeed, time filtering is no longer required on the forcing part. 
    232232The influence of the Asselin filter on the forcing is explicitly removed by adding a new term in the filter 
    233 (last term in \autoref{eq:STP_RA} compared to \autoref{eq:STP_asselin}). 
     233(last term in \autoref{eq:TD_RA} compared to \autoref{eq:TD_asselin}). 
    234234Since the filtering of the forcing was the source of non-conservation in the classical LF-RA scheme, 
    235235the modified formulation becomes conservative \citep{leclair.madec_OM09}. 
    236236Second, the LF-RA becomes a truly quasi -second order scheme. 
    237 Indeed, \autoref{eq:STP_forcing} used in combination with a careful treatment of static instability 
     237Indeed, \autoref{eq:TD_forcing} used in combination with a careful treatment of static instability 
    238238(\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) 
    239239(the two other main sources of time step divergence), 
     
    242242Note that the forcing is now provided at the middle of a time step: 
    243243$Q^{t + \rdt / 2}$ is the forcing applied over the $[t,t + \rdt]$ time interval. 
    244 This and the change in the time filter, \autoref{eq:STP_RA}, 
     244This and the change in the time filter, \autoref{eq:TD_RA}, 
    245245allows for an exact evaluation of the contribution due to the forcing term between any two time steps, 
    246246even if separated by only $\rdt$ since the time filter is no longer applied to the forcing term. 
     
    251251    \includegraphics[width=\textwidth]{Fig_MLF_forcing} 
    252252    \caption{ 
    253       \protect\label{fig:MLF_forcing} 
     253      \protect\label{fig:TD_MLF_forcing} 
    254254      Illustration of forcing integration methods. 
    255255      (top) ''Traditional'' formulation: 
     
    268268% ------------------------------------------------------------------------------------------------------------- 
    269269\section{Start/Restart strategy} 
    270 \label{sec:STP_rst} 
     270\label{sec:TD_rst} 
    271271 
    272272%--------------------------------------------namrun------------------------------------------- 
     
    277277(Euler time integration): 
    278278\[ 
    279   % \label{eq:DOM_euler} 
     279  % \label{eq:TD_DOM_euler} 
    280280  x^1 = x^0 + \rdt \ \text{RHS}^0 
    281281\] 
    282 This is done simply by keeping the leapfrog environment (\ie\ the \autoref{eq:STP} three level time stepping) but 
     282This is done simply by keeping the leapfrog environment (\ie\ the \autoref{eq:TD} three level time stepping) but 
    283283setting all $x^0$ (\textit{before}) and $x^1$ (\textit{now}) fields equal at the first time step and 
    284284using half the value of a leapfrog time step ($2 \rdt$). 
     
    314314% ------------------------------------------------------------------------------------------------------------- 
    315315\subsection{Time domain} 
    316 \label{subsec:STP_time} 
     316\label{subsec:TD_time} 
    317317%--------------------------------------------namrun------------------------------------------- 
    318318 
Note: See TracChangeset for help on using the changeset viewer.