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
示例#3
0
]
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
示例#4
0
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
示例#5
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
示例#6
0
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)
示例#8
0
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))
示例#9
0
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'][...]
示例#10
0
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)