PRObing Mass loss in Exoplanetary Transits with Hydrostatic, Evaporative and User-defined Scenarios. PROMETHEUS is a radiative transfer tool to compute lightcurves and transmission spectra of an object transiting its host star, typically an exoplanet. The code calculates the amount of absorption during the transit for gaseous media in arbitrary geometry. PROMETHEUS supports various density profiles beyond the canonical hydrostatic (barometric) law for dense atmospheres, such as the outgassed cloud of an exomoon or a circumplanetary torus. For these tenuous exospheres, line absorption by various atoms and ions is considered (with line lists from NIST). Additionally, it is possible to model absorption by molecules based on ExoMOL lookup tables.
Note that this code is written in python 3.8.3. Compatibility testing has so far been very limited.
- Run
git clone https://github.com/andreagebek/Prometheus.git
in your terminal in a directory of your choice (e.g. 'exoplanets'). This will create the 'Prometheus' base folder in the 'exoplanets' folder. - Create the following subfolders in the 'exoplanets' folder: setupFiles, output, figures (
mkdir setupFiles output figures
). Now, these three folders and the 'Prometheus' folder should be on the same level.
- Navigate to the git subfolder (here: '/Users/agebek/exoplanets/Prometheus') and start the setup program
by typing
python prometheus.py setup
in your terminal in the git subfolder. This starts the Q&A session in the terminal to setup a Prometheus calculation. - Answer all the questions in the Q&A session. Only answers within the specified intervals are allowed. This Q&A session determines the density profiles of consideration (e.g. torus), the stellar and planetary parameters of the system (e.g. stellar radius), the abundances of the absorbers in the system, and finally parameters related to the grids. Note that the runtime of the code is mostly set by the choice of the 5-dimensional grid (wavelength, time, three spatial dimensions).
- During setup a name to store the parameter txt file has to be entered (e.g. 'testSimulation').
This file is located at '/Users/agebek/exoplanets/setupFiles/testSimulation.txt'. To run a Prometheus
calculation, navigate to the git subfolder and type
python prometheus.py testSimulation
in the terminal. This will create the file '/Users/agebek/Prometheus/output/testSimulation_output.txt' which contains the resulting (time-dependent) transit spectrum of the calculation.
Adding another exoplanet to the list of available systems is straightforward: Simply add the necessary information about the planet and its host star to the AvailablePlanets class in the celestialBodies.py script. Also extend the self.planetList in this class with the newly added object.
Adding more absorption lines of atoms and ions is relatively straightforward. The absorption cross sections are based on data of the NIST line list.
- Add the necessary information to the AvailableSpecies class in the constants.py file.
- Append the line list to the LineList.txt file in the Resources folder. The line list can be obtained from the NIST database as shown in the figure. Carefully copy all the settings shown in this figure (except for the Spectrum field at the top where you can select the species).
Molecular absorption is treated differently than absorption by atoms and ions in prometheus. The absorption cross section for molecules is absorbed based on a lookup table, where the cross sections are tabulated based on temperature, pressure, and wavelength. These lookup tables can be obtained from ExoMol (https://www.exomol.com/). Since these files are quite heavy, none of them are included in this git folder by default. To add absorption features from molecules, follow these steps:
- Open the ExoMol website which contains the line lists for various molecules (https://www.exomol.com/data/molecules/).
- Select the molecule and isotope of your choice.
- Navigate to the opacity files, and download the TauREx hdf5 lookup table.
- Create a folder named 'molecularResources' at the same level as the Prometheus base folder .
- Copy the file into the molecularResources folder, and rename it to a name that you also use during setup (e.g. 'H2O.h5').
- During the setup Q&A session, when asked to add absorbers, add a molecular absorber and name it according to the lookup table name ('H2O' in this example).