In the following discussion we use notation of Papers I and II. The basic framework and the methods used for the formal solution and the solution of the scattering problem via operator splitting are discussed in detail in Papers I and II and will thus not be repeated here.
In the following we assume (without restriction) that we have periodic
boundary conditions in the and
coordinates, and for the
coordinate that the `bottom' (large optical depth) is at
and the `top' (interface to empty space) is at
. The implementation of the periodic boundary conditions within
our framework is simple:
We use a ``full characteristics'' approach that completely tracks a set
of characteristics of the radiative transfer equation from the outer
boundary through the computational domain to their exit voxel and takes
care that each voxel is hit by at least one characteristic per solid angle.
One characteristic is
started on each boundary voxel (in this case these are the planes
and
) and then tracked until it leaves the
other boundary. The direction of a bundle of full characteristics is
determined by a set of solid angles
which
correspond to a normalized momentum space vector
. The
periodic boundary conditions are simply implemented as a wrap-around
(e.g., passing
for
wraps around to
)
and continuing of the characteristic until it leaves at the
boundary. Characteristics with very small
would require a
large number of wrap-arounds (and eventually would lead
to infinitely long characteristics), therefore, we limit the number of
wrap-arounds per voxel to a prescribed value, typically around 16 (tests
have shown that larger values do not affect the results, values as
small as 4 are usable in plane-parallel tests). The code is
parallelized as described in Paper II.