The code contained here is utilized to create simulations of existing exoplanetary systems that model a hypothetical, smaller planet in addition to a real, pre-existing Hot Jupiter planet orbiting a host star. These exoplanetary systems were discovered by the TESS and K2 surveys, and they all have two things in common: an unusally high concentration of lithium in the host star that isn't consistent with the age and spectral type of the star, and one eccentrically orbiting exoplanet. To explain these two factors, we posit that planetary engulfment occurred, or the inspiral and eventual consumption of a lithium-rich planet by the host star due to dynamical instabilities in the star system. This would enrich the host star with lithium and would also throw off the orbit of the remaining exoplanet in the system, explaining its eccentricity.
- randgen_p1.c and randgen_p2.c are files that randomly generate parameters for the remaining/pre-existing planet (referred to as Planet 1 or p1 throughout this work) and the hypothetical, lithium-rich planet (similarly referred to as Planet 2 or p2.) They generate any specified number of input files and corresponding folders that these files are automatically placed in.
- For the pre-existing planet, the mass, radius, and semimajor axis are all known, and orbital parameters like longitude of the ascending node, argument of pericenter, and true anomaly are randomly drawn from 0 to 2π radians. Eccentricity and inclination are set to zero to simulate conditions before instability.
- For the hypothetical planet, mass and radius are calculated based on the lithium concentration in the star (code not outlined in this repository.) Semimajor axis is based on the critical separation distance between the two planets that guarantees Hill stability, and is outlined in the file testsep.c.
- J2GR_rand.c is the file that actually simulates the orbits of these two planets around their host star. It utilizes the REBOUND and REBOUNDx N-body integrator code repositories, found on GitHub at https://github.com/hannorein/rebound and https://github.com/hannorein/reboundx.
- This code can be run for one simulation or for many. One simulation can be conducted by piping in input files for the parameters of the star and two planets and a designated output folder for data on the orbital parameters of the two planets. GNUParallel (https://www.gnu.org/software/parallel/) was used to run hundreds or thousands of simulations by piping in a range of numerically increasing file names (ex. output1, output2...)
- planet1.py and planet2.py are python scripts that take the output files, which contain orbital data for both planets throughout the timespan of the simulation, and graph the parameters over time.
- quickparse_p1.py and quickparse_p2.py are python scripts that take the output files and determine what the outcomes were for the planets - whether either of them remained semistable (having an eccentric orbit) in the system, were ejected out of the system, or were engulfed into the host star. We aimed to find systems that had a semistable/eccentric orbit for Planet 1 (the pre-existing planet) and an engulfment for Planet 2 (the hypothetical planet).
This code is intended to be a showcase of work done, and requires several other customized Makefiles/downloaded libraries to run that are intentionally not provided here.
- This work would not be possible without the continued mentorship of Dr. Seth Jacobson and the Planetary Makerspace Lab at Michigan State University.
- In addition, this work was initially funded by NSF Grant #2349002 and the ACRES (Advanced Computational Research Experience for Students) REU at Michigan State University, which I participated in during Summer 2023. Many thanks to Dr. Brian O'Shea, Dr. Danny Caballero, Dr. Mahmoud Parvizi, Carolyn Wendeln, and Ishika Ghosh for their mentorship, as well as to Michigan State University's ICER (Institute for Cyber-Enabled Research) for their support and continued usage of the HPCC (High Powered Computing Center) that powered this work.