{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Quickstart for TARDIS ###" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Every simulation run requires the atomic database (for more info refer to [atomic data](../atomic/atomic_data.rst) ) and a configuration file (more info at [configuration](../configuration/index.rst) ).\n", "You can obtain a copy of the atomic database from the\n", "(https://github.com/tardis-sn/tardis-refdata) repository\n", "(`atom_data` subfolder). We recommended to use the\n", "`kurucz_cd23_chianti_H_He.h5` dataset (which is auto-downloaded in the second cell already). The configuration file for this quickstart is `tardis_example.yml`, which can be downloaded [here](https://raw.githubusercontent.com/tardis-sn/tardis/master/docs/models/examples/tardis_example.yml)), though this file is auto-downloaded in the third cell.\n", "\n", "After the [installation](../installation.rst), start a Jupyter server executing `jupyter notebook` on the command line in a directory that contains this quickstart." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/wkerzend/miniconda/envs/tardis/lib/python3.6/importlib/_bootstrap.py:219: QAWarning: pyne.data is not yet QA compliant.\n", " return f(*args, **kwds)\n" ] } ], "source": [ "from tardis import run_tardis\n", "from tardis.io.atom_data.util import download_atom_data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Downloading the atomic data ####" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[\u001b[1mtardis.io.atom_data.atom_web_download\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Downloading atomic data from https://media.githubusercontent.com/media/tardis-sn/tardis-refdata/master/atom_data/kurucz_cd23_chianti_H_He.h5 to /Users/wkerzend/projects/tardis/tardis-data/kurucz_cd23_chianti_H_He.h5 (\u001b[1matom_web_download.py\u001b[0m:47)\n" ] } ], "source": [ "# the data is automatically downloaded\n", "download_atom_data('kurucz_cd23_chianti_H_He')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Downloading the example file ####" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " % Total % Received % Xferd Average Speed Time Time Time Current\n", " Dload Upload Total Spent Left Speed\n", "100 980 100 980 0 0 4394 0 --:--:-- --:--:-- --:--:-- 4394\n" ] } ], "source": [ "!curl -O https://raw.githubusercontent.com/tardis-sn/tardis/master/docs/models/examples/tardis_example.yml" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Running the simulation (long output) ####" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[\u001b[1mtardis.plasma.standard_plasmas\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Reading Atomic Data from kurucz_cd23_chianti_H_He.h5 (\u001b[1mstandard_plasmas.py\u001b[0m:74)\n", "[\u001b[1mtardis.io.atom_data.util\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Atom Data kurucz_cd23_chianti_H_He.h5 not found in local path. Exists in TARDIS Data repo /Users/wkerzend/projects/tardis/tardis-data/kurucz_cd23_chianti_H_He.h5 (\u001b[1mutil.py\u001b[0m:29)\n", "[\u001b[1mtardis.io.atom_data.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Read Atom Data with UUID=6f7b09e887a311e7a06b246e96350010 and MD5=864f1753714343c41f99cb065710cace. (\u001b[1mbase.py\u001b[0m:184)\n", "[\u001b[1mtardis.io.atom_data.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Non provided atomic data: synpp_refs, photoionization_data (\u001b[1mbase.py\u001b[0m:187)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 1/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 7.93730e+42 erg / s Luminosity absorbed = 2.66400e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 9926.501965 10168.422346 0.400392 0.501001\n", "\t5 9852.611678 10367.510165 0.211205 0.186556\n", "\t10 9779.813302 10222.882075 0.142695 0.113985\n", "\t15 9708.082813 9928.649533 0.104556 0.085217\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 9933.952 K -- next t_inner 11475.997 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 2/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.41371e+43 erg / s Luminosity absorbed = 4.73752e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10168.422346 11497.903617 0.501001 0.545136\n", "\t5 10367.510165 11621.417600 0.186556 0.212874\n", "\t10 10222.882075 11335.692704 0.113985 0.135635\n", "\t15 9928.649533 11018.841465 0.085217 0.101203\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11475.997 K -- next t_inner 9933.797 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 3/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.04734e+42 erg / s Luminosity absorbed = 2.55640e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11497.903617 10477.653343 0.545136 0.439296\n", "\t5 11621.417600 10856.518852 0.212874 0.159058\n", "\t10 11335.692704 10635.474976 0.135635 0.100253\n", "\t15 11018.841465 10290.254692 0.101203 0.075529\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 9933.797 K -- next t_inner 11397.084 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 4/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.38199e+43 erg / s Luminosity absorbed = 4.54590e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10477.653343 11608.211738 0.439296 0.506501\n", "\t5 10856.518852 11859.259666 0.159058 0.192802\n", "\t10 10635.474976 11479.604579 0.100253 0.125779\n", "\t15 10290.254692 11149.192411 0.075529 0.094052\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11397.084 K -- next t_inner 9978.058 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 5/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.16431e+42 erg / s Luminosity absorbed = 2.62454e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11608.211738 10556.913414 0.506501 0.440229\n", "\t5 11859.259666 11021.144022 0.192802 0.153136\n", "\t10 11479.604579 10713.104080 0.125779 0.099268\n", "\t15 11149.192411 10399.079825 0.094052 0.073482\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 9978.058 K -- next t_inner 11365.561 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 6/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.36136e+43 erg / s Luminosity absorbed = 4.54590e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10556.913414 11562.006340 0.440229 0.509603\n", "\t5 11021.144022 11799.980145 0.153136 0.194437\n", "\t10 10713.104080 11482.742597 0.099268 0.124721\n", "\t15 10399.079825 11124.799749 0.073482 0.093597\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11365.561 K -- next t_inner 10025.564 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 7/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.33278e+42 erg / s Luminosity absorbed = 2.66283e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11562.006340 10655.549804 0.509603 0.430187\n", "\t5 11799.980145 11063.665621 0.194437 0.155127\n", "\t10 11482.742597 10926.058943 0.124721 0.094642\n", "\t15 11124.799749 10477.041314 0.093597 0.072578\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10025.564 K -- next t_inner 11303.643 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 8/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.34650e+43 erg / s Luminosity absorbed = 4.30670e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10655.549804 11572.119736 0.430187 0.496558\n", "\t5 11063.665621 11696.304249 0.155127 0.198228\n", "\t10 10926.058943 11482.609682 0.094642 0.124382\n", "\t15 10477.041314 11098.080451 0.072578 0.093537\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11303.643 K -- next t_inner 10025.810 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 9/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.36983e+42 erg / s Luminosity absorbed = 2.63049e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11572.119736 10590.775937 0.496558 0.439574\n", "\t5 11696.304249 11060.842307 0.198228 0.154917\n", "\t10 11482.609682 10761.665022 0.124382 0.099840\n", "\t15 11098.080451 10436.629671 0.093537 0.074676\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10025.810 K -- next t_inner 11278.874 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 10/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.32624e+43 erg / s Luminosity absorbed = 4.34986e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10590.775937 11489.769556 0.439574 0.511403\n", "\t5 11060.842307 11791.517605 0.154917 0.191127\n", "\t10 10761.665022 11527.732208 0.099840 0.120106\n", "\t15 10436.629671 11111.114390 0.074676 0.091713\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11278.874 K -- next t_inner 10079.967 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 11/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.51915e+42 erg / s Luminosity absorbed = 2.72009e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11489.769556 10664.234475 0.511403 0.437272\n", "\t5 11791.517605 11091.518839 0.191127 0.156638\n", "\t10 11527.732208 10885.771059 0.120106 0.096973\n", "\t15 11111.114390 10484.177251 0.091713 0.074261\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10079.967 K -- next t_inner 11239.980 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 12/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.30886e+43 erg / s Luminosity absorbed = 4.28617e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10664.234475 11510.842068 0.437272 0.495944\n", "\t5 11091.518839 11716.009425 0.156638 0.189856\n", "\t10 10885.771059 11479.636914 0.096973 0.120067\n", "\t15 10484.177251 11117.963837 0.074261 0.090628\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11239.980 K -- next t_inner 10111.668 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 13/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.65047e+42 erg / s Luminosity absorbed = 2.72874e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11510.842068 10636.025493 0.495944 0.446635\n", "\t5 11716.009425 11175.711706 0.189856 0.154916\n", "\t10 11479.636914 10916.188023 0.120067 0.097843\n", "\t15 11117.963837 10431.720831 0.090628 0.077032\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10111.668 K -- next t_inner 11189.420 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 14/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.28712e+43 erg / s Luminosity absorbed = 4.19242e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10636.025493 11423.118214 0.446635 0.503706\n", "\t5 11175.711706 11682.224028 0.154916 0.189577\n", "\t10 10916.188023 11389.994295 0.097843 0.121114\n", "\t15 10431.720831 11029.450833 0.077032 0.091350\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11189.420 K -- next t_inner 10150.866 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 15/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.76501e+42 erg / s Luminosity absorbed = 2.79433e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11423.118214 10634.831735 0.503706 0.452948\n", "\t5 11682.224028 11112.411355 0.189577 0.159316\n", "\t10 11389.994295 10831.887277 0.121114 0.101805\n", "\t15 11029.450833 10396.372864 0.091350 0.078776\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10150.866 K -- next t_inner 11159.164 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 16/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.27462e+43 erg / s Luminosity absorbed = 4.13373e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10634.831735 11415.925493 0.452948 0.501153\n", "\t5 11112.411355 11688.667754 0.159316 0.188430\n", "\t10 10831.887277 11397.519913 0.101805 0.120134\n", "\t15 10396.372864 11045.200458 0.078776 0.090180\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11159.164 K -- next t_inner 10172.913 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 17/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 8.86785e+42 erg / s Luminosity absorbed = 2.79094e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11415.925493 10678.510651 0.501153 0.453127\n", "\t5 11688.667754 11152.822099 0.188430 0.159726\n", "\t10 11397.519913 10907.112682 0.120134 0.099725\n", "\t15 11045.200458 10508.816973 0.090180 0.076667\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10172.913 K -- next t_inner 11118.359 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 18/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.24749e+43 erg / s Luminosity absorbed = 4.15445e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 10678.510651 11482.446420 0.453127 0.481917\n", "\t5 11152.822099 11693.549165 0.159726 0.184456\n", "\t10 10907.112682 11472.013555 0.099725 0.115208\n", "\t15 10508.816973 10997.309982 0.076667 0.089730\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 11118.359 K -- next t_inner 10245.337 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 19/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 9.09476e+42 erg / s Luminosity absorbed = 2.89713e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Plasma stratification:\n", "\t t_rad next_t_rad w next_w\n", "\tShell \n", "\t0 11482.446420 10834.729769 0.481917 0.438322\n", "\t5 11693.549165 11346.133670 0.184456 0.154204\n", "\t10 11472.013555 10996.421420 0.115208 0.099677\n", "\t15 10997.309982 10625.479432 0.089730 0.075531\n", "\n", " (\u001b[1mbase.py\u001b[0m:350)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] t_inner 10245.337 K -- next t_inner 11056.949 K (\u001b[1mbase.py\u001b[0m:352)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Starting iteration 20/20 (\u001b[1mbase.py\u001b[0m:268)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Luminosity emitted = 1.22623e+43 erg / s Luminosity absorbed = 4.00603e+42 erg / s Luminosity requested = 1.05928e+43 erg / s (\u001b[1mbase.py\u001b[0m:359)\n", "[\u001b[1mtardis.simulation.base\u001b[0m][\u001b[1;37mINFO\u001b[0m ] Simulation finished in 20 iterations and took 23.52 s (\u001b[1mbase.py\u001b[0m:308)\n" ] } ], "source": [ "#TARDIS now uses the data in the data repo\n", "sim = run_tardis('tardis_example.yml')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Plotting the Spectrum ####" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] }, { "data": { "text/plain": [ "(3000, 9000)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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d2+OO87z/VPSkjecZklRrpTqB7wORAHbgSu01vnVlZcU5UI0HklRHuxwSUseqClSlDdL1lmt9RqgwX4JIYQQjUtSlAshRABJSx6apPsQQghRKwkWQgghaiXBQgghRK0kWAghhKiVBAshRLN77rnn6NGjB5dcckmT3XPKlClMmzatyvFXXnml1nUNa9as4auvvmqsqgWZNGlSyOy7TU1mQwkhmt1LL73EggUL/PmWauN0OjGZGufxdd1119VaZs2aNaxYsYIzzjijQe7pcrkwGo0Ncq3GIi0LIUSzuu6669i+fTvjx4/n2WefJS8vj7PPPpuMjAyGDBnC2rVrAU9L4JprrmH06NFcdtllzJo1i7PPPptx48bRuXNnXnjhBZ555hn69+/PkCFDyMvLA+C1115j4MCB9O3bl/POO6/WDK6BLY7hw4f705V369aNn3/+GbvdzgMPPMDs2bPp168fs2fPprS0lCuvvJKBAwfSv39/Pv/8cwDKysqYOHEiGRkZXHDBBQwePNi/4VJ8fDwPPPAAgwcPZtmyZTz88MMMHDiQ3r17c80119AcC6ZrIi0LIYTfk8ufZFPepga9ZvfU7tw16K5qP3/llVf4+uuv+fHHH0lLS+Omm26if//+fPbZZ/zwww9cdtll/tTdK1euZMmSJcTExDBr1izWr1/P6tWrsVqtHH300Tz55JOsXr2a2267zZ9e/Nxzz+Xqq68GPKk53njjDW666aaw6+90Olm+fDlfffUVDz30EN999x0PP/wwK1as8OeEuueeexg5ciRvvvkmBQUFDBo0iFNPPZWXX36ZlJQU1q5dy/r164Oyx5aWltK7d28efvhhAHr27MkDDzwAwKWXXsq8efMYN25c3f7YjUhaFkKIQ8qSJUu49NJLARg5ciS5ubkUFhYCMH78eGJiYvxlR4wYQUJCAi1btiQpKcn/cO3Tp49/cd369es5+eST6dOnD++//z5//vlnnerjy/N0/PHHV7tgb+HChUydOpV+/foxfPhwrFYru3btYsmSJf4sur179w5KjW40GjnvvPP873/88UcGDx5Mnz59+OGHH+pcz8YmLQshhF9NLYCmEqr7xZcCvHKacovF4n9tMBj87w0GA06nE/AMEH/22Wf07duXWbNm+XfQC5fvmkaj0X/NUHX++OOPOfbYY2v9XXyio6P94xRWq5UbbriB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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%pylab inline\n", "\n", "spectrum = sim.runner.spectrum\n", "spectrum_virtual = sim.runner.spectrum_virtual\n", "spectrum_integrated = sim.runner.spectrum_integrated\n", "\n", "figure(figsize=(10,6))\n", "plot(spectrum.wavelength, spectrum.luminosity_density_lambda, label='normal packets')\n", "plot(spectrum.wavelength, spectrum_virtual.luminosity_density_lambda, label='virtual packets')\n", "plot(spectrum.wavelength, spectrum_integrated.luminosity_density_lambda, label='formal integral')\n", "xlabel('Wavelength [$\\AA$]')\n", "ylabel('Luminosity [erg/s/$\\AA$]')\n", "legend()\n", "xlim(3000, 9000)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.10" }, "nbsphinx": { "execute": "always", "timeout": -1 } }, "nbformat": 4, "nbformat_minor": 2 }