This notebook is available at https://github.com/tardis-sn/tardis/tree/master/docs/io/output/physical_quantities.ipynb


Accessing Physical Quantities

In order to compute the synthetic spectrum, TARDIS must either be told or must calculate many physical properties of the model. To understand and test the code it can be important to look at these values. One easy way to do this is to run TARDIS in an interactive mode and then inspect the model properties.

Runing in interactive Python session

[1]:
# Download the atomic data
from tardis.io.atom_data.util import download_atom_data
download_atom_data('kurucz_cd23_chianti_H_He')

# Download the example configuration file
!curl -O https://raw.githubusercontent.com/tardis-sn/tardis/master/docs/tardis_example.yml
/usr/share/miniconda3/envs/tardis/lib/python3.7/importlib/_bootstrap.py:219: QAWarning: pyne.data is not yet QA compliant.
  return f(*args, **kwds)
[tardis.io.atom_data.atom_web_download][INFO   ]  Downloading atomic data from https://media.githubusercontent.com/media/tardis-sn/tardis-refdata/master/atom_data/kurucz_cd23_chianti_H_He.h5 to /home/runner/Downloads/tardis-data/kurucz_cd23_chianti_H_He.h5 (atom_web_download.py:46)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   980  100   980    0     0   6202      0 --:--:-- --:--:-- --:--:--  6202
[2]:
from tardis import run_tardis

simulation = run_tardis('tardis_example.yml')
[tardis.plasma.standard_plasmas][INFO   ]
        Reading Atomic Data from kurucz_cd23_chianti_H_He.h5 (standard_plasmas.py:91)
[tardis.io.atom_data.util][INFO   ]
        Atom Data kurucz_cd23_chianti_H_He.h5 not found in local path.
        Exists in TARDIS Data repo /home/runner/Downloads/tardis-data/kurucz_cd23_chianti_H_He.h5 (util.py:34)
[tardis.io.atom_data.base][INFO   ]
        Reading Atom Data with:
        UUID = 6f7b09e887a311e7a06b246e96350010
        MD5  = 864f1753714343c41f99cb065710cace  (base.py:189)
[tardis.io.atom_data.base][INFO   ]
        Non provided atomic data:
        synpp_refs, photoionization_data, yg_data, two_photon_data (base.py:193)
[tardis.simulation.base][INFO   ]
        Starting iteration 1 of 20 (base.py:325)
[py.warnings         ][WARNING]  /usr/share/miniconda3/envs/tardis/lib/python3.7/site-packages/astropy/units/equivalencies.py:124: RuntimeWarning: divide by zero encountered in double_scalars
  (si.m, si.Hz, lambda x: _si.c.value / x),
 (warnings.py:110)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 7.942e+42 erg / s
        Luminosity absorbed  = 2.659e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
[py.warnings         ][WARNING]  /usr/share/miniconda3/envs/tardis/lib/python3.7/site-packages/traitlets/traitlets.py:3036: FutureWarning: --rc={'figure.dpi': 96} for dict-traits is deprecated in traitlets 5.0. You can pass --rc <key=value> ... multiple times to add items to a dict.
  FutureWarning,
 (warnings.py:110)
Shell No. t_rad next_t_rad w next_w
0 9.93e+03 1.01e+04 0.4 0.507
5 9.85e+03 1.02e+04 0.211 0.197
10 9.78e+03 1.01e+04 0.143 0.117
15 9.71e+03 9.87e+03 0.105 0.0869
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 9933.952 K
        Expected t_inner for next iteration = 11472.471 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 2 of 20 (base.py:325)
[py.warnings         ][WARNING]  /usr/share/miniconda3/envs/tardis/lib/python3.7/site-packages/astropy/units/equivalencies.py:124: RuntimeWarning: divide by zero encountered in double_scalars
  (si.m, si.Hz, lambda x: _si.c.value / x),
 (warnings.py:110)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.405e+43 erg / s
        Luminosity absorbed  = 4.798e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.01e+04 1.15e+04 0.507 0.546
5 1.02e+04 1.15e+04 0.197 0.223
10 1.01e+04 1.13e+04 0.117 0.135
15 9.87e+03 1.1e+04 0.0869 0.101
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11472.471 K
        Expected t_inner for next iteration = 9960.403 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 3 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.168e+42 erg / s
        Luminosity absorbed  = 2.550e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.05e+04 0.546 0.442
