Overview

This repository contains scripts to perform all of the analysis presented 
in Smith, Hallman, Shull, & O'Shea (2001, ApJ, 731, 6).

Star Formation Rate: figures 1, 2.
Directory: star_formation_rate
star_formation_rate_quick.py - calculates global star formation history 
    from a single dataset.  Creates an ascii file with columns:
    redshift; lookback time; comoving star formation rate density in 
    Msun/yr/Mpc^3; number of star particles; total stellar density in 
    Msun/Mpc^3; ratio of stellar density to critical density; metal 
    formation rate in Msun/yr/Mpc^3; total metal density contained in 
    stars in Msun/Mpc^3; and ratio of stellar metal density to critical 
    density.
    Usage: mpirun -np <procs> python star_formation_rate_quick.py <dataset>

Halo Mass Function: figure 3.
Directory: halo_mass_function
run_halo_finder.py - runs Parallel HOP on a single dataset.
    Usage: mpirun -np <procs> python run_halo_finder.py <dataset> --parallel
get_halo_mass_function.py - calculates halo mass function from halo 
    catalogs.  Also, calculates the Warren mass function.

Baryon Phases: figures 4, 5, 8, 9.
Directory: baryon_phases
sim_phase.py - calculates total baryon mass in warm, WHIM, hot, and 
    condensed phases for all datasets.  Phases are defined as:
    Condensed: baryon overdensity (rho/<rho>) >= 1000.
    All others for baryon overdensity < 1000.
    Warm: T <= 1e5 K
    WHIM: 1e5 K < T <= 1e7 K
    Hot: T > 1e7 K
    Usage: mpirun -np <procs> python sim_phase.py <sim_par_file> --parallel
    Note 1: the total baryon density will decrease as stars are formed.  The 
    total mass in the condensed phase is Omega_b - (Omega_warm + Omega_WHIM 
    + Omega_Hot).
    Note 2: this script requires the field_utils module, available at
    https://bitbucket.org/brittonsmith/field_utils.

Phase Flux: figures 6, 7.
Directory phase_flux
phase_flux.py - calculates flux of material from one phase to another 
    for all datasets.
plot_phase_fluxes.py - generates plot of total input/output of material 
    for all phases (figure 6).
plot_phase_fluxes_detail.py - generates plot of inputs and outputs to and 
    from various phases (figure 7).

Synthetic OVI Absorbers: figures 11-17, 21 (right panel)
Directory: synthetic_absorbers
plan_datasets.py - takes in an enzo parameter file and calculates a set 
    of redshift outputs required to span the desired redshift interval for 
    creating a sample of synthetic absorbers.
make_light_rays.py - creates a set of 500 light rays extending from z = 0 to 
    z = 0.4.
    Usage: mpirun -np <procs> python make_light_rays.py <sim_par_file>
    Note 1: do NOT add --parallel to this script.
    Note 2: to get OVI and other metal column densites, the ion_balance 
    module is required.  Please contact Britton Smith 
    <brittonsmith@gmail.com> to obtain this module.

To calculate dn/dz, Omega_OVI, and average physical quantities associated 
with absorbers, use the light_ray_tools module, available at
https://bitbucket.org/brittonsmith/light_ray_tools.

Projections: figure 18.
Directory: projections
sim_full_projections.py - makes projections for all datasets.
    Usage: mpirun -np <procs> python sim_full_projections.py <sim_par_file> --parallel
    Note 1: to get OVI and other metal column densites, the ion_balance 
    module is required.  Please contact Britton Smith 
    <brittonsmith@gmail.com> to obtain this module.
    Note 2: image for figure 18 was produced using the plot_modifications 
    module, available at: https://bitbucket.org/samskillman/plot_modifications.

phase_profiles: figures 19, 20, 21 (left panel)
Directory: phase_profiles
make_phase_profiles.py - makes 2D profiles for a set of fields.  Edit the 
    profiles_2D  variable to control which fields are profiled.
    Note: to get OVI and other metal column densites, the ion_balance 
    module is required.  Please contact Britton Smith 
    <brittonsmith@gmail.com> to obtain this module.