Now without loss of generality we can rewrite Eq. (2)
as:
A qualitative reason of why such a decomposition is valid is that the time evolution of the HD quantities can be described either by an observer sitting on a ring of radius r which rotates at any instant in time with the average azimuthal velocity, or by an observer at rest in an inertial frame. Now the time evolution of the system is of course observer-independent, which is why their observations are reconciled through the simple shift described by Eq. (5).
The idea on which the FARGO algorithm is based on is precisely to
evolve the HD quantities through operators which mimic in a discrete way
the different terms of Eq. (3). The source step, the
radial transport step
and the residual azimuthal
velocity transport step are performed in a standard
way (see e.g.Stone & Norman 1992).
Now the last step in the operator-splitting described above, which
corresponds to a simple shift which amounts to be
in one timestep, can be implemented in such a way that
the matter can sweep an arbitrary number of cell widths in one timestep.
In order to lay down the basic mechanism by which FARGO works, let us
take the following concrete
example. We assume that, after the classical substeps
(which are the source step, the radial transport and the residual
azimuthal velocity transport), the material
at a given radius r has to be shifted
by 4.7 cells in one timestep
(which means that
). What is actually done is that 4.7 is
decomposed as
4.7=-0.3+5, i.e. the nearest integer and a remainder
which by construction is lower or equal to 0.5 in absolute value.
In the first substep of this shift step the material is shifted by this
remainder (here -0.3),
which can be achieved through a classical transport method since
the remainder is lower or equal to 0.5 in absolute value (it has to
be
in order for the standard transport method to be possible),
with the additional simplicity that the corresponding velocity field
is uniform (which is actually why shift and transport happen to coincide
in this special case, since there is no compression in the
corresponding flow).
The second substep just corresponds to an integer number
of cells shift, which is done in our example simply by copying the
content of cell j into cell j+5, for any j.
A more formal and detailed description of the FARGO algorithm is given in the next section.
In the modified algorithm, the azimuthal transport substep is
split in several parts. We assume that the timestep has already be chosen, and defer discussion of the timestep
constraints until Sect. 3.3.
We first compute the average azimuthal
velocity at each radius:
We first transport the HD quantities according to the flow
:
A precise quantification of the lower numerical diffusivity
of FARGO is beyond the scope of this paper though. An extremely
rough estimation can be done in the case of the comparison of
a standard method (in which the effective CFL ratio is a sizable
fraction of one) and a FARGO method for which .
If we
assume that numerical effects will behave in azimuth as a physical
viscosity would do, then the effective numerical viscosity in
FARGO is about ni/C0 times lower than the standard method's one,
where C0 is the CFL standard dimensionless limitation factor,
which is detailed in the next section. Nevertheless a variety of
numerical experiments can be found below which all show that
FARGO's numerical diffusivity is smaller than the standard method's.
At each timestep,
values of ni (with
), used in
Eq. (12),
are computed using Eq. (7). These integer values scale
roughly as
Ri-3/2. The shift on the central parts generally
amounts to several cells over one timestep, while in the outer
parts ni is small, and possibly zero. One can wonder whether
or not problems may arise at the radii Ri where
(i.e. at radii where the azimuthal shift corresponding
to the third substep of the transport step is discontinuous).
More generally
we want to examine the question of the continuity of
with respect to
.
In order to check for this
continuity, we assume
,
where N is an integer,
and we work out the behavior of
in the vicinity of
.
Since we have to use the explicit form of the
"
'' operator, we adopt the van Leer algorithm
(van Leer 1977), which
is widely used. Some straightforward algebra leads to:
As we said in Sect. 2, it is a common practice to
alternate the radial R and azimuthal T transport
operators every other timestep. In this modified algorithm, Rshould usually be applied first, unless the velocity field is
updated just after applying the T operator from
the new momenta and new density fields, or unless special
care is devoted to the j indices. Indeed swapping blindly the Rand T operators would result in moving radially the matter
with the radial velocity it actually has
cells upwards,
and would quickly end in a non-physical staggering everywhere
.
Copyright The European Southern Observatory (ESO)