5 1.15e+04 1.08e+04 0.223 0.165
10 1.13e+04 1.07e+04 0.135 0.101
15 1.1e+04 1.02e+04 0.101 0.0781
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 9960.403 K
        Expected t_inner for next iteration = 11342.715 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 4 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.356e+43 erg / s
        Luminosity absorbed  = 4.460e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.05e+04 1.16e+04 0.442 0.498
5 1.08e+04 1.17e+04 0.165 0.201
10 1.07e+04 1.14e+04 0.101 0.127
15 1.02e+04 1.1e+04 0.0781 0.0953
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11342.715 K
        Expected t_inner for next iteration = 10026.022 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 5 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.318e+42 erg / s
        Luminosity absorbed  = 2.681e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.16e+04 1.06e+04 0.498 0.444
5 1.17e+04 1.09e+04 0.201 0.162
10 1.14e+04 1.07e+04 0.127 0.101
15 1.1e+04 1.03e+04 0.0953 0.0769
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10026.022 K
        Expected t_inner for next iteration = 11314.135 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 6 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.343e+43 erg / s
        Luminosity absorbed  = 4.402e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.06e+04 1.15e+04 0.444 0.51
5 1.09e+04 1.17e+04 0.162 0.201
10 1.07e+04 1.14e+04 0.101 0.127
15 1.03e+04 1.1e+04 0.0769 0.0955
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11314.135 K
        Expected t_inner for next iteration = 10047.862 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 7 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.399e+42 erg / s
        Luminosity absorbed  = 2.700e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.06e+04 0.51 0.443
5 1.17e+04 1.1e+04 0.201 0.158
10 1.14e+04 1.07e+04 0.127 0.102
15 1.1e+04 1.03e+04 0.0955 0.0768
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10047.862 K
        Expected t_inner for next iteration = 11284.172 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 8 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.334e+43 erg / s
        Luminosity absorbed  = 4.312e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.06e+04 1.15e+04 0.443 0.502
5 1.1e+04 1.17e+04 0.158 0.197
10 1.07e+04 1.14e+04 0.102 0.124
15 1.03e+04 1.1e+04 0.0768 0.0941
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11284.172 K
        Expected t_inner for next iteration = 10056.590 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 9 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.442e+42 erg / s
        Luminosity absorbed  = 2.693e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.06e+04 0.502 0.443
5 1.17e+04 1.1e+04 0.197 0.161
10 1.14e+04 1.07e+04 0.124 0.102
15 1.1e+04 1.04e+04 0.0941 0.0753
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10056.590 K
        Expected t_inner for next iteration = 11264.873 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 10 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.327e+43 erg / s
        Luminosity absorbed  = 4.253e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.06e+04 1.15e+04 0.443 0.505
5 1.1e+04 1.17e+04 0.161 0.197
10 1.07e+04 1.15e+04 0.102 0.122
15 1.04e+04 1.11e+04 0.0753 0.0933
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11264.873 K
        Expected t_inner for next iteration = 10062.930 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 11 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.521e+42 erg / s
        Luminosity absorbed  = 2.645e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.06e+04 0.505 0.444
5 1.17e+04 1.1e+04 0.197 0.162
10 1.15e+04 1.09e+04 0.122 0.0958
15 1.11e+04 1.05e+04 0.0933 0.0744
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10062.930 K
        Expected t_inner for next iteration = 11220.057 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 12 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.302e+43 erg / s
        Luminosity absorbed  = 4.230e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.06e+04 1.16e+04 0.444 0.486
5 1.1e+04 1.18e+04 0.162 0.19
10 1.09e+04 1.14e+04 0.0958 0.121
15 1.05e+04 1.11e+04 0.0744 0.089
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11220.057 K
        Expected t_inner for next iteration = 10121.498 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 13 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.695e+42 erg / s
        Luminosity absorbed  = 2.731e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.16e+04 1.07e+04 0.486 0.438
5 1.18e+04 1.1e+04 0.19 0.162
10 1.14e+04 1.08e+04 0.121 0.101
15 1.11e+04 1.04e+04 0.089 0.0767
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10121.498 K
        Expected t_inner for next iteration = 11171.296 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 14 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.284e+43 erg / s
        Luminosity absorbed  = 4.115e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.07e+04 1.15e+04 0.438 0.495
