The line-by-line radiative code SPARK

The numerical code SPARK is a Line-by-Line code for the simulation of high-temperature, low-pressure plasma radiation, with an emphasis on radiation from entry plasmas, plasma sources, and Hall effect thrusters.

The code has been developped in MATLAB and FORTRAN languages, and is freely distributed under a GNU General Public License.

The spectral database of the code encompasses over 130 bound, bound-free, and free radiative transitions. This allows simulating high temperature gases and plasmas radiation for Earth (Air), Martian-type (CO2-N2), Titan (N2-CH4), and Gas Giants (H2-He) mixtures, with typically 10,000 to 1,000,000 lines and the superposition of several continua. Other gas mixtures are partially implemented, enabling a variety of other simulations in general plasma science. Namely specialized version of the database is provided for Atomic species from n=1 (H) to 32 (Kr), including single and double ionized species, which is useful for applications such as LIBS spectroscopy.

The current version of the code is SPARK v3.0, dated February 2021.

For any questions please contact the developper of the code:


The High-temperature nonequilibrium database CDSDv

The CDSDv database has been developed on the basis of the CDSD4000 database, and tailored for broadband radiative transfer applications such as Martian entries.

At the price of a limited loss in accuracy, a much more compact database is achieved, allowing fast and efficient radiative transfer calculations involving for high-temperature gas mixtures containing CO2. It also allows calculating emission and absorption spectra with different rotational and vibrational temperatures, making it particularly suited for Spacecraft atmospheric entry applications.

The routine is described in the article "J. Vargas, B. Lopez, and M. Lino da Silva, CDSDv: A Compact Database For The Modeling of High-Temperature CO2 Radiation, J. Quant. Spectrosc. Radiat. Transf.,". The paper can be downloaded here.

The database and source code files are provided below, allowing a list of line parameters (line position; emission and absorption coefficients; Lorentz and Doppler widths) to be obtained from the gas input parameters such as pressure, temperatures, chemical composition, and spectral window.

The code and associated database are supplied under a Lesser GNU 3.0 license, and should be cited as the JQSRT article listed above. The relevant files are downloadable through the direct link below:

Detailed description of the code

The numerical code has been written for simulating low-pressure plasma applications in aerospace applications (simulation of planetary atmospheric entry radiation), using the line-by-line method. The code can however be applied to a variety of different applications, which include the simulation of plasma radiation in low-pressure test facilities, the simulation of atmospheric opacities, the simulation of radiation from combustion processes, or even other applications.

The code numerical routines are capable of simulating bound-bound atomic and molecular radiation with fine-structure effects (singlet, doublet and triplet transitions, with Lambda-doubling effects). Bound-free radiation like photodissociation, photoionization and photodetachment transitions can be accounted for according to available cross-sections from the literature, regardless of whether they are cross-sections integrated over specific temperature ranges, or state-specific cross-sections. Free-free transitions like Bremsthrahlung are also accounted for, using the most popular theoretical and semi-empirical expressions found in the literature.

The Voigt line profile routine is able to account for Doppler broadening, typically the dominant broadening process in low-pressure plasmas, but also Lorentz collisional broadening processes which can be important for higher pressures or higher electron densities (Stark broadening). The line profile routine has been specifically tailored for allowing fast and accurate spectral simulations of about a million of lines, through the application of an innovative algorithm which has recently been developed (2007). The line calculation accuracy is also fully customizable by the user, allowing to chose application-specific compromises between results accuracy, for a larger number of line points, and speed of calculation, for a lower number of points. The numerical efficiency of the line calculation routine is the main factor that enables the application of the code SPARK to large-scale spectral simulations with millions of lines (with a particularly relevance for CO2 IR radiation, which can be simulated through the more detailed line-by-line method).

The numerical code has been built with the maximum concern for flexibility. The spectral database is fully decoupled from the numerical routines, being handled in the form of ASCII text files. The code provides a graphical interface, useful for quick spectral simulations, but this merely works as an additional layer, as all the inputs-outputs of the code SPARK are handled through text-files. The SPARK code can therefore be utilized coupled to an hydrodynamic and a radiative transfer code, provided that the former provides inputs in text-file format, and the latter accepts outputs in the same format. Finally, the code has been programmed in two separate blocks: An excitation module, which provides the populations of the atomic and molecular species internal levels, and a radiative module, which calculates the emission and absorption coefficients from the levels handled by the excitation routine. The excitation routine currently calculates the internal levels populations considering multitemperature (Tr,Tv,Texc) Boltzmann distributions, but is also able to take into account arbitrary user-supplied nonequilibrium populations.

