Changeset 11543 for NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex
- Timestamp:
- 2019-09-13T15:57:52+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex
r11537 r11543 6 6 % Chapter 2 ——— Time Domain (step.F90) 7 7 % ================================================================ 8 \chapter{Time Domain (STP)}9 \label{chap: STP}8 \chapter{Time Domain} 9 \label{chap:TD} 10 10 \chaptertoc 11 11 … … 19 19 \newpage 20 20 21 Having defined the continuous equations in \autoref{chap: PE}, we need now to choose a time discretization,21 Having defined the continuous equations in \autoref{chap:MB}, we need now to choose a time discretization, 22 22 a key feature of an ocean model as it exerts a strong influence on the structure of the computer code 23 23 (\ie\ on its flowchart). … … 29 29 % ================================================================ 30 30 \section{Time stepping environment} 31 \label{sec: STP_environment}31 \label{sec:TD_environment} 32 32 33 33 The time stepping used in \NEMO\ is a three level scheme that can be represented as follows: 34 34 \begin{equation} 35 \label{eq: STP}35 \label{eq:TD} 36 36 x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t - \rdt, \, t, \, t + \rdt} 37 37 \end{equation} … … 52 52 The third array, although referred to as $x_a$ (after) in the code, 53 53 is 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.54 but rather it is used to store the time derivative (RHS in \autoref{eq:TD}) prior to time-stepping the equation. 55 55 The 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. 56 56 … … 59 59 % ------------------------------------------------------------------------------------------------------------- 60 60 \section{Non-diffusive part --- Leapfrog scheme} 61 \label{sec: STP_leap_frog}61 \label{sec:TD_leap_frog} 62 62 63 63 The time stepping used for processes other than diffusion is the well-known leapfrog scheme 64 64 \citep{mesinger.arakawa_bk76}. 65 65 This 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.66 It is a time centred scheme, \ie\ the RHS in \autoref{eq:TD} is evaluated at time step $t$, the now time step. 67 67 It may be used for momentum and tracer advection, pressure gradient, and Coriolis terms, 68 68 but not for diffusion terms. … … 81 81 is a kind of laplacian diffusion in time that mixes odd and even time steps: 82 82 \begin{equation} 83 \label{eq: STP_asselin}83 \label{eq:TD_asselin} 84 84 x_F^t = x^t + \gamma \, \lt[ x_F^{t - \rdt} - 2 x^t + x^{t + \rdt} \rt] 85 85 \end{equation} 86 86 where the subscript $F$ denotes filtered values and $\gamma$ is the Asselin coefficient. 87 87 $\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}),88 Its default value is \np{rn\_atfp}\forcode{ = 10.e-3} (see \autoref{sec:TD_mLF}), 89 89 causing only a weak dissipation of high frequency motions (\citep{farge-coulombier_phd87}). 90 90 The addition of a time filter degrades the accuracy of the calculation from second to first order. … … 102 102 % ------------------------------------------------------------------------------------------------------------- 103 103 \section{Diffusive part --- Forward or backward scheme} 104 \label{sec: STP_forward_imp}104 \label{sec:TD_forward_imp} 105 105 106 106 The leapfrog differencing scheme is unsuitable for the representation of diffusion and damping processes. … … 108 108 (when present, see \autoref{sec:TRA_dmp}), a forward time differencing scheme is used : 109 109 \[ 110 %\label{eq: STP_euler}110 %\label{eq:TD_euler} 111 111 x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ D_x^{t - \rdt} 112 112 \] … … 115 115 The conditions for stability of second and fourth order horizontal diffusion schemes are \citep{griffies_bk04}: 116 116 \begin{equation} 117 \label{eq: STP_euler_stability}117 \label{eq:TD_euler_stability} 118 118 A^h < 119 119 \begin{cases} … … 123 123 \end{equation} 124 124 where $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.125 The linear constraint \autoref{eq:TD_euler_stability} is a necessary condition, but not sufficient. 126 126 If it is not satisfied, even mildly, then the model soon becomes wildly unstable. 127 127 The instability can be removed by either reducing the length of the time steps or reducing the mixing coefficient. … … 131 131 backward (or implicit) time differencing scheme is used. This scheme is unconditionally stable but diffusive and can be written as follows: 132 132 \begin{equation} 133 \label{eq: STP_imp}133 \label{eq:TD_imp} 134 134 x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t + \rdt} 135 135 \end{equation} … … 141 141 This scheme is rather time consuming since it requires a matrix inversion. For example, the finite difference approximation of the temperature equation is: 142 142 \[ 143 % \label{eq: STP_imp_zdf}143 % \label{eq:TD_imp_zdf} 144 144 \frac{T(k)^{t + 1} - T(k)^{t - 1}}{2 \; \rdt} 145 145 \equiv … … 147 147 \] 148 148 where 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}149 We rewrite \autoref{eq:TD_imp} as: 150 \begin{equation} 151 \label{eq:TD_imp_mat} 152 152 -c(k + 1) \; T^{t + 1}(k + 1) + d(k) \; T^{t + 1}(k) - \; c(k) \; T^{t + 1}(k - 1) \equiv b(k) 153 153 \end{equation} … … 159 159 \end{align*} 160 160 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. 162 162 Moreover, 163 163 $c(k)$ and $d(k)$ are positive and the diagonal term is greater than the sum of the two extra-diagonal terms, … … 169 169 % ------------------------------------------------------------------------------------------------------------- 170 170 \section{Surface pressure gradient} 171 \label{sec: STP_spg_ts}171 \label{sec:TD_spg_ts} 172 172 173 173 The leapfrog environment supports a centred in time computation of the surface pressure, \ie\ evaluated … … 177 177 (\np{ln\_dynspg\_ts}\forcode{=.true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc 178 178 time 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:T imeStep_flowchart}).179 the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TD_TimeStep_flowchart}). 180 180 181 181 Compared 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 … … 189 189 \includegraphics[width=\textwidth]{Fig_TimeStepping_flowchart_v4} 190 190 \caption{ 191 \protect\label{fig:T imeStep_flowchart}191 \protect\label{fig:TD_TimeStep_flowchart} 192 192 Sketch of the leapfrog time stepping sequence in \NEMO\ with split-explicit free surface. The latter combined 193 193 with non-linear free surface requires the dynamical tendency being updated prior tracers tendency to ensure … … 205 205 % ------------------------------------------------------------------------------------------------------------- 206 206 \section{Modified Leapfrog -- Asselin filter scheme} 207 \label{sec: STP_mLF}207 \label{sec:TD_mLF} 208 208 209 209 Significant changes have been introduced by \cite{leclair.madec_OM09} in the LF-RA scheme in order to … … 214 214 \ie\ it is time-stepped over a $2 \rdt$ period: 215 215 $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.216 and the time filter is given by \autoref{eq:TD_asselin} so that $Q$ is redistributed over several time step. 217 217 In the modified LF-RA environment, these two formulations have been replaced by: 218 218 \begin{gather} 219 \label{eq: STP_forcing}219 \label{eq:TD_forcing} 220 220 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} 222 222 x_F^t = x^t + \gamma \, \lt( x_F^{t - \rdt} - 2 x^t + x^{t + \rdt} \rt) 223 223 - \gamma \, \rdt \, \lt( Q^{t + \rdt / 2} - Q^{t - \rdt / 2} \rt) 224 224 \end{gather} 225 The change in the forcing formulation given by \autoref{eq: STP_forcing} (see \autoref{fig:MLF_forcing})225 The change in the forcing formulation given by \autoref{eq:TD_forcing} (see \autoref{fig:TD_MLF_forcing}) 226 226 has a significant effect: 227 227 the forcing term no longer excites the divergence of odd and even time steps \citep{leclair.madec_OM09}. … … 231 231 Indeed, time filtering is no longer required on the forcing part. 232 232 The 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}). 234 234 Since the filtering of the forcing was the source of non-conservation in the classical LF-RA scheme, 235 235 the modified formulation becomes conservative \citep{leclair.madec_OM09}. 236 236 Second, 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 instability237 Indeed, \autoref{eq:TD_forcing} used in combination with a careful treatment of static instability 238 238 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) 239 239 (the two other main sources of time step divergence), … … 242 242 Note that the forcing is now provided at the middle of a time step: 243 243 $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},244 This and the change in the time filter, \autoref{eq:TD_RA}, 245 245 allows for an exact evaluation of the contribution due to the forcing term between any two time steps, 246 246 even if separated by only $\rdt$ since the time filter is no longer applied to the forcing term. … … 251 251 \includegraphics[width=\textwidth]{Fig_MLF_forcing} 252 252 \caption{ 253 \protect\label{fig: MLF_forcing}253 \protect\label{fig:TD_MLF_forcing} 254 254 Illustration of forcing integration methods. 255 255 (top) ''Traditional'' formulation: … … 268 268 % ------------------------------------------------------------------------------------------------------------- 269 269 \section{Start/Restart strategy} 270 \label{sec: STP_rst}270 \label{sec:TD_rst} 271 271 272 272 %--------------------------------------------namrun------------------------------------------- … … 277 277 (Euler time integration): 278 278 \[ 279 % \label{eq: DOM_euler}279 % \label{eq:TD_DOM_euler} 280 280 x^1 = x^0 + \rdt \ \text{RHS}^0 281 281 \] 282 This is done simply by keeping the leapfrog environment (\ie\ the \autoref{eq: STP} three level time stepping) but282 This is done simply by keeping the leapfrog environment (\ie\ the \autoref{eq:TD} three level time stepping) but 283 283 setting all $x^0$ (\textit{before}) and $x^1$ (\textit{now}) fields equal at the first time step and 284 284 using half the value of a leapfrog time step ($2 \rdt$). … … 314 314 % ------------------------------------------------------------------------------------------------------------- 315 315 \subsection{Time domain} 316 \label{subsec: STP_time}316 \label{subsec:TD_time} 317 317 %--------------------------------------------namrun------------------------------------------- 318 318
Note: See TracChangeset
for help on using the changeset viewer.