5 1.1e+04 1.17e+04 0.162 0.191
10 1.08e+04 1.14e+04 0.101 0.12
15 1.04e+04 1.1e+04 0.0767 0.0918
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11171.296 K
        Expected t_inner for next iteration = 10145.811 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 15 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.705e+42 erg / s
        Luminosity absorbed  = 2.828e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.07e+04 0.495 0.449
5 1.17e+04 1.1e+04 0.191 0.163
10 1.14e+04 1.09e+04 0.12 0.0997
15 1.1e+04 1.05e+04 0.0918 0.0768
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10145.811 K
        Expected t_inner for next iteration = 11191.850 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 16 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.284e+43 erg / s
        Luminosity absorbed  = 4.234e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.07e+04 1.15e+04 0.449 0.495
5 1.1e+04 1.18e+04 0.163 0.184
10 1.09e+04 1.14e+04 0.0997 0.122
15 1.05e+04 1.11e+04 0.0768 0.0898
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11191.850 K
        Expected t_inner for next iteration = 10164.556 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 17 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.803e+42 erg / s
        Luminosity absorbed  = 2.816e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.15e+04 1.07e+04 0.495 0.439
5 1.18e+04 1.11e+04 0.184 0.16
10 1.14e+04 1.1e+04 0.122 0.0962
15 1.11e+04 1.05e+04 0.0898 0.0763
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10164.556 K
        Expected t_inner for next iteration = 11150.010 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 18 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.271e+43 erg / s
        Luminosity absorbed  = 4.117e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.07e+04 1.14e+04 0.439 0.492
5 1.11e+04 1.17e+04 0.16 0.186
10 1.1e+04 1.15e+04 0.0962 0.117
15 1.05e+04 1.11e+04 0.0763 0.0876
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 11150.010 K
        Expected t_inner for next iteration = 10180.809 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 19 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 8.820e+42 erg / s
        Luminosity absorbed  = 2.873e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Plasma stratification: (base.py:430)
Shell No. t_rad next_t_rad w next_w
0 1.14e+04 1.07e+04 0.492 0.441
5 1.17e+04 1.11e+04 0.186 0.161
10 1.15e+04 1.09e+04 0.117 0.1
15 1.11e+04 1.05e+04 0.0876 0.0765
[tardis.simulation.base][INFO   ]  None (base.py:433)
[tardis.simulation.base][INFO   ]
        Current t_inner = 10180.809 K
        Expected t_inner for next iteration = 11157.125 K
 (base.py:448)
[tardis.simulation.base][INFO   ]
        Starting iteration 20 of 20 (base.py:325)
[tardis.simulation.base][INFO   ]
        Luminosity emitted   = 1.272e+43 erg / s
        Luminosity absorbed  = 4.149e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:453)
[tardis.simulation.base][INFO   ]
        Simulation finished in 20 iterations
        Simulation took 37.31 s
 (base.py:384)

If all goes well, the simulation should run as usual. Afterwards, the information from the simulation will all exist in Simulation and can be examined. Some examples for useful/interesting quantities are given below (but much more information is available: contact us via tardis-sn-users if you need further help).

Examples of finding physical quantities

For example, two of our important quantities are the parameters of the radiation field model, \(T_{\rm rad}\) and \(W\). These exist as numpy.ndarray

Thus simulation.plasma.t_rad will give you a list of the \(T_{\rm rad}\)-values for the model zones in cgs units.

[3]:
simulation.plasma.t_rad
[3]:
array([10748.90193246, 10927.8200971 , 10998.79113624, 11102.00007216,
       11124.69397086, 11092.36545454, 11109.20982059, 11044.60079839,
       11009.33979842, 10974.32538709, 10875.99873239, 10711.88616652,
       10639.11200499, 10577.49595765, 10546.67237506, 10491.73931947,
       10362.76140891, 10233.36943785, 10157.74597418, 10052.60841091])

Similarly, the \(W\)-values can be accessed using simulation.plasma.w

[4]:
simulation.plasma.w
[4]:
array([0.44113286, 0.32918632, 0.26474272, 0.21536775, 0.1840041 ,
       0.1612328 , 0.14208694, 0.12845608, 0.11626245, 0.10609354,
       0.0999936 , 0.09700122, 0.09141656, 0.08664278, 0.08089821,
       0.07652958, 0.07443362, 0.07292518, 0.07014472, 0.06825952])

Several important quantities that were setup when the model was defined by the configuration file are located in the model section of the simulation. For example, the inner and outer velocity boundaries of the zones in the model is given by simulation.model.v_inner.cgs and simulation.model.v_outer.cgs respectively. These exist as Astropy Quantities.

