SPECTRUM carries out some preliminary calculations
before getting down to the business of calculating the spectrum
itself. SPECTRUM uses as input a stellar atmosphere model with the
format of a Kurucz model, but actually only utilizes
the columns corresponding to mass depth, temperature and gas
pressure. SPECTRUM then computes for itself
the electron number density and the number densities of important
species, namely, hydrogen, helium, carbon, nitrogen, oxygen, their
ions and the relevant diatomic molecules. Specifically, in this
preliminary stage, SPECTRUM solves a system of 7 nonlinear equilibrium equations to determine
those number densities. The exact details of these equations depend
upon the effective temperature of the star. For
K, no molecules, except for H
are included in the equilibrium
equations, but for lower temperatures molecules are included. The 7
equilibrium equations are:
1) Equilibrium equation for hydrogen, including neutral and ionized
hydrogen, the H ion, H
, H
, and, for
K, H
O, CH, NH and OH.
2) Equilibrium equation for Helium, including two stages of ionization.
3) Equilibrium equation for Carbon, including up to four stages of ionization
(i.e. C I, C II, C III, C IV and C V), and the molecules
CH,CN,CO and C (the number of stages of ionization depends on the
effective temperature of the model. For instance, for
K,
four stages of ionization are considered, but the molecules are left out;
likewise for the Nitrogen and Oxygen equations below).
4) Equilibrium equation for Nitrogen, including up to four stages of
ionization, and the molecules CN, NH, NO, N.
5) Equilibrium equation for Oxygen, including up to four stages of
ionization, and the molecules CO, NO, OH, O.
6) Charge balance equation, including electron contributions from the
ionization of hydrogen, helium, carbon, nitrogen and oxygen and the
following species: sodium, magnesium, aluminum, silicon, sulfur,
potassium, calcium and iron.
7) Total number density, including all species mentioned above, which
must agree with
as read from the stellar atmosphere.
This system of equations is solved iteratively at each of the levels in the stellar atmosphere. Electron number densities so derived are always within 1% of those in the stellar atmosphere model. Convergence is rapid and the abundances of the different species and molecules are stored for each of the atmosphere levels in memory.
SPECTRUM then moves on to the computation of reference opacities and
optical depths at each level in the atmosphere. Opacities currently
included in SPECTRUM are: hydrogen bound-free and free-free, He I
bound-free and free-free, He II bound-free and free-free, H
bound-free and free-free, H
opacity, hydrogen Rayleigh scattering,
H
Rayleigh scattering, He I Rayleigh scattering, He I
free-free opacity,
low temperature opacities (including continuous opacities due to C I,
Mg I, Al I, Si I, Ca I, Fe I, CH, OH and MgH), intermediate temperature
opacities (including opacities due to N I, O I, Mg II, Ca II and
Si II) and electron scattering. With version 2.75, bound-free
opacities for He I, C I, Mg I, Si I and Ca I have been updated with
data from the Opacity project, although some of these have been modified
by comparison with observations.
With these preliminaries completed, SPECTRUM can now begin to compute the synthetic spectrum. The numbers or words in parentheses correspond to the parameters used in the ultraviolet part of the spectrum. SPECTRUM basically computes the spectrum in 20 (5) Å blocks, although smaller segments of spectra can be synthesized. For each 20 (5) Å block, SPECTRUM first computes the continuum opacity and the emergent continuum flux at both ends of each block (the exception to this is if the 20 (5) Å block contains a continuous absorption edge. Then SPECTRUM modifies the red end of this block to 0.05 Å before the absorption edge; the next block straddles the absorption edge, and then the new block starts at 0.05Å past the absorption edge). The continuous opacity and continuum flux at every intermediate point is then estimated by interpolation. SPECTRUM then proceeds to the calculation of the line opacity at each spectrum point. SPECTRUM must decide, at every spectrum point, which spectral lines to include in the calculation of the line opacity. To do this SPECTRUM maintains two lists of lines. The first list includes all spectral lines in the line file which lie within 20Å (10Å in the optical) of the current spectrum point. For all the lines in this list, SPECTRUM assigns a ``computation radius'' based upon the distance from line center at which the line depth drops below 0.0001 continuum units. If the computation radius of a line includes the spectrum point being currently computed, it is moved from the first list into a second list which comprises all of the lines which contribute to the line opacity at that point. Once SPECTRUM has stepped entirely through the computation radius of a line, that particular line is dropped from the second list as well.
For each line in the second list, the abundance of the ion in question
and the level population for that particular transition are computed
using the Saha and Boltzmann equations. The broadening parameter is
then computed; broadening mechanisms include natural, van der Waals
(see specifics in § ) and quadratic Stark
broadening (see, however, hydrogen and helium lines below). The line
opacity at that point (for each of the levels in the atmosphere) is
then computed using the Voigt function. The line opacity, line optical
depth, continuum opacity and continuum optical depth are then included
in a ``line contribution'' calculation which, when ratioed with the
continuum flux, leads to the calculation of the normalized residual
intensity at that spectral point. SPECTRUM calculates in its default
mode the disk-integrated spectrum. This quantity, along with the
wavelength is then written to the output file. As we saw above, this
output can be modified by specifying certain SPECTRUM flags.
The hydrogen lines are computed by a routine adopted from Deane
Peterson, used in the spectral synthesis code SYNTHE (Kurucz, 1993),
which includes Stark and resonance broadening and fine
structure in the core, as well as the Lyman- quasi H
satellites. To save time, the full calculation of the
hydrogen-line opacity is performed only at 1Å intervals, except within
5Å of the line core. The line opacity at intermediate spectral points
is then obtained by 4 point interpolation (performed at each of the
layers in the atmosphere). Hydrogen lines are included in the line
opacity calculation for all points nominally within 2000Å of the line
center (although this is modified in a complicated sort of way for the
crowded lines in the vicinity of the Lyman, Balmer and Paschen
convergences to avoid spurious line opacity in that region). The code
for SPECTRUM includes 130 Lyman lines, 250 Balmer lines, 246
Paschen lines, 30 Brackett lines, 29 Pfund lines and 28 Humphreys
lines. The computation for the Balmer jump is quite complex and
includes computation of the lowering
of the ionization energy using the Debye approximation, overlap of
energy levels near to the continuum, etc. This more correct
computation of the Balmer jump is also applied to the Paschen
and Lyman convergences, but not yet to the Brackett, Pfund and
Humphreys convergences.
The He I lines are computed on the basis of new line profile
calculations of Beauchamp et al.
(private communication & Beauchamp et al., 1997). These line
profiles yield very accurate reproductions of the He I lines,
including forbidden components. He II lines are currently not
included in SPECTRUM, but will likely be included in an upcoming version
upgrade. He I lines are computed only for models with
K. We note that certain helium lines in the red -
especially 5875Å and 6678Å - are strongly affected by non-LTE and are
thus not well reproduced by SPECTRUM.
Certain very strong lines (such as the Ca II K and H lines), and a handful of lines for which SPECTRUM's ``calculation radius'' is not adequate are not included in the luke.lst file, as they are calculated in a special routine. This routine allows a larger computation radius for those lines. This routine for strong lines might include, in the future, individualized source functions for certain strong lines, or even a more sophisticated calculation based on a multi-level atom.