{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 244 Mpc/h \n", "\n", "Here we download and analyse the simulation data produced in for a cosmological volume of size 244/h Mpc in each direction. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", "import matplotlib.pyplot as plt \n", "import pickle, os\n", "from glob import glob\n", "from StoReS import * \n", "import tools21cm as t2c \n", "from tqdm import tqdm " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## N-body simulation with 244 Mpc/h in each direction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Cosmology of the simulation:\n", "\n", "$\\Omega_\\mathrm{m} = 0.27$, $\\Omega_\\mathrm{b} = 0.044$, $h_\\mathrm{0} = 0.7$, $\\sigma_\\mathrm{8} = 0.8$, $n_\\mathrm{s} = 0.96$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the box length and the path to the folder for downloading the data." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "box_len = 244/0.7\n", "save_dir = './work/'\n", "eor_hist = {}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Density fields - 244 Mpc/h\n", "N-Body (CUBEP3M) snapshots will be downloaded." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "77it [00:07, 10.79it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Data saved in ./work/density/\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'dens': dn_url}\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/'}, verbose=False)\n", "c2r.set_links(url_dict)\n", "zs = c2r.zs_dict['dens']\n", "for i,z in tqdm(enumerate(zs)):\n", " dn, ff = c2r.get_density_data_z(z)\n", " # os.remove(ff)\n", "print('Data saved in {}'.format(c2r.work_dir['dens']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 244Mpc/h Reionisation Simulation Suite" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LB1 \n", "This simulation models the reionization process assuming spin saturation ($T_{S}\\gg T_{CMB}$). is described in See [Dixon et al. (2016)](https://arxiv.org/abs/1512.03836) the detailed description. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "xf_url = 'https://ttt.astro.su.se/~gmell/244Mpc/LB1/'\n", "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'xfrac': xf_url, 'dens': dn_url, }\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/', 'xfrac': save_dir+'LB1/'}, verbose=False)\n", "c2r.set_links(url_dict)\n", "zs = np.intersect1d(c2r.zs_dict['xfrac'], c2r.zs_dict['dens'])\n", "xs = []\n", "for i,z in tqdm(enumerate(zs)):\n", " data = c2r.get_data_z(z)\n", " xf = data['xfrac']\n", " dn = data['dens']\n", " xs.append(xf.mean())\n", " # os.remove(data['xfrac_filename'])\n", " # os.remove(data['dens_filename'])\n", "xs = np.array(xs)\n", "eor_hist['LB1'] = {'z': zs, 'x': xs}\n", "print('Data saved in {}'.format(c2r.work_dir['xfrac']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LB2\n", "This simulation models the reionization process assuming spin saturation ($T_{S}\\gg T_{CMB}$). is described in See [Dixon et al. (2016)](https://arxiv.org/abs/1512.03836) the detailed description. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "xf_url = 'https://ttt.astro.su.se/~gmell/244Mpc/LB2/'\n", "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'xfrac': xf_url, 'dens': dn_url, }\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/', 'xfrac': save_dir+'LB2/'}, verbose=False)\n", "c2r.set_links(url_dict)\n", "zs = np.intersect1d(c2r.zs_dict['xfrac'], c2r.zs_dict['dens'])\n", "xs = []\n", "for i,z in tqdm(enumerate(zs)):\n", " data = c2r.get_data_z(z)\n", " xf = data['xfrac']\n", " dn = data['dens']\n", " xs.append(xf.mean())\n", " # os.remove(data['xfrac_filename'])\n", " # os.remove(data['dens_filename'])\n", "xs = np.array(xs)\n", "eor_hist['LB2'] = {'z': zs, 'x': xs}\n", "print('Data saved in {}'.format(c2r.work_dir['xfrac']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LB3\n", "This simulation models the reionization process assuming spin saturation ($T_{S}\\gg T_{CMB}$). is described in See [Dixon et al. (2016)](https://arxiv.org/abs/1512.03836) the detailed description. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "xf_url = 'https://ttt.astro.su.se/~gmell/244Mpc/LB3/'\n", "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'xfrac': xf_url, 'dens': dn_url, }\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/', 'xfrac': save_dir+'LB3/'}, verbose=False)\n", "c2r.set_links(url_dict)\n", "zs = np.intersect1d(c2r.zs_dict['xfrac'], c2r.zs_dict['dens'])\n", "xs = []\n", "for i,z in tqdm(enumerate(zs)):\n", " data = c2r.get_data_z(z)\n", " xf = data['xfrac']\n", " dn = data['dens']\n", " xs.append(xf.mean())\n", " # os.remove(data['xfrac_filename'])\n", " # os.remove(data['dens_filename'])\n", "xs = np.array(xs)\n", "eor_hist['LB3'] = {'z': zs, 'x': xs}\n", "print('Data saved in {}'.format(c2r.work_dir['xfrac']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### LB4\n", "This simulation models the reionization process assuming spin saturation ($T_{S}\\gg T_{CMB}$). is described in See [Dixon et al. (2016)](https://arxiv.org/abs/1512.03836) the detailed description. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "xf_url = 'https://ttt.astro.su.se/~gmell/244Mpc/LB4/'\n", "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'xfrac': xf_url, 'dens': dn_url, }\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/', 'xfrac': save_dir+'LB4/'}, verbose=False)\n", "c2r.set_links(url_dict)\n", "zs = np.intersect1d(c2r.zs_dict['xfrac'], c2r.zs_dict['dens'])\n", "xs = []\n", "for i,z in tqdm(enumerate(zs)):\n", " data = c2r.get_data_z(z)\n", " xf = data['xfrac']\n", " dn = data['dens']\n", " xs.append(xf.mean())\n", " # os.remove(data['xfrac_filename'])\n", " # os.remove(data['dens_filename'])\n", "xs = np.array(xs)\n", "eor_hist['LB4'] = {'z': zs, 'x': xs}\n", "print('Data saved in {}'.format(c2r.work_dir['xfrac']))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Reionization history of the above simulations" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1,figsize=(7,6))\n", "# fig.suptitle('Dixon et al. (2016)')\n", "ax.plot(eor_hist['LB1']['z'], 1-eor_hist['LB1']['x'], lw=3, ls='-', label='LB1')\n", "ax.plot(eor_hist['LB2']['z'], 1-eor_hist['LB2']['x'], lw=3, ls='--', label='LB2')\n", "ax.plot(eor_hist['LB3']['z'], 1-eor_hist['LB3']['x'], lw=3, ls='-.', label='LB3')\n", "ax.plot(eor_hist['LB4']['z'], 1-eor_hist['LB4']['x'], lw=3, ls=':', label='LB4')\n", "ax.set_xlabel('z', fontsize=14)\n", "ax.set_ylabel('$x_\\mathrm{HI}$', fontsize=14)\n", "ax.legend()\n", "ax.axis([6,14,-0.01,1.01])\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Power spectrum at z=6.9 from LB1" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Downloading simulation...\n", "100% [..................................................] 125000028 / 125000028...done\n", "The file already exists.\n" ] } ], "source": [ "xf_url = 'https://ttt.astro.su.se/~gmell/244Mpc/LB1/'\n", "dn_url = 'https://ttt.astro.su.se/~gmell/244Mpc/densities/nc250/coarser_densities/'\n", "url_dict = {'dens': dn_url, 'xfrac': xf_url}\n", "\n", "c2r = C2RAY(work_dir={'dens': save_dir+'density/', 'xfrac': save_dir+'LB1/'})\n", "c2r.set_links(url_dict)\n", "z = 6.905\n", "data = c2r.get_data_z(z)\n", "xf = data['xfrac']\n", "dn = data['dens']\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "dt = t2c.calc_dt(xf, dn, z=z)\n", "ps, ks = t2c.power_spectrum_1d(dt, kbins=20, box_dims=box_len)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(1,1,figsize=(7,6))\n", "fig.suptitle('LB1')\n", "ax.loglog(ks, ps*ks**3/2/np.pi**2, lw=3, ls='-', label='z={:.1f}'.format(z))\n", "ax.set_xlabel('k [1/Mpc]', fontsize=14)\n", "ax.set_ylabel('$\\Delta^2_\\mathrm{21}$ [mK$^2$]', fontsize=14)\n", "ax.legend()\n", "# ax.axis([6,14,-0.01,1.01])\n", "plt.tight_layout()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 4 }