Matching atomic data
Kurucz models use the Allende Prieto et al. (2018) line list, with ExoMol TiO and H2O for cool stars; TLUSTY models keep the original OSTAR2002 / BSTAR2006 atomic data.
Pipeline of Radiative Intensity Synthesis for Meshed Atmospheric Surfaces:
the specific-intensity grids behind SPAMMS.
To compute the spectrum of a distorted star, a code like SPAMMS has to know how much light each element of the surface sends towards the observer. Every element is seen at a different angle, so a single emergent flux is not enough: what is needed is the specific intensity, at every wavelength and for every viewing angle μ = cos θ. Near the centre of the visible disc we look deep into the atmosphere, into hotter layers; towards the limb we only see the cooler outer layers. As a result, both the continuum and the strength and shape of the lines change with μ, and that angular dependence is what produces limb darkening.
Those intensities must be computed in advance for every model atmosphere of a grid, at high spectral resolution and at many angles. Done by hand, this is a long and repetitive task: each model has to be read, synthesised with the right atomic data and line lists, and stored in a format the spectral-synthesis code can use. With hundreds of models, several microturbulence values and wavelength ranges of thousands of Angströms, the number of syntheses and the volume of data quickly become large, and keeping everything consistent becomes as important as the computation itself.
PRISMAS (Pipeline of Radiative Intensity Synthesis for Meshed Atmospheric Surfaces) automates the whole process. It wraps the synple spectral-synthesis code (Allende Prieto; SYNSPEC by Hubeny et al. 2021) and turns a folder of LTE or non-LTE model atmospheres into specific intensities at 101 angles and calibrated Eddington fluxes — for the wavelength range, sampling and microturbulence you choose.
From a folder of model atmospheres to SPAMMS-ready specific intensities.
.tar.gz files.What sets PRISMAS apart: from the choice of atmospheres to the final grids.
Kurucz models use the Allende Prieto et al. (2018) line list, with ExoMol TiO and H2O for cool stars; TLUSTY models keep the original OSTAR2002 / BSTAR2006 atomic data.
Wavelength range, spectral sampling, microturbulence values, μ grid and line lists are all set by the user, to build grids tailored to each problem.
Stellar parameters and chemical composition are decoded from the native names of each grid, so whole folders run without writing any configuration.
Sparse μ grids are rebuilt to 101 angles with PCHIP, or skipped altogether with the synple PRISMAS branch.
The same command runs a single model, a folder in parallel over a CPU pool, or one model per job in the job arrays of a cluster.
The full 2026 grids (3000–9000 Å, Δλ = 0.01 Å, vmic = 1–10 km s−1) are too large to host, but available on request.
One model, a whole folder, or a cluster job: the same pipeline in three execution modes.
One Kurucz-Castelli atmosphere, synthesised between 3000 and 5000 Å for two microturbulences.
python3 prismas.py --opt 0 --mode KC \
--modeldir ./Examples/kurucz_castelli/ \
--model m0.50t49000g4.5am05k2odfnew.dat \
--numpydir ./Examples/kurucz_castelli/results/ \
--wl [3000,5000] --vmic [2,5] --dw 0.01
Every TLUSTY model in a folder, with the original TLUSTY line list, spread over five CPU cores.
python3 prismas.py --opt 1 --mode T \
--modeldir ./Examples/tlusty/ \
--numpydir ./Examples/tlusty/results/ \
--wl [3000,5000] --vmic [1.0,5.0] --dw 0.1 \
--linelist [gfTLUSTYALL.dat] --ncpus 5
A single model per job, ready to be launched as one element of a job array on an HPC scheduler.
python3 prismas.py --opt 2 --mode KC \
--modeldir ./Examples/kurucz_castelli/ \
--model m0.50t49000g4.5am05ak2odfnew.dat \
--numpydir ./Examples/kurucz_castelli/results/ \
--wl [3000,5000] --vmic [10] --dw 0.01