Spectral database of the code

CO2 Discrete


H2 Discrete

Lyman, Werner, Fulcher, B'-X, D-X, B"B-X, D'X

C2 Discrete

Swan, Philips, Mulliken, Deslandres-D’Azambuja, Fox-Herzberg, Ballik-Ramsay, Freymark, Herzberg-f, Herzberg-g, Herzberg-F

CN Discrete

Violet, Red, Leblanc

CO Discrete

Infrared, 4th Positive, Angstrom, 3rd Positive, Triplet, Asundi, Hopfield-Birge, C-X, E-X, F-X, G-X

CO+ Discrete

1st Negative, Comet Tail, Baldet-Johnston

N2 Discrete

1st Positive, 2nd Positive, Vegard-Kaplan, Lyman-Birge-Hopfield, Birge-Hopfield 1, Birge-Hopfield 2, Worley-Jenkins, Caroll-Yoshino, Worey, e-X, Wu-Benesh, IR Afterglow

N2+ Discrete

1st Negative, 2nd Negative, Meinel

NO Discrete

γ, β, δ, ε, β’, γ’

O2 Discrete

Schumann-Runge, Schumann-Runge Continuum

C3 Discrete

VUV, Swings (only T-dependent cross-sections)

Atomic Lines

n=1 (H) to n=36 (Kr) including neutrals, single and double ionized species, Mo, Xe, Xe+, Ba, Hg

Atomic Photoionization

n=1 (H) to n=12 (Mg) including neutrals, single and double ionized species, Si, Si+, Si++, S, S+, S++, Ar, Ar+, Ar++, Ca, Ca+, Ca++, Fe++

Molecular Photoionization

CO2, CO, CN, C2, N2, O2, NO, H2, C3, C2H

Molecular Photodissociation

H2, H2+


H, He, He+, C, C+, N, N+, O, O+, Ne, Ar, Xe, H2-, N2, N2-, O2


H-, He-, C-, N-, O-, O2-

Associated packages

The SPARK code includes a database routine (RKR-SCH) which is capable of producing accurate potential curves and transition probabilities from spectroscopic constants and transition moments found in the literature. The code works as follows: Spectroscopic constants from different bibliographical resources are imputed in a numerical routine which reconstructs the potential curves for the transition electronic states using an RKR method and calculates the upper and lower states wavefunctions solving the radial Schrodinger equation. Such wavefunctions are then coupled to accurate electronic transition moments from the literature, to yield appropriate Einstein coefficients.
A sample calculation of the full set of known potential curves for N2, obtained using RKR-SCH, is presented here.

The SPARK code has an associated radiative transfer routine (RADTRANS) which utilizes the ray-tracing method for the calculation of the radiative fluxes impacting a surface (such as a spacecraft thermal protections or a facility radiation detector). This routine is capable of running in a parallelized fashion in multiprocessor computers, and handling the very fine spectral grids (several million points) obtained using the SPARK code. Radiative transfer is therefore fully calculated resorting to the line-by-line method. The radiative transfer routine has insofar successfully been applied to the simulation of the radiative fluxes of a Martian atmospheric entry in the case of several different missions: The 2008 NASA PHOENIX and the 2016 ESA Schiaparelli entries in Mars, The 1995 Galileo entry in Jupiter, and upcoming M1 class entries in Neptune.

Example of a Ray-tracing calculation for a Jupiter entry at 47.5km/s.

License and how to obtain a version of the code

The SPARTAN code is distributed under a GNU Lesser General Public License, a free software license allowing researchers and developers to use and/or integrate the SPARTAN code into their own (even proprietary) software.

Any user wishing to use the code, and agreeing to the license terms, should fill the form below in order to request a copy of the latest version of the code. For verification purposes and to avoid spambots, it is also required to fill a CAPTCHA verification at the end of the registration form.

Name (*)




Company/Institution (*)






Country (*)


Email (*)


Research Interests




(*) mandatory fields

User's manual of the code

The code user's manual can be downloaded here.

Sample calculations using the SPARK Code

Sample calculations using the SPARK Code.

Emission coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 1000 K
Absorption coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 1000 K
Emission coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 5000 K
Absorption coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 5000 K
Emission coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 5000 K
Absorption coefficient for a 97% CO2- 3% N2 (Martian-type) equilibrium mixture at 5000 K
Comparison of a synthetical spectra generated by the SPARK code and a measured spectra for the CN VIolet Δv=0 System
Comparison of a synthetical spectra generated by the SPARK code and a measured spectra for the CN VIolet Δv=-1 System

(by design of the css) We always need some text after the figures. We add phantom text in this case.