{ "cells": [ { "cell_type": "markdown", "id": "50370ffa", "metadata": {}, "source": [ "# Model universes" ] }, { "cell_type": "code", "execution_count": 1, "id": "6d5c776e", "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", "import simple_python_package_template" ] }, { "cell_type": "markdown", "id": "26cc9e31", "metadata": {}, "source": [ "### Einsten-de Sitter universe" ] }, { "cell_type": "code", "execution_count": 2, "id": "bb3d1a53", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cosmological parameters\n", "{'Om': 1.0, 'Or': 0, 'Ok': 0, 'Ode': 0, 'h': 0.68}\n", "Code parameters\n", "{'zmin': 0.01, 'zmax': 9.0, 'Nz': 100, 'verbose': True}\n" ] } ], "source": [ "param_EdS = simple_python_package_template.param()\n", "param_EdS.cosmo.Om = 1.\n", "param_EdS.cosmo.Or = 0\n", "param_EdS.cosmo.Ode = 0\n", "param_EdS.cosmo.Ok = 0\n", "param_EdS.cosmo.h = 0.68\n", "param_EdS.code.Nz = 100\n", "\n", "print('Cosmological parameters')\n", "print(param_EdS.cosmo.__dict__)\n", "print('Code parameters')\n", "print(param_EdS.code.__dict__)" ] }, { "cell_type": "code", "execution_count": 3, "id": "dae78111", "metadata": {}, "outputs": [], "source": [ "D_EdS = simple_python_package_template.CosmoDistances(param_EdS)" ] }, { "cell_type": "markdown", "id": "22d3aa44", "metadata": {}, "source": [ "### de Sitter universe" ] }, { "cell_type": "code", "execution_count": 4, "id": "3c07ddb6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cosmological parameters\n", "{'Om': 0.0, 'Or': 0, 'Ok': 0, 'Ode': 1.0, 'h': 0.68}\n", "Code parameters\n", "{'zmin': 0.01, 'zmax': 9.0, 'Nz': 100, 'verbose': True}\n" ] } ], "source": [ "param_dS = simple_python_package_template.param()\n", "param_dS.cosmo.Om = 0.\n", "param_dS.cosmo.Or = 0\n", "param_dS.cosmo.Ode = 1.\n", "param_dS.cosmo.Ok = 0\n", "param_dS.cosmo.h = 0.68\n", "param_dS.code.Nz = 100\n", "\n", "print('Cosmological parameters')\n", "print(param_dS.cosmo.__dict__)\n", "print('Code parameters')\n", "print(param_dS.code.__dict__)" ] }, { "cell_type": "code", "execution_count": 5, "id": "92ce5202", "metadata": {}, "outputs": [], "source": [ "D_dS = simple_python_package_template.CosmoDistances(param_dS)" ] }, { "cell_type": "markdown", "id": "e2ea37b6", "metadata": {}, "source": [ "### Planck universe" ] }, { "cell_type": "code", "execution_count": 6, "id": "d18c19b3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Cosmological parameters\n", "{'Om': 0.31, 'Or': 0.0, 'Ok': 0.0, 'Ode': 0.69, 'h': 0.68}\n", "Code parameters\n", "{'zmin': 0.01, 'zmax': 9.0, 'Nz': 100, 'verbose': True}\n" ] } ], "source": [ "param = simple_python_package_template.param()\n", "param.cosmo.Om = 0.31\n", "param.cosmo.Or = 0.0\n", "param.cosmo.Ode = 0.69\n", "param.cosmo.Ok = 0.0\n", "param.cosmo.h = 0.68\n", "param.code.Nz = 100\n", "\n", "print('Cosmological parameters')\n", "print(param.cosmo.__dict__)\n", "print('Code parameters')\n", "print(param.code.__dict__)" ] }, { "cell_type": "code", "execution_count": 7, "id": "5a921cfc", "metadata": {}, "outputs": [], "source": [ "D = simple_python_package_template.CosmoDistances(param)" ] }, { "cell_type": "markdown", "id": "7f52b8db", "metadata": {}, "source": [ "## Plot models" ] }, { "cell_type": "code", "execution_count": 8, "id": "87c14e7e", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "zs = np.linspace(param.code.zmin,param.code.zmax,param.code.Nz)\n", "fig, ax = plt.subplots(1,1,figsize=(5,4))\n", "ax.loglog(zs, D_EdS.comoving_dist(zs), ls='--', label='EdS')\n", "ax.loglog(zs, D_dS.comoving_dist(zs), ls='-.', label='dS')\n", "ax.loglog(zs, D.comoving_dist(zs), ls='-', label='Planck')\n", "ax.set_xlabel('Redshift')\n", "ax.set_ylabel('Comoving distance')\n", "ax.axis([0.01,10,0])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "id": "e194cadf", "metadata": {}, "outputs": [], "source": [] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 5 }