This repository contains the bulk of code used in the analysis of stellar feedback-driven outflows started Fall of 2021. (Currently active). The work here is an extension of computational analysis conducted by Professor Christensen, Hollis Akins, et al., which has been directed to understand galactic star formation quenching in the low-mass, dwarf/satellite regime. This extension of their analysis uses the DC Justice League Suite
of cosmological, hydrodynamic simulations constructed with Charm N-body Gravity solver (ChaNGa) and prepared by Ferah Munshi (University of Oklahoma) et al. Equipped with these simulations, the computations here take specific aim at gas particles stripped from satellites that have been heated by supernovae (stellar feedback), and is motivated by a desire to understand how such feedback effects, if at all, contribute to satellite quenching, if they aid generally excepted modes of quenching (i.e., ram pressure stripping, tidal stripping), and how they impact satellite morphology.
Note that the datasets used for this study are not included here for sake of their larger sizes, but can be found on Quirm (@grinnell.mathlan) via /home/lonzaric/astro_research/Stellar_Feedback_Code/SNeData/
.
Disclaimer. Sections of code utilized here are adapted from Hollis Akins' Justice League Code repository. In the files where such adaptations occur, attributions, along with a permalink to the source file, are given in the header. The permalink to Akins' source repository is given below:
https://github.com/hollisakins/Justice_League_Code.git
All gas particles treated in this research are sourced from the 19 satellite galaxies (specified by their assigned identifier in each respective simulation), chosen since they quench by z = 0 and have virial gas masses above 2e7 Msol listed as follows:
-
Sim h148:
- 13, 28, 37, 45, 68, 80, 283, 278, 329
-
Sim h229:
- 20, 22, 23, 27, 55
-
Sim h242:
- 24, 41, 80
-
Sim h329:
- 33, 137
discharged
- Gas particles that have been removed from the disk of their respective satellite galaxy. This includes both gas moved to halo, and that moved beyond the virial radius. (Properties given for timestep after discharge event.)
predischarged
- A collection of the same particles in discharged, but instead giving the properties of each particle prior to their discharge event (thereby allowing pre- and post-discharge comparisons).
heated
- Gas particles in discharged that experienced supernova(e) heating (functionally, their 'cooling' was turned off) in the timestep prior to being discharged.
- (Note: this dataset can be also be obtained by selecting particles from discharged with
sneHeated==True
.)
preheated
- Similar to predischarged; Consists of the same particles in heated, but with properties of each particle for the timestep prior to discharge.
accreted
- Gas particles in the halo or beyond the virial radius of a satellite that are accreted onto the satellite's disk. (Properties given for timestep following accretion event.)
- Note that this includes particles that were previously discharged from the satellite's disk, and those that were not.
reaccreted
- A subset of accreted; Gas particles in the halo or beyond the virial radius of a satellite as a result of a prior discharge event that are reaccreted onto the satellite's disk. (Properties given for timestep following reaccretion event.)
base.py
- A script containing basic functions used for ubiquitous adminstrative tasks such as obtaining the timesteps for a specified simulation or calling halo keys
{sim}_{haloid}
(e.g. 'h148_13') specifying a satellite galaxy and the simulation it belongs to. Additionally, this script contains arootPath
identifier that you should specify as the root directory containing simulation data when running an analysis code in this repository. (Several of the proceeding scripts and notebooks usebase.py
, and will callbase.py
forrootPath
to streamline directory switching.)
particletracking.py
- An adaption of code from Akins H. by the same name , this script tracks gas particles for a specified simulation and specified satellite. Tracking begins for the first snapshot where the satellite comes within 2R_vir of its host galaxy, and ends at redshift z = 0. Any gas particles within the satellite (while it is within this radial limit) for at least one snapshot are included.
- Uses as input data: simulation snapshots,
../SNeData/filepaths_haloids.pickle
(Akins H.) and generates a pickle file../SNeData/iords/{sim}_{haloid}.pickle
and appends to an hdf5../SNeData/tracked_particles_v2.hdf5
('v2' to differentiate from Akins' particle tracking). - Tracking can be run from the command line via
python particletracking.py h148 13
, whereh148
specifies the simulation and13
specifies a corresponding satellite. (The bash scriptrunall.sh
can be used to run multiple instances of particle tracking.)
analysis.py
- Contains analytical functions to calculated such things as exit angles, used primarily by the compiler when producing datasets for this study.
compiler.py
- This script contains the functions needed to both read and write the .hdf5 datasets used in this treatement.
- Writing: .hdf5 files are generated in
../SNeData/
from selections of gas particles in../SNeData/tracked.particles_v2.hdf5
. Useful keys (e.g.,sat_Mvir
,temp
) are computed and appended here for later use in the analysis notebooks (implemented in thewrite_{dataset}.py
scripts). - Reading:
read_{dataset}
functions are included, and can be called from, here to read off the .hdf5 files into dataframes.
write_discharged.py
,write_heated.py
,write_reaccreted.py
- Each of these scripts runs a
calc_{dataset}
function that is run iteratively over all selected satellites. - When run in the terminal (e.g.,
python write_discharged.py
), an .hdf5 slice of../SNeData/tracked_particles_v2.hdf5
with the desired selections of particles. e.g., runningwrite_discharged.py
has as outputs../SNeData/predischarged_particles.hdf5
,../SNeData/discharged_particles.hdf5
,../SNeData/accreted_particles.hdf5
.
StellarFeedbackAnalysis.ipynb
(Note:StellarFeedback_p1
andStellarFeedback_p2
are now merged)
- This notebook includes basic analysis of kinematic et al. properties like exit angles and temperatures for discharged and accreted gas particles, along with more rigorous analysis (e.g., using fractional values like r/R_vir, v/V_esc to generate more meaninful results) between gas particles that were and were not SNe-heated just prior to discharge. Additionally, this introduces reaccreted particles into the study.
- Furthermore, this includes comparisons of the properties of particles pre- and post- discharge/accretion, and comparisons of those that were SNe-heated prior to discharged against those that were not.
ReaccreationAnalysis.ipynb
- This notebook takes specific aim at studying reaccretion (or lack thereof) of previously discharged particles back onto their respective satellite's disk. This includes looking at reaccretion times and how SNe-heating affects various aspects of reaccretion.
SfrAnalysis.ipynb
- The third area of focus is addressed here; specifically, in cooperation with research group members who studied star formation rates (SFRs) in our simulation galaxies, we apply SFR histories to the analyses present in the
StellarFeedbackAnalysis.ipynb
andReaccreationAnalysis.ipynb
to identify further relations between SFR and SNe effects when it comes to both mass loading and SF quenching.
../SNeData/
- Contains all of the data (except for original simulations) used in particle tracking, compiling, and analysis with. While this data is not included here for sake of its size, it can be found in the math.grinnell.edu directory
~/home/lonzaric/astro_research/Stellar_Feedback_Code/
. - Simulations can be found on Quirm at request.
DataAcquisition
- Contains all
write_{dataset}.py
scripts needed for compiling the specific datasets like discharged and reaccreted used in the analysis here.
F21plots
andS22plots
- Contains all plots generated for final research paper.
TestScripts
- Scripts and notebooks used for troubleshooting kept as reference material.
archive
- Depreciated scripts and notebooks.
Last rev. 11 Oct. 2023