Although all rates should extrapolate correctly at low density, the
level population calculation requires the inversion of large matrices
of rates. In most cases, the largest elements of the matrix are the
spontaneous decay rates (A values) for allowed transitions. For highly
charged ions these can exceed 10 s
. At low densities the
smallest rates of interest are the collisional rates and recombination
rates. XSTAR attempts to avoid inverting singular matrices by discarding
rows and columns whose largest elements differ from the largest element in
the matrix by more than the machine precision (and then assuming the
populations in the associated levels are zero). This can have the effect of
producing inaccurate solutions particularly at low densities
since some physically important transitions (notably recombination)
may be discarded. Unfortunately, there is no clear way of automatically
informing the user when this is happening. A rough rule of thumb is that
densities less than approximately 1000 should be avoided when
iron may be ionized beyond Fe XVII.
An indication of possible numerical problems is given by the final
integer on each line of the output log file. This is the number of
iterations required in order to reach thermal equilibrium and charge
neutrality. Models with good convergence will typically have values
of 5 or less for this quantity, except for the first step and possibly
near ionization fronts. Otherwise, if this integer is large
(i.e. greater than, say, 20), and if the value of heating - cooling
(`h-c') is greater than
1 - 2, then it is possible that the density is lower than can be
treated accurately by XSTAR.