|
|
|
Next: 2.9 Non-hydrostatic formulation
Up: 2. Discretization and Algorithm
Previous: 2.7 Synchronous time-stepping: variables
Contents
2.8 Staggered baroclinic time-stepping
Figure 2.7:
A schematic of the explicit Adams-Bashforth and implicit time-stepping
phases of the algorithm but with staggering in time of thermodynamic
variables with the flow.
Explicit momentum tendencies are evaluated at time level
as a
function of the flow field at that time level
.
The explicit tendency from the previous time level,
, is used to
extrapolate tendencies to
(dashed arrow).
The hydrostatic pressure/geo-potential
is evaluated directly
at time level
(vertical arrows) and used with the extrapolated tendencies
to step forward the flow variables from
to
(solid arc-arrow).
The implicit-in-time operator
(vertical arrows) is
then applied to the previous estimation of the the flow field (
-variables)
and yields to the two velocity components
at time level
.
These are then used to calculate the advection term (dashed arc-arrow)
of the thermo-dynamics tendencies at time step
.
The extrapolated thermodynamics tendency, from time level
and
to
, allows thermodynamic variables to be stably integrated
forward-in-time (solid arc-arrow) up to time level
.
|
For well stratified problems, internal gravity waves may be the
limiting process for determining a stable time-step. In the
circumstance, it is more efficient to stagger in time the
thermodynamic variables with the flow
variables. Fig. 2.7 illustrates the
staggering and algorithm. The key difference between this and
Fig. 2.5 is that the thermodynamic variables
are solved after the dynamics, using the recently updated flow field.
This essentially allows the gravity wave terms to leap-frog in
time giving second order accuracy and more stability.
The essential change in the staggered algorithm is that the
thermodynamics solver is delayed from half a time step,
allowing the use of the most recent velocities to compute
the advection terms. Once the thermodynamics fields are
updated, the hydrostatic pressure is computed
to step forwrad the dynamics.
Note that the pressure gradient must also be taken out of the
Adams-Bashforth extrapolation. Also, retaining the integer time-levels,
and
, does not give a user the sense of where variables are
located in time. Instead, we re-write the entire algorithm,
2.29 to 2.40, annotating the
position in time of variables appropriately:
 |
 |
 |
(2.41) |
 |
 |
 |
(2.42) |
 |
 |
 |
(2.43) |
 |
 |
 |
(2.44) |
 |
 |
 |
(2.45) |
 |
 |
 |
(2.46) |
 |
 |
 |
(2.47) |
 |
 |
 |
(2.48) |
 |
 |
 |
(2.49) |
 |
 |
 |
(2.50) |
 |
 |
 |
(2.51) |
 |
 |
 |
(2.52) |
The corresponding calling tree is given in
2.8.
The staggered algorithm is activated with the run-time flag
staggerTimeStep=.TRUE. in parameter file data,
namelist PARM01.
Figure 2.8:
Calling tree for the overall staggered algorithm using
Adams-Bashforth time-stepping.
The place where the model geometry
(hFac factors) is updated is added here but is only relevant
for the non-linear free-surface algorithm.
|
The only difficulty with this approach is apparent in equation
2.49 and illustrated by the dotted arrow
connecting
with
. The flow used to advect
tracers around is not naturally located in time. This could be avoided
by applying the Adams-Bashforth extrapolation to the tracer field
itself and advecting that around but this approach is not yet
available. We're not aware of any detrimental effect of this
feature. The difficulty lies mainly in interpretation of what
time-level variables and terms correspond to.
Next: 2.9 Non-hydrostatic formulation
Up: 2. Discretization and Algorithm
Previous: 2.7 Synchronous time-stepping: variables
Contents
mitgcm-support@mitgcm.org
Copyright © 2006
Massachusetts Institute of Technology |
Last update 2011-01-09 |
 |
|