Changeset 11512 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_time_domain.tex
- Timestamp:
- 2019-09-09T12:05:20+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_BDY_optimization/doc/latex/NEMO/subfiles/chap_time_domain.tex
r11263 r11512 8 8 \chapter{Time Domain (STP)} 9 9 \label{chap:STP} 10 \ minitoc10 \chaptertoc 11 11 12 12 % Missing things: … … 21 21 Having defined the continuous equations in \autoref{chap:PE}, 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 (\ie on its flowchart).24 In the present chapter, we provide a general description of the \NEMO time stepping strategy and23 (\ie\ on its flowchart). 24 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 … … 31 31 \label{sec:STP_environment} 32 32 33 The time stepping used in \NEMO is a three level scheme that can be represented as follows:33 The time stepping used in \NEMO\ is a three level scheme that can be represented as follows: 34 34 \begin{equation} 35 35 \label{eq:STP} 36 36 x^{t + \rdt} = x^{t - \rdt} + 2 \, \rdt \ \text{RHS}_x^{t - \rdt, \, t, \, t + \rdt} 37 \end{equation} 37 \end{equation} 38 38 where $x$ stands for $u$, $v$, $T$ or $S$; 39 39 RHS is the Right-Hand-Side of the corresponding time evolution equation; … … 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 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.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 57 57 % ------------------------------------------------------------------------------------------------------------- … … 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:STP} 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. … … 92 92 Therefore, the LF-RA is a quasi second order accurate scheme. 93 93 The LF-RA scheme is preferred to other time differencing schemes such as predictor corrector or trapezoidal schemes, 94 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. 95 95 When used with the 2nd order space centred discretisation of the advection terms in 96 96 the momentum and tracer equations, LF-RA avoids implicit numerical diffusion: 97 diffusion is set explicitly by the user through the Robert-Asselin 97 diffusion is set explicitly by the user through the Robert-Asselin 98 98 filter parameter and the viscosity and diffusion coefficients. 99 99 … … 128 128 129 129 For the vertical diffusion terms, a forward time differencing scheme can be used, 130 but usually the numerical stability condition imposes a strong constraint on the time step. To overcome the stability constraint, a 130 but usually the numerical stability condition imposes a strong constraint on the time step. To overcome the stability constraint, a 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} … … 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} 154 where 155 \begin{align*} 154 where 155 \begin{align*} 156 156 c(k) &= A_w^{vT} (k) \, / \, e_{3w} (k) \\ 157 157 d(k) &= e_{3t} (k) \, / \, (2 \rdt) + c_k + c_{k + 1} \\ … … 171 171 \label{sec:STP_spg_ts} 172 172 173 The leapfrog environment supports a centred in time computation of the surface pressure, \ie evaluated174 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 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 179 the overall flowchart, in particular to ensure exact tracer conservation (see \autoref{fig:TimeStep_flowchart}). 180 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 advantageous182 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. 184 185 %\gmcomment{ 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. 184 185 %\gmcomment{ 186 186 %>>>>>>>>>>>>>>>>>>>>>>>>>>>> 187 187 \begin{figure}[!t] … … 190 190 \caption{ 191 191 \protect\label{fig:TimeStep_flowchart} 192 Sketch of the leapfrog time stepping sequence in \NEMO with split-explicit free surface. The latter combined193 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 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 196 in \autoref{subsec:DYN_spg_ts}. 197 197 } … … 212 212 213 213 In a classical LF-RA environment, the forcing term is centred in time, 214 \ie it is time-stepped over a $2 \rdt$ period: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 216 and the time filter is given by \autoref{eq:STP_asselin} so that $Q$ is redistributed over several time step. … … 236 236 Second, the LF-RA becomes a truly quasi -second order scheme. 237 237 Indeed, \autoref{eq:STP_forcing} used in combination with a careful treatment of static instability 238 (\autoref{subsec:ZDF_evd}) and of the TKE physics (\autoref{subsec:ZDF_tke_ene}) 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), 240 240 allows a reduction by two orders of magnitude of the Asselin filter parameter. … … 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:STP} 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 using half the value of a leapfrog time step ($2 \rdt$). 284 using half the value of a leapfrog time step ($2 \rdt$). 285 285 286 286 It is also possible to restart from a previous computation, by using a restart file. … … 292 292 293 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 \n gn{namrun} namelist variables.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 \nam{run} namelist variables. 298 298 %%% 299 299 \gmcomment{ … … 302 302 add also the idea of writing several restart for seasonal forecast : how is it done ? 303 303 304 verify that all namelist pararmeters are truly described 304 verify that all namelist pararmeters are truly described 305 305 306 306 a word on the check of restart ..... … … 308 308 %%% 309 309 310 \gmcomment{ % add a subsection here 310 \gmcomment{ % add a subsection here 311 311 312 312 %------------------------------------------------------------------------------------------------------------- … … 317 317 %--------------------------------------------namrun------------------------------------------- 318 318 319 \nlst{namdom} 319 \nlst{namdom} 320 320 %-------------------------------------------------------------------------------------------------------------- 321 321 322 Options are defined through the \n gn{namdom} namelist variables.322 Options are defined through the \nam{dom} namelist variables. 323 323 \colorbox{yellow}{add here a few word on nit000 and nitend} 324 324 … … 332 332 333 333 %% 334 \gmcomment{ % add implicit in vvl case and Crant-Nicholson scheme 334 \gmcomment{ % add implicit in vvl case and Crant-Nicholson scheme 335 335 336 336 Implicit time stepping in case of variable volume thickness.
Note: See TracChangeset
for help on using the changeset viewer.