- Timestamp:
- 2019-06-26T16:56:21+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/doc/latex/NEMO/subfiles/chap_time_domain.tex
r11179 r11184 11 11 12 12 % Missing things: 13 % - daymod: definition of the time domain (nit000, nitend and dthe calendar)13 % - daymod: definition of the time domain (nit000, nitend and the calendar) 14 14 15 15 \gmcomment{STEVEN :maybe a picture of the directory structure in the introduction which could be referred to here, … … 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). 24 In the present chapter, we provide a general description of the \NEMO time stepping strategy and24 In the present chapter, we provide a general description of the \NEMO time stepping strategy and 25 25 the consequences for the order in which the equations are solved. 26 26 … … 40 40 $\rdt$ is the time step; 41 41 and the superscripts indicate the time at which a quantity is evaluated. 42 Each term of the RHS is evaluated at a specific time step depending on the physics with which it is associated.43 44 The choice of the time step used for this evaluation is discussed below as well as42 Each term of the RHS is evaluated at a specific time stepping depending on the physics with which it is associated. 43 44 The choice of the time stepping used for this evaluation is discussed below as well as 45 45 the implications for starting or restarting a model simulation. 46 46 Note that the time stepping calculation is generally performed in a single operation. … … 53 53 is usually not the variable at the after time step; 54 54 but rather it is used to store the time derivative (RHS in \autoref{eq:STP}) prior to time-stepping the equation. 55 Generally, the time stepping is performed once at each time step in the \mdl{tranxt} and \mdl{dynnxt} modules, 56 except when using implicit vertical diffusion or calculating sea surface height in which 57 case time-splitting options are used. 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. 58 56 59 57 % ------------------------------------------------------------------------------------------------------------- … … 94 92 Therefore, the LF-RA is a quasi second order accurate scheme. 95 93 The LF-RA scheme is preferred to other time differencing schemes such as predictor corrector or trapezoidal schemes, 96 because the user has an explicit and simple control of the magnitude of the time diffusion of the scheme. 94 because the user has an explicit and simple control of the magnitude of the time diffusion of the scheme. 97 95 When used with the 2nd order space centred discretisation of the advection terms in 98 96 the momentum and tracer equations, LF-RA avoids implicit numerical diffusion: … … 107 105 108 106 The leapfrog differencing scheme is unsuitable for the representation of diffusion and damping processes. 109 For a tend ancy $D_x$, representing a diffusion term or a restoring term to a tracer climatology107 For a tendency $D_x$, representing a diffusion term or a restoring term to a tracer climatology 110 108 (when present, see \autoref{sec:TRA_dmp}), a forward time differencing scheme is used : 111 109 \[ … … 130 128 131 129 For the vertical diffusion terms, a forward time differencing scheme can be used, 132 but usually the numerical stability condition imposes a strong constraint on the time step. 133 Two solutions are available in \NEMO to overcome the stability constraint: 134 $(a)$ a forward time differencing scheme using a time splitting technique (\np{ln\_zdfexp}\forcode{ = .true.}) or 135 $(b)$ a backward (or implicit) time differencing scheme (\np{ln\_zdfexp}\forcode{ = .false.}). 136 In $(a)$, the master time step $\Delta$t is cut into $N$ fractional time steps so that 137 the stability criterion is reduced by a factor of $N$. 138 The computation is performed as follows: 139 \begin{alignat*}{2} 140 % \label{eq:STP_ts} 141 &x_\ast^{t - \rdt} &= &x^{t - \rdt} \\ 142 &x_\ast^{t - \rdt + L \frac{2 \rdt}{N}} &= &x_\ast ^{t - \rdt + (L - 1) \frac{2 \rdt}{N}} 143 + \frac{2 \rdt}{N} \; DF^{t - \rdt + (L - 1) \frac{2 \rdt}{N}} 144 \quad \text{for $L = 1$ to $N$} \\ 145 &x^{t + \rdt} &= &x_\ast^{t + \rdt} 146 \end{alignat*} 147 with DF a vertical diffusion term. 148 The number of fractional time steps, $N$, is given by setting \np{nn\_zdfexp}, (namelist parameter). 149 The scheme $(b)$ is unconditionally stable but diffusive. It can be written as follows: 130 but usually the numerical stability condition imposes a strong constraint on the time step. To overcome the stability constraint, a 131 backward (or implicit) time differencing scheme is used. This scheme is unconditionally stable but diffusive and can be written as follows: 150 132 \begin{equation} 151 133 \label{eq:STP_imp} … … 157 139 %%gm 158 140 159 This scheme is rather time consuming since it requires a matrix inversion, 160 but it becomes attractive since a value of 3 or more is needed for N in the forward time differencing scheme. 161 For example, the finite difference approximation of the temperature equation is: 141 This scheme is rather time consuming since it requires a matrix inversion. For example, the finite difference approximation of the temperature equation is: 162 142 \[ 163 143 % \label{eq:STP_imp_zdf} … … 191 171 \label{sec:STP_spg_ts} 192 172 193 ===>>>> TO BE written.... :-) 173 The leapfrog environment supports a centred in time computation of the surface pressure, \ie evaluated 174 at \textit{now} time step. This refers to as the explicit free surface case in the code (\np{ln\_dynspg\_exp}\forcode{ = .true.}). 175 This choice however imposes a strong constraint on the time step which should be small enough to resolve the propagation 176 of external gravity waves. As a matter of fact, one rather use in a realistic setup, a split-explicit free surface 177 (\np{ln\_dynspg\_ts}\forcode{ = .true.}) in which barotropic and baroclinic dynamical equations are solved separately with ad-hoc 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:TimeStep_flowchart}). 180 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 182 on massively parallel computers. Indeed, no global computations are anymore required by the elliptic solver which saves a substantial amount of communication 183 time. Fast barotropic motions (such as tides) are also simulated with a better accuracy. 194 184 195 185 %\gmcomment{ … … 197 187 \begin{figure}[!t] 198 188 \begin{center} 199 \includegraphics[width=\textwidth]{Fig_TimeStepping_flowchart }189 \includegraphics[width=\textwidth]{Fig_TimeStepping_flowchart_v4} 200 190 \caption{ 201 191 \protect\label{fig:TimeStep_flowchart} 202 Sketch of the leapfrog time stepping sequence in \NEMO from \citet{leclair.madec_OM09}. 203 The use of a semi -implicit computation of the hydrostatic pressure gradient requires the tracer equation to 204 be stepped forward prior to the momentum equation. 205 The need for knowledge of the vertical scale factor (here denoted as $h$) requires the sea surface height and 206 the continuity equation to be stepped forward prior to the computation of the tracer equation. 207 Note that the method for the evaluation of the surface pressure gradient $\nabla p_s$ is not presented here 208 (see \autoref{sec:DYN_spg}). 192 Sketch of the leapfrog time stepping sequence in \NEMO with split-explicit free surface. The latter combined 193 with non-linear free surface requires the dynamical tendency being updated prior tracers tendency to ensure 194 conservation. Note the use of time integrated fluxes issued from the barotropic loop in subsequent calculations 195 of tracer advection and in the continuity equation. Details about the time-splitting scheme can be found 196 in \autoref{subsec:DYN_spg_ts}. 209 197 } 210 198 \end{center} … … 239 227 the forcing term no longer excites the divergence of odd and even time steps \citep{leclair.madec_OM09}. 240 228 % forcing seen by the model.... 241 This property improves the LF-RA scheme in two respects.229 This property improves the LF-RA scheme in two aspects. 242 230 First, the LF-RA can now ensure the local and global conservation of tracers. 243 231 Indeed, time filtering is no longer required on the forcing part. 244 The influence of the Asselin filter on the forcing is beremoved by adding a new term in the filter232 The influence of the Asselin filter on the forcing is explicitly removed by adding a new term in the filter 245 233 (last term in \autoref{eq:STP_RA} compared to \autoref{eq:STP_asselin}). 246 234 Since the filtering of the forcing was the source of non-conservation in the classical LF-RA scheme, … … 248 236 Second, the LF-RA becomes a truly quasi -second order scheme. 249 237 Indeed, \autoref{eq:STP_forcing} used in combination with a careful treatment of static instability 250 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) ,251 the two other main sources of time step divergence,238 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) 239 (the two other main sources of time step divergence), 252 240 allows a reduction by two orders of magnitude of the Asselin filter parameter. 253 241 … … 255 243 $Q^{t + \rdt / 2}$ is the forcing applied over the $[t,t + \rdt]$ time interval. 256 244 This and the change in the time filter, \autoref{eq:STP_RA}, 257 allows an exact evaluation of the contribution due to the forcing term between any two time steps,245 allows for an exact evaluation of the contribution due to the forcing term between any two time steps, 258 246 even if separated by only $\rdt$ since the time filter is no longer applied to the forcing term. 259 247 … … 294 282 This is done simply by keeping the leapfrog environment (\ie the \autoref{eq:STP} three level time stepping) but 295 283 setting all $x^0$ (\textit{before}) and $x^1$ (\textit{now}) fields equal at the first time step and 296 using half the value of $\rdt$.284 using half the value of a leapfrog time step ($2 \rdt$). 297 285 298 286 It is also possible to restart from a previous computation, by using a restart file. … … 303 291 This requires saving two time levels and many auxiliary data in the restart files in machine precision. 304 292 305 Note that when a semi -implicit scheme is used to evaluate the hydrostatic pressure gradient 306 (see \autoref{subsec:DYN_hpg_imp}), an extra three-dimensional field has to 307 be added to the restart file to ensure an exact restartability. 308 This is done optionally via the \np{nn\_dynhpg\_rst} namelist parameter, 309 so that the size of the restart file can be reduced when restartability is not a key issue 310 (operational oceanography or in ensemble simulations for seasonal forecasting). 311 312 Note the size of the time step used, $\rdt$, is also saved in the restart file. 313 When restarting, if the the time step has been changed, a restart using an Euler time stepping scheme is imposed. 314 Options are defined through the \ngn{namrun} namelist variables. 293 Note that the time step $\rdt$, is also saved in the restart file. 294 When restarting, if the time step has been changed, or one of the prognostic variables at \textit{before} time step 295 is missing, an Euler time stepping scheme is imposed. A forward initial step can still be enforced by the user by setting 296 the namelist variable \np{nn\_euler}\forcode{=0}. Other options to control the time integration of the model 297 are defined through the \ngn{namrun} namelist variables. 315 298 %%% 316 299 \gmcomment{
Note: See TracChangeset
for help on using the changeset viewer.