ttime-stepping.rst - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
ttime-stepping.rst (5548B)
---
1 .. include:: ../../global.txt
2
3 .. _sec-adapt:
4
5 Understanding adaptive time-stepping
6 ------------------------------------
7
8 At each time step the PISM standard output includes "flags" and then a summary of the
9 model state using a few numbers. A typical example is
10
11 .. code-block:: none
12
13 v$Eh diffusivity (dt=0.83945 in 2 substeps; av dt_sub_mass_cont=0.41972)
14 S -124791.571: 3.11640 2.25720 3.62041 18099.93737
15 y SSA: 3 outer iterations, ~17.0 KSP iterations each
16
17 The characters "``v$Eh``" at the beginning of the flags line, the first line in the above
18 example, give a very terse description of which physical processes were modeled in that
19 time step. Here "``v``" means that a stress balance was solved to compute the velocity.
20 Then the enthalpy was updated ("``E``") and the ice thickness and surface elevation were
21 updated ("``h``"). The rest of the flags line looks like
22
23 .. code-block:: none
24
25 diffusivity (dt=0.83945 in 2 substeps; av dt_sub_mass_cont=0.41972)
26
27 Recall that the PISM time step is determined by an adaptive mechanism. Stable mass
28 conservation and conservation of energy solutions require such an adaptive time-stepping
29 scheme :cite:`BBL`. The first character we see here, namely "``diffusivity``", is the
30 adaptive-timestepping "reason" flag. See :numref:`tab-adaptiveflag`. We also see
31 that there was a major time step of :math:`0.83945` model years divided into :math:`2`
32 substeps of about :math:`0.42` years. The :opt:`-skip` option enables this mechanism,
33 while :opt:`-skip_max` sets the maximum number of such substeps. The adaptive mechanism
34 may choose to take fewer substeps than ``-skip_max`` so as to satisfy certain numerical
35 stability criteria, however.
36
37 The second line in the above, the line which starts with "``S``", is the summary. Its
38 format, and the units for these numbers, is simple and is given by a couple of lines
39 printed near the beginning of the standard output for the run:
40
41 .. code-block:: none
42
43 P YEAR: ivol iarea max_diffusivity max_hor_vel
44 U years 10^6_km^3 10^6_km^2 m^2 s^-1 m/year
45
46 That is, in each summary we have the total ice volume, total ice area, maximum diffusivity
47 (of the SIA mass conservation equation), and maximum horizontal velocity (i.e.
48 :math:`\max(\max(|u|), \max(|v|))`).
49
50 The third line of the above example shows that the SSA stress balance was solved.
51 Information on the number of nonlinear (outer) and linear (inner) iterations is provided
52 :cite:`BBssasliding`.
53
54 .. list-table:: Meaning of the adaptive time-stepping "reason" flag in the standard output
55 flag line.
56 :header-rows: 1
57 :name: tab-adaptiveflag
58 :widths: 1,2
59
60 * - PISM output
61 - Active adaptive constraint or PISM sub-system that limited time-step size
62
63 * - ``3D CFL``
64 - three-dimensional CFL for temperature/age advection :cite:`BBL`
65
66 * - ``diffusivity``
67 - diffusivity for SIA mass conservation :cite:`BBL`, :cite:`HindmarshPayne`
68
69 * - ``end of the run``
70 - end of prescribed run time
71
72 * - ``max``
73 - maximum allowed :math:`\Delta t` applies; set with ``-max_dt``
74
75 * - ``internal (derived class)``
76 - maximum :math:`\Delta t` was temporarily set by a derived class
77
78 * - ``2D CFL``
79 - 2D CFL for mass conservation in SSA regions (upwinded; :cite:`BBssasliding`)
80
81 * - ``-ts_... reporting``
82 - the ``-ts_times`` option and the configuration flag
83 :config:`time_stepping.hit_ts_times`; see section :ref:`sec-saving-time-series`
84
85 * - ``-extra_... reporting``
86 - the ``-extra_times`` option; see section :ref:`sec-saving-diagnostics`
87
88 * - ``surface``
89 - a surface or an atmosphere model
90
91 * - ``ocean``
92 - an ocean model
93
94 * - ``hydrology``
95 - a hydrology model stability criterion, see section :ref:`sec-subhydro`
96
97 * - ``BTU``
98 - time-the bedrock thermal layer model, see section :ref:`sec-energy`
99
100 * - ``eigencalving``
101 - the eigen-calving model, see section :ref:`sec-calving`
102
103 .. list-table:: Options controlling time-stepping
104 :header-rows: 1
105 :name: tab-time-stepping
106 :widths: 3,5
107
108 * - Option
109 - Description
110
111 * - :opt:`-adapt_ratio`
112 - Adaptive time stepping ratio for the explicit scheme for the mass balance equation.
113
114 * - :opt:`-max_dt` (years)
115 - The maximum time-step in years. The adaptive time-stepping scheme will make the
116 time-step shorter than this as needed for stability, but not longer.
117
118 * - :opt:`-skip`
119 - Enables time-step skipping, see below.
120
121 * - :opt:`-skip_max`
122 - Number of mass-balance steps, including SIA diffusivity updates, to perform before
123 temperature, age, and SSA stress balance computations are done. This is only
124 effective if the time step is being limited by the diffusivity time step
125 restriction associated to mass continuity using the SIA. The maximum recommended
126 value for ``-skip_max`` is, unfortunately, dependent on the context. The
127 temperature field should be updated when the surface changes significantly, and
128 likewise the basal sliding velocity if it comes (as it should) from the SSA
129 calculation.
130
131 * - :opt:`-timestep_hit_multiples` (years)
132 - Hit multiples of the number of model years specified. For example, if stability
133 criteria require a time-step of 11 years and the ``-timestep_hit_multiples 3``
134 option is set, PISM will take a 9 model year long time step. This can be useful to
135 enforce consistent sampling of periodic climate data.