[5]:
simulation.model.v_inner.cgs
[5]:
$[1.1 \times 10^{9},~1.145 \times 10^{9},~1.19 \times 10^{9},~1.235 \times 10^{9},~1.28 \times 10^{9},~1.325 \times 10^{9},~1.37 \times 10^{9},~1.415 \times 10^{9},~1.46 \times 10^{9},~1.505 \times 10^{9},~1.55 \times 10^{9},~1.595 \times 10^{9},~1.64 \times 10^{9},~1.685 \times 10^{9},~1.73 \times 10^{9},~1.775 \times 10^{9},~1.82 \times 10^{9},~1.865 \times 10^{9},~1.91 \times 10^{9},~1.955 \times 10^{9}] \; \mathrm{\frac{cm}{s}}$
[6]:
simulation.model.v_outer.cgs
[6]:
$[1.145 \times 10^{9},~1.19 \times 10^{9},~1.235 \times 10^{9},~1.28 \times 10^{9},~1.325 \times 10^{9},~1.37 \times 10^{9},~1.415 \times 10^{9},~1.46 \times 10^{9},~1.505 \times 10^{9},~1.55 \times 10^{9},~1.595 \times 10^{9},~1.64 \times 10^{9},~1.685 \times 10^{9},~1.73 \times 10^{9},~1.775 \times 10^{9},~1.82 \times 10^{9},~1.865 \times 10^{9},~1.91 \times 10^{9},~1.955 \times 10^{9},~2 \times 10^{9}] \; \mathrm{\frac{cm}{s}}$

The average density in the zones is given by simulation.model.density.cgs. These also exist as Astropy Quantities.

[7]:
simulation.model.density.cgs
[7]:
$[7.5428036 \times 10^{-14},~5.728475 \times 10^{-14},~4.3960742 \times 10^{-14},~3.4062874 \times 10^{-14},~2.6631346 \times 10^{-14},~2.0995965 \times 10^{-14},~1.6682872 \times 10^{-14},~1.3353105 \times 10^{-14},~1.0761538 \times 10^{-14},~8.7290848 \times 10^{-15},~7.1236516 \times 10^{-15},~5.8469209 \times 10^{-15},~4.8250928 \times 10^{-15},~4.0023242 \times 10^{-15},~3.3360386 \times 10^{-15},~2.7935404 \times 10^{-15},~2.3495504 \times 10^{-15},~1.9843968 \times 10^{-15},~1.6826769 \times 10^{-15},~1.4322598 \times 10^{-15}] \; \mathrm{\frac{g}{cm^{3}}}$

Many other interesting quantities are stored in the plasma. For example the calculated ion populations and level populations is given by simulation.plasma.ion_number_density and simulation.plasma.level_number_density respectively.

[8]:
simulation.plasma.ion_number_density
[8]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
atomic_number ion_number
8 0 1.568934e+03 6.952752e+02 3.698943e+02 1.918389e+02 1.136714e+02 7.403361e+01 4.567743e+01 3.211089e+01 2.195740e+01 1.520823e+01 1.170259e+01 1.008358e+01 7.679209e+00 5.815062e+00 4.241477e+00 3.243966e+00 2.820865e+00 2.487229e+00 2.029423e+00 1.757640e+00
1 5.393549e+08 4.095388e+08 3.142136e+08 2.433547e+08 1.901883e+08 1.499148e+08 1.190558e+08 9.529323e+07 7.678296e+07 6.226849e+07 5.083348e+07 4.175281e+07 3.445973e+07 2.858539e+07 2.382455e+07 1.995114e+07 1.678654e+07 1.418171e+07 1.202653e+07 1.023820e+07
2 7.174501e+04 1.359290e+05 1.739749e+05 2.478170e+05 2.672799e+05 2.390430e+05 2.527221e+05 2.022825e+05 1.788094e+05 1.580769e+05 1.117345e+05 6.179215e+04 4.720572e+04 3.746934e+04 3.332902e+04 2.703093e+04 1.641143e+04 9.822780e+03 7.230808e+03 4.688720e+03
3 1.476568e-09 9.914678e-09 2.425438e-08 7.720839e-08 1.198904e-07 1.145296e-07 1.663525e-07 1.179342e-07 1.069737e-07 9.643292e-08 4.881382e-08 1.313909e-08 8.020232e-09 5.369765e-09 4.783377e-09 3.351369e-09 1.117334e-09 3.577779e-10 1.933696e-10 7.535925e-11
4 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
20 16 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
17 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
18 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
19 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
20 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00

