def load_zeldovich_cholla(nSnap): data_cholla = load_snapshot_data(nSnap, chollaDir, format='old') current_z = data_cholla['current_z'] dens_dm_cholla = data_cholla['dm']['density'][...] dens_ch = data_cholla['gas']['density'][...][:, j_indx, i_indx] vel_x_ch = data_cholla['gas']['momentum_x'][...][:, j_indx, i_indx] / dens_ch vel_y_ch = data_cholla['gas']['momentum_y'][...][:, j_indx, i_indx] / dens_ch vel_z_ch = data_cholla['gas']['momentum_z'][...][:, j_indx, i_indx] / dens_ch E_ch = data_cholla['gas']['Energy'][...][:, j_indx, i_indx] U_ch = data_cholla['gas']['GasEnergy'][...][:, j_indx, i_indx] Ekin_ch = 0.5 * dens_ch * (vel_x_ch * vel_x_ch + vel_y_ch * vel_y_ch + vel_z_ch * vel_z_ch) temp_ch = get_temp(U_ch / dens_ch * 1e6, mu=1) t_min = 0.1 temp_ch[temp_ch < t_min] = t_min data_ch = [ dens_ch, vel_x_ch, temp_ch, ] return data_ch, current_z
distribution[nSnap]['enzo'] = {} data_enzo = load_snapshot_enzo(nSnap, enzo_dir, particles=True) current_z_enzo = data_enzo['current_z'] dens_enzo = data_enzo['gas']['density'][...] vel_enzo = np.abs(data_enzo['gas']['momentum_x'][...] / dens_enzo).flatten() vel_dm_enzo = np.abs(data_enzo['dm']['vel_x'][...]).flatten() hist_vel_enzo, bin_egdes = np.histogram(vel_enzo, bins_vel, density=True) hist_vel_dm_enzo, bin_egdes = np.histogram(vel_dm_enzo, bins_vel, density=True) distribution[nSnap]['enzo']['vel_gas'] = hist_vel_enzo distribution[nSnap]['enzo']['vel_dm'] = hist_vel_dm_enzo distribution[nSnap]['cholla'] = {} data_cholla = load_snapshot_data(nSnap, cholla_dir) current_z_cholla = data_cholla['current_z'] distribution[nSnap]['current_z'] = current_z_cholla dens_cholla = data_cholla['gas']['density'][...] vel_cholla = np.abs(data_cholla['gas']['momentum_x'][...] / dens_cholla).flatten() vel_dm_cholla = np.abs(data_cholla['dm']['vel_x'][...]).flatten() hist_vel_cholla, bin_egdes = np.histogram(vel_cholla, bins_vel, density=True) hist_vel_dm_cholla, bin_egdes = np.histogram(vel_dm_cholla, bins_vel, density=True) bin_centers = 0.5 * (bin_egdes[:-1] + bin_egdes[1:]) distribution[nSnap]['bin_centers'] = bin_centers distribution[nSnap]['cholla']['vel_gas'] = hist_vel_cholla
] field_labels = [ r'$\rho_{DM}$', r'$\rho_{b}$', r'$\rho_{HI}$', r'$T$', ] code_labels = [' (Enzo)', ' (Cholla)'] nSnap = 33 # n_snapshots = 10 # snapshots = range(0, n_snapshots) # for nSnap in snapshots: # data_ch = {} data_cholla = load_snapshot_data(nSnap, chollaDir_uv, cool=True) current_z_ch = data_cholla['current_z'] current_a_ch = data_cholla['current_a'] for i, field in enumerate(fields): # weight = data_cholla['gas'][field] # if field == 'temperature': weight = data_cholla['gas']['density'] if field == 'density_dm': data = data_cholla['dm']['density'][...] weight = data_cholla['dm']['density'][...] else: data = data_cholla['gas'][field][...] if field == 'HI_density': data[data > data.mean() * 2000] = data.mean() * 2000 weight = data_cholla['gas']['density'] data_weight = data * weight
T0 = 231. #K z_0 = 100. scale_0 = 1. / (z_0 + 1) # snapshots = range(0,36) # catalogs = load_listFiles( snapshots, halosDir ) z_list = [] t_cosmo_list = [] t_vir_list = [] halo_fracc_list = [] nSnap = 35 for nSnap in range(36): data_cholla = load_snapshot_data(nSnap, snapshotsDir, hydro=False) dens_dm = data_cholla['dm']['density'][...] # dens_gas = data_cholla['gas']['density'][...] current_a = data_cholla['current_a'] current_z = data_cholla['current_z'] M_total = dens_dm.sum() * dv t_cosmo = T0 * (scale_0 / current_a)**2 z_list.append(current_z) t_cosmo_list.append(t_cosmo) halosData = load_parents_list_file(nSnap, halosDir) nHalos = halosData['nHalos'] if nHalos == 0: M_halos = 0 T_halos = 0
# snapshots = [ 0, 2, 4] n_snapshots = len(snapshots) if rank >= n_snapshots: exit() nSnap = snapshots[rank] # nSnap = 0 n_power_data = 6 ps_all = np.ones([n_power_data, n_kSamples]) # ps_all *= rank print(" Cholla: ", nSnap) # if i not in [9]: continue data_cholla = load_snapshot_data(nSnap, chollaDir_0, cool=True) current_z_ch = data_cholla['current_z'] dens_dm_cholla = data_cholla['dm']['density'][...] dens_gas_cholla = data_cholla['gas']['density'][...] dens_gas_H_cholla = data_cholla['gas']['HI_density'][...] ps_dm_cholla, k_vals, count_dm_cholla = get_power_spectrum( dens_dm_cholla, Lbox, nx, ny, nz, dx, dy, dz, n_kSamples=n_kSamples) ps_gas_cholla, k_vals, count_gas_cholla = get_power_spectrum( dens_gas_cholla, Lbox, nx, ny, nz, dx, dy, dz, n_kSamples=n_kSamples) ps_gas_H_cholla, k_vals, count_gas_cholla = get_power_spectrum( dens_gas_H_cholla, Lbox, nx, ny, nz, dx, dy, dz, n_kSamples=n_kSamples) # # ps_gas_HII_cholla, k_vals, count_gas_cholla = get_power_spectrum( dens_gas_HII_cholla, Lbox, nx, ny, nz, dx, dy, dz, n_kSamples=n_kSamples) # ps_all[0] = ps_dm_cholla ps_all[1] = ps_gas_cholla
cholla_dir_1 = data_dir + 'cosmo_sims/256_cool_uv_50Mpc/data_hm12_cloudy_single/' cholla_dir_2 = data_dir + 'cosmo_sims/256_cool_uv_50Mpc/data_pw18_cloudy_single/' cholla_dir_all = [cholla_dir_0, cholla_dir_1, cholla_dir_2] # cholla_dir_all = [ cholla_dir_0 ] n_data = len(cholla_dir_all) titles = ['HM12 Grackle', 'HM12 Cloudy', 'Puchwein18 Cloudy'] data_all = [] for i, cholla_dir in enumerate(cholla_dir_all): n_snapshots = 60 z_list, frac_HII_list, frac_HeII_list, frac_HeIII_list = [], [], [], [] for nSnap in range(n_snapshots): data = load_snapshot_data(nSnap, cholla_dir, single_file=True) current_z = data['current_z'][0] dens = data['gas']['density'][...] dens_HI = data['gas']['HI_density'][...] dens_HII = data['gas']['HII_density'][...] dens_HeI = data['gas']['HeI_density'][...] dens_HeII = data['gas']['HeII_density'][...] dens_HeIII = data['gas']['HeIII_density'][...] dens_H = dens_HI + dens_HII dens_He = dens_HeI + dens_HeII + dens_HeIII frac_HII = dens_HII.sum() / dens_H.sum() frac_HeII = dens_HeII.sum() / dens_He.sum() frac_HeIII = dens_HeIII.sum() / dens_He.sum() z_list.append(current_z) frac_HII_list.append(frac_HII) frac_HeII_list.append(frac_HeII)
# dataDir = '/home/bruno/Desktop/data/' # dataDir = '/raid/bruno/data/' Lbox = 50.0 #Mpc/h nPoints = 2048 chollaDir = dataDir + 'cosmo_sims/{0}_dm_50Mpc/snapshots/'.format(nPoints) outDir = dataDir + 'cosmo_sims/{0}_dm_50Mpc/power_spectrum/delta_density/'.format( nPoints) create_directory(outDir) nSnap = 0 # snapshots = [ 0, 5, 30, 60, 90, 120, 150, 169 ] snapshots = [90, 120, 150, 169] for nSnap in snapshots: data_cholla = load_snapshot_data(nSnap, chollaDir, hydro=False, cool=False) current_z = data_cholla['current_z'] dens = data_cholla['dm']['density'][...].astype(np.float32) # dens_mean = dens.mean() dens_mean = 87.04988 delta_dens = (dens - dens_mean) / dens_mean filename = outDir + 'delta_density_{0}.h5'.format(nSnap) file = h5.File(filename, 'w') file.create_dataset('delta_density', data=delta_dens) file.attrs['current_z'] = current_z print('Saved file: ', filename)
nPoints = 256 nx = nPoints ny = nPoints nz = nPoints ncells = nx * ny * nz nbins = 1000 n_snapshots = 60 for nSnap in range(n_snapshots): data_all = [] min_val, max_val = 1e100, -1e100 for i in range(n_data): data_cholla = load_snapshot_data(nSnap, cholla_dir_all[i], single_file=True) current_z = data_cholla['current_z'][0] dens = data_cholla['gas']['density'][...].reshape(ncells) dens /= dens.mean() temp = data_cholla['gas']['temperature'][...].reshape(ncells) x_ch, y_ch, z_ch = get_phase_diagram(dens, temp, nbins, ncells) data_all.append([x_ch, y_ch, z_ch]) min_val = min(min_val, np.min(np.log10(z_ch))) max_val = max(max_val, np.max(np.log10(z_ch))) nrows = 1 ncols = n_data fig, ax_l = plt.subplots(nrows=nrows, ncols=ncols, figsize=(9 * ncols, 8 * nrows))
import sys, os import numpy as np # import matplotlib.pyplot as plt import h5py as h5 cosmo_tools = '/home/brvillas/cosmo_tools/' subDirectories = [x[0] for x in os.walk(cosmo_tools)] sys.path.extend(subDirectories) from load_data_cholla import load_snapshot_data, load_snapshot_data_particles from tools import * dataDir = '/data/groups/comp-astro/bruno/data/' nSnap = 0 inDir = dataDir + '1024_cool_uv_50Mpc/snapshots/' data = load_snapshot_data(nSnap, inDir) dens_gas_0 = data['gas']['density'][...] dens_dm_0 = data['dm']['density'][...] pot_0 = data['dm']['grav_potential'][...] inDir = dataDir + '1024_cool_uv_50Mpc/snapshots_summit/' data = load_snapshot_data(nSnap, inDir) dens_gas_1 = data['gas']['density'][...] dens_dm_1 = data['dm']['density'][...] pot_1 = data['dm']['grav_potential'][...]
Lx = Lbox Ly = Lbox Lz = Lbox dx, dy, dz = Lx / (nx), Ly / (ny), Lz / (nz) n_kSamples = 20 z_list = [] ps_list = [] n_snapshots = 10 snapshots = list(range(n_snapshots)) nSnap = 0 for nSnap in snapshots: data = load_snapshot_data(nSnap, input_dir, single_file=True) current_z = data['current_z'][0] dens = data['gas']['density'][...] power_spectrum, k_vals, count = get_power_spectrum(dens, Lbox, nx, ny, nz, dx, dy, dz, n_kSamples=n_kSamples) z_list.append(current_z) ps_list.append(power_spectrum) z_array = np.array(z_list)