New issue 59 by tobias.heinemann: Errors in the description of the 2N
time-stepping scheme in the manual?
http://code.google.com/p/pencil-code/issues/detail?id=59
(This does not affect the actual code but only the manual.)
Table 13 in section H.4 lists various coefficients for different 2N
time-stepping schemes. In particular, the coefficients c_i specify how much
time has elapsed after the i-th sub-time-step through the formula
t_i = t_0 + c_i dt
which is given in the table's caption. Since c_1 as listed in the table is
always equal to 0, the above equation implies that t_1 = t_0, which seems
odd. My guess is that c_1 should actually be equal to c_2 as listed in the
table, c_2 should be equal to c_3, and c_3 should always be equal to 1.
Even then, however, it's unclear to me how one arrives at the coefficients
listed for the cases "inhomogeneous" and "Williamson (1980)". For the first
case I seem to get
t_1 - t_0 = 1/4
t_2 - t_1 = 5/12
t_3 - t_2 = 1/3
and for the second case
t_1 - t_0 = 1/3
t_2 - t_1 = 5/12
t_3 - t_2 = 1/4
I guess you are right. The c's should be numbered c_0, c_1, c_2 (and c_3=1
always, but this is irrelevant, while c_0 to c_2 determine the times where
we evaluate the rhs). So the table should read
scheme c0 c1 c2 a2 a3 b1 b2 b3
symmetric 0 1/3 2/3 -2/3 -1 1/3 1 1/2
[predictor/corrector] 0 1/2 1 -1/4 -4/3 1/2 2/3 1/2
inhomogeneous 0 1/4 2/3 -17/32 -32/27 1/4 8/9 3/4
Williamson (1980) 0 1/3 3/4 -5/9 -153/128 1/3 15/16 8/15
and indeed the c_i for the last two schemes were wrong.
Tobi, before fixidng the manual, could you check that this nomenclature
(and the coefficients) are compatible with Williamson and/or Stanescu et al?
I'm not sure about Williamson (1980), but what's in the manual *now* is
entirely consistent with Stanescu & Habashi (1998). They also write
u_0 = u^{n-1}
u_3 = u^{n}
and
t_i = t^{n-1} + h c_i. In their tables, c_1=0 always, so that
t_1 = t^{n-1}
t_4 = t^{n}
This is pretty awkward I think, and IMO hardly worth maintaining
compatibility with, also because the c_i are never hard coded anyway.
We could also avoid any compatibility issues altogether by listing the time
intervals between successive sub-time-steps instead, which I would also
find informative.