94 rows × 20 columns

[9]:
simulation.plasma.level_number_density
[9]:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
atomic_number ion_number level_number
8 0 0 824.280187 364.371458 193.658162 100.292884 59.408349 38.709783 23.877648 16.800925 11.494104 7.964980 6.137380 5.300400 4.040644 3.062394 2.234653 1.710414 1.490001 1.316137 1.075014 0.932407
1 484.201224 214.114464 113.814044 58.954065 34.922818 22.753941 14.035923 9.874851 6.755287 4.680850 3.606131 3.113350 2.373049 1.798303 1.312154 1.004215 0.874571 0.772305 0.630710 0.546914
2 159.922760 70.728720 37.598541 19.477140 11.537949 7.517349 4.637190 3.262285 2.231633 1.546291 1.191167 1.028249 0.783700 0.593858 0.433304 0.331599 0.288756 0.254960 0.208201 0.180521
3 98.547958 45.104489 24.297738 12.828640 7.630971 4.942600 3.058311 2.126191 1.445004 0.994730 0.752203 0.629063 0.472612 0.353742 0.256505 0.194117 0.164584 0.141385 0.113581 0.096225
4 1.789293 0.851754 0.465879 0.251394 0.150249 0.096662 0.060022 0.041166 0.027768 0.018973 0.014046 0.011327 0.008371 0.006178 0.004448 0.003323 0.002733 0.002275 0.001793 0.001480
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
20 16 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
17 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
18 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
19 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
20 0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000

4435 rows × 20 columns

These are stored as Pandas DataFrames. An index can be supplied to obtain the population in a particular zone. E.g., for the ion populations of the innermost zone (index = 0), we will use simulation.plasma.ion_number_density[0]

[10]:
simulation.plasma.ion_number_density[0]
[10]:
atomic_number  ion_number
8              0             1.568934e+03
               1             5.393549e+08
               2             7.174501e+04
               3             1.476568e-09
               4             0.000000e+00
                                 ...
20             16            0.000000e+00
               17            0.000000e+00
               18            0.000000e+00
               19            0.000000e+00
               20            0.000000e+00
Name: 0, Length: 94, dtype: float64

Ion populations for a particular ionization stage of a particular element can be accessed by specifying an appropriate tuple (𝑍,𝐶), which identifies the element (via atomic number 𝑍 ) and the charge (via the ion charge 𝐶 ). Thus, simulation.plasma.ion_number_density.loc[14,1] will identify the ion popuations for Si II (𝑍=14,𝐶=1) in all the zones.

[11]:
simulation.plasma.ion_number_density.loc[14,1]
[11]:
0     122900.603559
1      51976.762920
2      27140.694712
3      13697.355482
4       8058.877388
5       5285.861658
6       3240.954372
7       2314.462543
8       1595.027088
9       1113.380447
10       879.373773
11       792.926811
12       615.890161
13       474.276163
14       348.692232
15       270.771744
16       244.500089
17       224.031269
18       186.974715
19       167.223030
Name: (14, 1), dtype: float64

The above examples can be combined to obtain e.g. the Si II population in the innermost zone can be obtained by simulation.plasma.ion_number_density[0].loc[14,1]

[12]:
simulation.plasma.ion_number_density[0].loc[14,1]
[12]:
122900.60355949405

The level populations are stored (and can be accessed) in a similar way - a third label can be used to pick out a particular atomic level. E.g., to pull out the population of the ground state (index 0) of Si II we can use simulation.plasma.level_number_density.loc[14,1,0]

[13]:
simulation.plasma.level_number_density.loc[14,1,0]
[13]:
0     41700.507877
1     17614.347886
2      9193.121030
3      4636.179647
4      2727.263994
5      1789.242996
6      1096.917477
7       783.703172
8       540.228911
9       377.190000
10      298.116642
11      269.108772
12      209.125533
13      161.105327
14      118.469782
15       92.028427
16       83.167159
17       76.265641
18       63.679954
19       56.988781
Name: (14, 1, 0), dtype: float64

Notes

  • If you prefer to work in SI units, all the Astropy Quantities may instead by accessed with “xxx.si”.

  • Information that is not stored as Astropy Quantities (e.g. the ion and level populations used in the example above) are usually stored in cgs units (i.e. cm−3 for the populations).