Description
This update introduces the concept of line emission spectra for point sources and sources using a built-in geometry. The emission spectrum of these sources is constant across space and is defined through a single SED instance. This update does not affect imported sources where the emission spectrum can vary across space.
In this implementation, line spectra are defined by a list of wavelengths and the corresponding luminosities (integrated over the line profile). All photon packets are emitted exactly at the line wavelengths, i.e. the lines have zero width. As a result, the specific luminosity of the line spectrum is numerically undefined. This means that the line spectrum must be normalized by defining the integrated luminosity over a wavelength range that includes one or more of the line wavelengths. Also, line spectra are always fully distinct from regular "continuum" spectra. To combine line and continuum spectra, one can configure two sources with the same spatial geometry.
Specifically:
The SED class now has two distinct abstract subclasses: ContSED for continuum spectra (i.e. all existing classes but one) and LineSED for line emission.
The SingleWavelengthSED class now derives from LineSED.
The new ListLineSED and FileLineSED classes allow configuring a line spectrum with multiple lines.
The new LuminosityNormalization class can be used to normalize a line spectrum.
Motivation
We implemented these features as a way to experiment with line emission spectra in preparation for a (much) more involved implementation of line emission for imported sources. Also, having these features available for built-in geometries allows configuring toy models for testing and benchmarking.
Tests
Test cases were added for the new features. The existing test cases still run with the following exception. The LyaSEDDecorator and LyaSEDFamilyDecorator classes have spectra properties that now should be of type ContSED rather than the more general SED. This requires a small change in the ski file. The PTS ski file upgrade procedure handles this change (see the corresponding PTS9 pull request).
Description This update introduces the concept of line emission spectra for point sources and sources using a built-in geometry. The emission spectrum of these sources is constant across space and is defined through a single SED instance. This update does not affect imported sources where the emission spectrum can vary across space.
In this implementation, line spectra are defined by a list of wavelengths and the corresponding luminosities (integrated over the line profile). All photon packets are emitted exactly at the line wavelengths, i.e. the lines have zero width. As a result, the specific luminosity of the line spectrum is numerically undefined. This means that the line spectrum must be normalized by defining the integrated luminosity over a wavelength range that includes one or more of the line wavelengths. Also, line spectra are always fully distinct from regular "continuum" spectra. To combine line and continuum spectra, one can configure two sources with the same spatial geometry.
Specifically:
SED
class now has two distinct abstract subclasses:ContSED
for continuum spectra (i.e. all existing classes but one) andLineSED
for line emission.SingleWavelengthSED
class now derives fromLineSED
.ListLineSED
andFileLineSED
classes allow configuring a line spectrum with multiple lines.LuminosityNormalization
class can be used to normalize a line spectrum.Motivation We implemented these features as a way to experiment with line emission spectra in preparation for a (much) more involved implementation of line emission for imported sources. Also, having these features available for built-in geometries allows configuring toy models for testing and benchmarking.
Tests Test cases were added for the new features. The existing test cases still run with the following exception. The
LyaSEDDecorator
andLyaSEDFamilyDecorator
classes have spectra properties that now should be of typeContSED
rather than the more generalSED
. This requires a small change in the ski file. The PTS ski file upgrade procedure handles this change (see the corresponding PTS9 pull request).