You can interact with this notebook online: Launch notebook

Using Custom Callbacks When Running TARDISΒΆ

The function run_tardis allows users to provide a set of callbacks to the simulation. These callbacks are functions that will be run at the end of each iteration, and can do a variety of things, such as printing information about the simulation, storing data to a table, or even changing simulation parameters between iterations. This tutorial will show three examples of callbacks and how they can be used in TARDIS. One important thing to note is that the first argument of the callback must be the Simulation object being run.

Our first callback example will compute the (volume-weighted) average radiative temperature in the supernova ejecta (outside of the photosphere) and will print its value:

[1]:
def average_temp(sim):
    t_rads = sim.simulation_state.t_radiative
    volumes = sim.simulation_state.volume
    avg = sum(t_rads*volumes) / sum(volumes)
    print(f"Average temperature for iteration {sim.iterations_executed}: {avg}")

Now we give the callback to run_tardis. run_tardis offers the keyword argument simulation_callbacks which takes a list of lists containing the callback as well as any optional arguments you wish to include with your callback. For this example our function requires no extra arguments and we only have a single callback, so we give run_tardis a 2D list containing the callback as its only element:

[2]:
# We filter out warnings in this notebook
import warnings
warnings.filterwarnings('ignore')

from tardis import run_tardis
from tardis.io.atom_data import download_atom_data

# We download the atomic data needed to run the simulation
download_atom_data('kurucz_cd23_chianti_H_He')

# We run the simulation with our callback
sim = run_tardis('tardis_example.yml',
                 simulation_callbacks=[[average_temp]])
Atomic Data kurucz_cd23_chianti_H_He already exists in /home/runner/Downloads/tardis-data/kurucz_cd23_chianti_H_He.h5. Will not download - override with force_download=True.
[tardis.io.model.parse_atom_data][INFO   ]

        Reading Atomic Data from kurucz_cd23_chianti_H_He.h5 (parse_atom_data.py:40)
[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:262)
[tardis.io.atom_data.base][INFO   ]
        Non provided Atomic Data: synpp_refs, photoionization_data, yg_data, two_photon_data, linelist_atoms, linelist_molecules (base.py:266)
[tardis.io.model.parse_density_configuration][WARNING]
        Number of density points larger than number of shells. Assuming inner point irrelevant (parse_density_configuration.py:114)
[tardis.model.matter.decay][INFO   ]
        Decaying abundances for 1123200.0 seconds (decay.py:101)
[tardis.simulation.base][INFO   ]

        Starting iteration 1 of 20 (base.py:448)
[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:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 9.93e+03 K 1.01e+04 K 0.4 0.507
5 9.85e+03 K 1.02e+04 K 0.211 0.197
10 9.78e+03 K 1.01e+04 K 0.143 0.117
15 9.71e+03 K 9.87e+03 K 0.105 0.0869
[tardis.simulation.base][INFO   ]

        Current t_inner = 9933.952 K
        Expected t_inner for next iteration = 10703.212 K
 (base.py:656)
Average temperature for iteration 1: 10000.388658902046 K
[tardis.simulation.base][INFO   ]

        Starting iteration 2 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.071e+43 erg / s
        Luminosity absorbed  = 3.576e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.01e+04 K 1.08e+04 K 0.507 0.525
5 1.02e+04 K 1.1e+04 K 0.197 0.203
10 1.01e+04 K 1.08e+04 K 0.117 0.125
15 9.87e+03 K 1.05e+04 K 0.0869 0.0933
[tardis.simulation.base][INFO   ]

        Current t_inner = 10703.212 K
        Expected t_inner for next iteration = 10673.712 K
 (base.py:656)
Average temperature for iteration 2: 10631.424369879076 K
[tardis.simulation.base][INFO   ]

        Starting iteration 3 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.074e+43 erg / s
        Luminosity absorbed  = 3.391e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 1/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.08e+04 K 1.1e+04 K 0.525 0.483
5 1.1e+04 K 1.12e+04 K 0.203 0.189
10 1.08e+04 K 1.1e+04 K 0.125 0.118
15 1.05e+04 K 1.06e+04 K 0.0933 0.0895
[tardis.simulation.base][INFO   ]

        Current t_inner = 10673.712 K
        Expected t_inner for next iteration = 10635.953 K
 (base.py:656)
Average temperature for iteration 3: 10792.28558860157 K
[tardis.simulation.base][INFO   ]

        Starting iteration 4 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.058e+43 erg / s
        Luminosity absorbed  = 3.352e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 2/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.483 0.469
5 1.12e+04 K 1.12e+04 K 0.189 0.182
10 1.1e+04 K 1.1e+04 K 0.118 0.113
15 1.06e+04 K 1.07e+04 K 0.0895 0.0861
[tardis.simulation.base][INFO   ]

        Current t_inner = 10635.953 K
        Expected t_inner for next iteration = 10638.407 K
 (base.py:656)
Average temperature for iteration 4: 10848.003383960113 K
[tardis.simulation.base][INFO   ]

        Starting iteration 5 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.055e+43 erg / s
        Luminosity absorbed  = 3.399e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 3/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.469 0.479
5 1.12e+04 K 1.13e+04 K 0.182 0.178
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.07e+04 K 0.0861 0.0839
[tardis.simulation.base][INFO   ]

        Current t_inner = 10638.407 K
        Expected t_inner for next iteration = 10650.202 K
 (base.py:656)
Average temperature for iteration 5: 10866.055578140767 K
[tardis.simulation.base][INFO   ]

        Starting iteration 6 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.398e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 4/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.479 0.47
5 1.13e+04 K 1.12e+04 K 0.178 0.185
10 1.1e+04 K 1.11e+04 K 0.113 0.112
15 1.07e+04 K 1.07e+04 K 0.0839 0.0856
[tardis.simulation.base][INFO   ]

        Current t_inner = 10650.202 K
        Expected t_inner for next iteration = 10645.955 K
 (base.py:656)
Average temperature for iteration 6: 10859.348047846392 K
[tardis.simulation.base][INFO   ]

        Starting iteration 7 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.382e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 5/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.47 0.47
5 1.12e+04 K 1.13e+04 K 0.185 0.178
10 1.11e+04 K 1.11e+04 K 0.112 0.112
15 1.07e+04 K 1.07e+04 K 0.0856 0.086
[tardis.simulation.base][INFO   ]

        Current t_inner = 10645.955 K
        Expected t_inner for next iteration = 10642.050 K
 (base.py:656)
Average temperature for iteration 7: 10859.00265651005 K
[tardis.simulation.base][INFO   ]

        Starting iteration 8 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.062e+43 erg / s
        Luminosity absorbed  = 3.350e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 6/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.47 0.472
5 1.13e+04 K 1.14e+04 K 0.178 0.175
10 1.11e+04 K 1.11e+04 K 0.112 0.111
15 1.07e+04 K 1.07e+04 K 0.086 0.084
[tardis.simulation.base][INFO   ]

        Current t_inner = 10642.050 K
        Expected t_inner for next iteration = 10636.106 K
 (base.py:656)
Average temperature for iteration 8: 10910.969808051923 K
[tardis.simulation.base][INFO   ]

        Starting iteration 9 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.052e+43 erg / s
        Luminosity absorbed  = 3.411e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 7/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.472 0.469
5 1.14e+04 K 1.15e+04 K 0.175 0.17
10 1.11e+04 K 1.11e+04 K 0.111 0.109
15 1.07e+04 K 1.08e+04 K 0.084 0.0822
[tardis.simulation.base][INFO   ]

        Current t_inner = 10636.106 K
        Expected t_inner for next iteration = 10654.313 K
 (base.py:656)
Average temperature for iteration 9: 10965.776193458922 K
[tardis.simulation.base][INFO   ]

        Starting iteration 10 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.070e+43 erg / s
        Luminosity absorbed  = 3.335e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 8/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.469 0.475
5 1.15e+04 K 1.14e+04 K 0.17 0.177
10 1.11e+04 K 1.11e+04 K 0.109 0.112
15 1.08e+04 K 1.06e+04 K 0.0822 0.0878
[tardis.simulation.base][INFO   ]

        Current t_inner = 10654.313 K
        Expected t_inner for next iteration = 10628.190 K
 (base.py:656)
Average temperature for iteration 10: 10870.944568516601 K
[tardis.simulation.base][INFO   ]

        Starting iteration 11 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.053e+43 erg / s
        Luminosity absorbed  = 3.363e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 9/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.475 0.472
5 1.14e+04 K 1.12e+04 K 0.177 0.184
10 1.11e+04 K 1.1e+04 K 0.112 0.114
15 1.06e+04 K 1.06e+04 K 0.0878 0.0859
[tardis.simulation.base][INFO   ]

        Current t_inner = 10628.190 K
        Expected t_inner for next iteration = 10644.054 K
 (base.py:656)
Average temperature for iteration 11: 10809.020854430875 K
[tardis.simulation.base][INFO   ]

        Starting iteration 12 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.420e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 10/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.472 0.467
5 1.12e+04 K 1.13e+04 K 0.184 0.176
10 1.1e+04 K 1.11e+04 K 0.114 0.11
15 1.06e+04 K 1.08e+04 K 0.0859 0.0821
[tardis.simulation.base][INFO   ]

        Current t_inner = 10644.054 K
        Expected t_inner for next iteration = 10653.543 K
 (base.py:656)
Average temperature for iteration 12: 10937.942301622288 K
[tardis.simulation.base][INFO   ]

        Starting iteration 13 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.062e+43 erg / s
        Luminosity absorbed  = 3.406e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 11/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.467 0.466
5 1.13e+04 K 1.13e+04 K 0.176 0.18
10 1.11e+04 K 1.11e+04 K 0.11 0.111
15 1.08e+04 K 1.08e+04 K 0.0821 0.0841
[tardis.simulation.base][INFO   ]

        Current t_inner = 10653.543 K
        Expected t_inner for next iteration = 10647.277 K
 (base.py:656)
Average temperature for iteration 13: 10916.558174390986 K
[tardis.simulation.base][INFO   ]

        Starting iteration 14 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.063e+43 erg / s
        Luminosity absorbed  = 3.369e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 12/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.466 0.469
5 1.13e+04 K 1.13e+04 K 0.18 0.182
10 1.11e+04 K 1.1e+04 K 0.111 0.113
15 1.08e+04 K 1.07e+04 K 0.0841 0.0854
[tardis.simulation.base][INFO   ]

        Current t_inner = 10647.277 K
        Expected t_inner for next iteration = 10638.875 K
 (base.py:656)
Average temperature for iteration 14: 10854.170163362927 K
[tardis.simulation.base][INFO   ]

        Starting iteration 15 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.053e+43 erg / s
        Luminosity absorbed  = 3.417e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 13/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.469 0.484
5 1.13e+04 K 1.13e+04 K 0.182 0.181
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.07e+04 K 0.0854 0.0858
[tardis.simulation.base][INFO   ]

        Current t_inner = 10638.875 K
        Expected t_inner for next iteration = 10655.125 K
 (base.py:656)
Average temperature for iteration 15: 10830.001777664324 K
[tardis.simulation.base][INFO   ]

        Starting iteration 16 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.059e+43 erg / s
        Luminosity absorbed  = 3.445e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 14/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.484 0.472
5 1.13e+04 K 1.13e+04 K 0.181 0.177
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.06e+04 K 0.0858 0.0858
[tardis.simulation.base][INFO   ]

        Current t_inner = 10655.125 K
        Expected t_inner for next iteration = 10655.561 K
 (base.py:656)
Average temperature for iteration 16: 10847.978715255837 K
[tardis.simulation.base][INFO   ]

        Starting iteration 17 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.067e+43 erg / s
        Luminosity absorbed  = 3.372e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 15/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.472 0.468
5 1.13e+04 K 1.14e+04 K 0.177 0.175
10 1.1e+04 K 1.11e+04 K 0.113 0.11
15 1.06e+04 K 1.08e+04 K 0.0858 0.0816
[tardis.simulation.base][INFO   ]

        Current t_inner = 10655.561 K
        Expected t_inner for next iteration = 10636.536 K
 (base.py:656)
Average temperature for iteration 17: 10947.334083316739 K
[tardis.simulation.base][INFO   ]

        Starting iteration 18 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.057e+43 erg / s
        Luminosity absorbed  = 3.365e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 16/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.468 0.464
5 1.14e+04 K 1.13e+04 K 0.175 0.177
10 1.11e+04 K 1.1e+04 K 0.11 0.113
15 1.08e+04 K 1.07e+04 K 0.0816 0.0848
[tardis.simulation.base][INFO   ]

        Current t_inner = 10636.536 K
        Expected t_inner for next iteration = 10641.692 K
 (base.py:656)
Average temperature for iteration 18: 10876.278951154796 K
[tardis.simulation.base][INFO   ]

        Starting iteration 19 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.405e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 17/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.464 0.466
5 1.13e+04 K 1.13e+04 K 0.177 0.177
10 1.1e+04 K 1.11e+04 K 0.113 0.111
15 1.07e+04 K 1.07e+04 K 0.0848 0.0853
[tardis.simulation.base][INFO   ]

        Current t_inner = 10641.692 K
        Expected t_inner for next iteration = 10650.463 K
 (base.py:656)
Average temperature for iteration 19: 10889.667465625022 K
[tardis.simulation.base][INFO   ]

        Simulation finished in 19 iterations
        Simulation took 67.22 s
 (base.py:546)
[tardis.simulation.base][INFO   ]

        Starting iteration 20 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.401e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
Average temperature for iteration 20: 10889.667465625022 K

Running Callbacks with Extra ArgumentsΒΆ

The callbacks provided to run_tardis can also take extra arguments. As an example, we’ll make a callback that appends the number of monte carlo packets emitted by the supernova for each iteration to a list so we can plot the number of emitted packets for each iteration. We will also specify that we want this information for all but the last iteration, as more packets are used in the last iteration than are used in the other iterations. The callback will take a list we want to append to as an argument. We’ll send both this new callback and our original average_temp callback to run_tardis as an example of using multiple callbacks at once:

[3]:
def append_num_emitted_to_list(sim, lst):
    if sim.iterations_executed < sim.iterations:
        num_emitted_packets = len(sim.transport.transport_state.emitted_packet_nu)
        lst.append(num_emitted_packets)

In order to add our new callback, we just create another entry in our list of callbacks. Since append_num_emitted_to_list takes an extra argument, we will provide that argument in the inner list containing the callback:

[4]:
# Initialize a list to store the number of emitted packets
num_emitted_list = []

# Make our list of callbacks
callbacks = [[average_temp],
             [append_num_emitted_to_list, num_emitted_list]]

# Run the simulation with both of our callbacks
sim = run_tardis('tardis_example.yml',
                 simulation_callbacks=callbacks)
[tardis.io.model.parse_atom_data][INFO   ]

        Reading Atomic Data from kurucz_cd23_chianti_H_He.h5 (parse_atom_data.py:40)
[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:262)
[tardis.io.atom_data.base][INFO   ]
        Non provided Atomic Data: synpp_refs, photoionization_data, yg_data, two_photon_data, linelist_atoms, linelist_molecules (base.py:266)
[tardis.io.model.parse_density_configuration][WARNING]
        Number of density points larger than number of shells. Assuming inner point irrelevant (parse_density_configuration.py:114)
[tardis.model.matter.decay][INFO   ]
        Decaying abundances for 1123200.0 seconds (decay.py:101)
[tardis.simulation.base][INFO   ]

        Starting iteration 1 of 20 (base.py:448)
[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:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 9.93e+03 K 1.01e+04 K 0.4 0.507
5 9.85e+03 K 1.02e+04 K 0.211 0.197
10 9.78e+03 K 1.01e+04 K 0.143 0.117
15 9.71e+03 K 9.87e+03 K 0.105 0.0869
[tardis.simulation.base][INFO   ]

        Current t_inner = 9933.952 K
        Expected t_inner for next iteration = 10703.212 K
 (base.py:656)
Average temperature for iteration 1: 10000.388658902046 K
[tardis.simulation.base][INFO   ]

        Starting iteration 2 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.071e+43 erg / s
        Luminosity absorbed  = 3.576e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.01e+04 K 1.08e+04 K 0.507 0.525
5 1.02e+04 K 1.1e+04 K 0.197 0.203
10 1.01e+04 K 1.08e+04 K 0.117 0.125
15 9.87e+03 K 1.05e+04 K 0.0869 0.0933
[tardis.simulation.base][INFO   ]

        Current t_inner = 10703.212 K
        Expected t_inner for next iteration = 10673.712 K
 (base.py:656)
Average temperature for iteration 2: 10631.424369879076 K
[tardis.simulation.base][INFO   ]

        Starting iteration 3 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.074e+43 erg / s
        Luminosity absorbed  = 3.391e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 1/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.08e+04 K 1.1e+04 K 0.525 0.483
5 1.1e+04 K 1.12e+04 K 0.203 0.189
10 1.08e+04 K 1.1e+04 K 0.125 0.118
15 1.05e+04 K 1.06e+04 K 0.0933 0.0895
[tardis.simulation.base][INFO   ]

        Current t_inner = 10673.712 K
        Expected t_inner for next iteration = 10635.953 K
 (base.py:656)
Average temperature for iteration 3: 10792.28558860157 K
[tardis.simulation.base][INFO   ]

        Starting iteration 4 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.058e+43 erg / s
        Luminosity absorbed  = 3.352e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 2/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.483 0.469
5 1.12e+04 K 1.12e+04 K 0.189 0.182
10 1.1e+04 K 1.1e+04 K 0.118 0.113
15 1.06e+04 K 1.07e+04 K 0.0895 0.0861
[tardis.simulation.base][INFO   ]

        Current t_inner = 10635.953 K
        Expected t_inner for next iteration = 10638.407 K
 (base.py:656)
Average temperature for iteration 4: 10848.003383960113 K
[tardis.simulation.base][INFO   ]

        Starting iteration 5 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.055e+43 erg / s
        Luminosity absorbed  = 3.399e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 3/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.469 0.479
5 1.12e+04 K 1.13e+04 K 0.182 0.178
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.07e+04 K 0.0861 0.0839
[tardis.simulation.base][INFO   ]

        Current t_inner = 10638.407 K
        Expected t_inner for next iteration = 10650.202 K
 (base.py:656)
Average temperature for iteration 5: 10866.055578140767 K
[tardis.simulation.base][INFO   ]

        Starting iteration 6 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.398e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 4/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.479 0.47
5 1.13e+04 K 1.12e+04 K 0.178 0.185
10 1.1e+04 K 1.11e+04 K 0.113 0.112
15 1.07e+04 K 1.07e+04 K 0.0839 0.0856
[tardis.simulation.base][INFO   ]

        Current t_inner = 10650.202 K
        Expected t_inner for next iteration = 10645.955 K
 (base.py:656)
Average temperature for iteration 6: 10859.348047846392 K
[tardis.simulation.base][INFO   ]

        Starting iteration 7 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.382e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 5/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.47 0.47
5 1.12e+04 K 1.13e+04 K 0.185 0.178
10 1.11e+04 K 1.11e+04 K 0.112 0.112
15 1.07e+04 K 1.07e+04 K 0.0856 0.086
[tardis.simulation.base][INFO   ]

        Current t_inner = 10645.955 K
        Expected t_inner for next iteration = 10642.050 K
 (base.py:656)
Average temperature for iteration 7: 10859.00265651005 K
[tardis.simulation.base][INFO   ]

        Starting iteration 8 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.062e+43 erg / s
        Luminosity absorbed  = 3.350e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 6/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.47 0.472
5 1.13e+04 K 1.14e+04 K 0.178 0.175
10 1.11e+04 K 1.11e+04 K 0.112 0.111
15 1.07e+04 K 1.07e+04 K 0.086 0.084
[tardis.simulation.base][INFO   ]

        Current t_inner = 10642.050 K
        Expected t_inner for next iteration = 10636.106 K
 (base.py:656)
Average temperature for iteration 8: 10910.969808051923 K
[tardis.simulation.base][INFO   ]

        Starting iteration 9 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.052e+43 erg / s
        Luminosity absorbed  = 3.411e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 7/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.472 0.469
5 1.14e+04 K 1.15e+04 K 0.175 0.17
10 1.11e+04 K 1.11e+04 K 0.111 0.109
15 1.07e+04 K 1.08e+04 K 0.084 0.0822
[tardis.simulation.base][INFO   ]

        Current t_inner = 10636.106 K
        Expected t_inner for next iteration = 10654.313 K
 (base.py:656)
Average temperature for iteration 9: 10965.776193458922 K
[tardis.simulation.base][INFO   ]

        Starting iteration 10 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.070e+43 erg / s
        Luminosity absorbed  = 3.335e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 8/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.469 0.475
5 1.15e+04 K 1.14e+04 K 0.17 0.177
10 1.11e+04 K 1.11e+04 K 0.109 0.112
15 1.08e+04 K 1.06e+04 K 0.0822 0.0878
[tardis.simulation.base][INFO   ]

        Current t_inner = 10654.313 K
        Expected t_inner for next iteration = 10628.190 K
 (base.py:656)
Average temperature for iteration 10: 10870.944568516601 K
[tardis.simulation.base][INFO   ]

        Starting iteration 11 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.053e+43 erg / s
        Luminosity absorbed  = 3.363e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 9/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.475 0.472
5 1.14e+04 K 1.12e+04 K 0.177 0.184
10 1.11e+04 K 1.1e+04 K 0.112 0.114
15 1.06e+04 K 1.06e+04 K 0.0878 0.0859
[tardis.simulation.base][INFO   ]

        Current t_inner = 10628.190 K
        Expected t_inner for next iteration = 10644.054 K
 (base.py:656)
Average temperature for iteration 11: 10809.020854430875 K
[tardis.simulation.base][INFO   ]

        Starting iteration 12 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.420e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 10/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.472 0.467
5 1.12e+04 K 1.13e+04 K 0.184 0.176
10 1.1e+04 K 1.11e+04 K 0.114 0.11
15 1.06e+04 K 1.08e+04 K 0.0859 0.0821
[tardis.simulation.base][INFO   ]

        Current t_inner = 10644.054 K
        Expected t_inner for next iteration = 10653.543 K
 (base.py:656)
Average temperature for iteration 12: 10937.942301622288 K
[tardis.simulation.base][INFO   ]

        Starting iteration 13 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.062e+43 erg / s
        Luminosity absorbed  = 3.406e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 11/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.467 0.466
5 1.13e+04 K 1.13e+04 K 0.176 0.18
10 1.11e+04 K 1.11e+04 K 0.11 0.111
15 1.08e+04 K 1.08e+04 K 0.0821 0.0841
[tardis.simulation.base][INFO   ]

        Current t_inner = 10653.543 K
        Expected t_inner for next iteration = 10647.277 K
 (base.py:656)
Average temperature for iteration 13: 10916.558174390986 K
[tardis.simulation.base][INFO   ]

        Starting iteration 14 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.063e+43 erg / s
        Luminosity absorbed  = 3.369e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 12/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.466 0.469
5 1.13e+04 K 1.13e+04 K 0.18 0.182
10 1.11e+04 K 1.1e+04 K 0.111 0.113
15 1.08e+04 K 1.07e+04 K 0.0841 0.0854
[tardis.simulation.base][INFO   ]

        Current t_inner = 10647.277 K
        Expected t_inner for next iteration = 10638.875 K
 (base.py:656)
Average temperature for iteration 14: 10854.170163362927 K
[tardis.simulation.base][INFO   ]

        Starting iteration 15 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.053e+43 erg / s
        Luminosity absorbed  = 3.417e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 13/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.469 0.484
5 1.13e+04 K 1.13e+04 K 0.182 0.181
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.07e+04 K 0.0854 0.0858
[tardis.simulation.base][INFO   ]

        Current t_inner = 10638.875 K
        Expected t_inner for next iteration = 10655.125 K
 (base.py:656)
Average temperature for iteration 15: 10830.001777664324 K
[tardis.simulation.base][INFO   ]

        Starting iteration 16 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.059e+43 erg / s
        Luminosity absorbed  = 3.445e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 14/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.484 0.472
5 1.13e+04 K 1.13e+04 K 0.181 0.177
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.06e+04 K 0.0858 0.0858
[tardis.simulation.base][INFO   ]

        Current t_inner = 10655.125 K
        Expected t_inner for next iteration = 10655.561 K
 (base.py:656)
Average temperature for iteration 16: 10847.978715255837 K
[tardis.simulation.base][INFO   ]

        Starting iteration 17 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.067e+43 erg / s
        Luminosity absorbed  = 3.372e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 15/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.472 0.468
5 1.13e+04 K 1.14e+04 K 0.177 0.175
10 1.1e+04 K 1.11e+04 K 0.113 0.11
15 1.06e+04 K 1.08e+04 K 0.0858 0.0816
[tardis.simulation.base][INFO   ]

        Current t_inner = 10655.561 K
        Expected t_inner for next iteration = 10636.536 K
 (base.py:656)
Average temperature for iteration 17: 10947.334083316739 K
[tardis.simulation.base][INFO   ]

        Starting iteration 18 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.057e+43 erg / s
        Luminosity absorbed  = 3.365e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 16/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.468 0.464
5 1.14e+04 K 1.13e+04 K 0.175 0.177
10 1.11e+04 K 1.1e+04 K 0.11 0.113
15 1.08e+04 K 1.07e+04 K 0.0816 0.0848
[tardis.simulation.base][INFO   ]

        Current t_inner = 10636.536 K
        Expected t_inner for next iteration = 10641.692 K
 (base.py:656)
Average temperature for iteration 18: 10876.278951154796 K
[tardis.simulation.base][INFO   ]

        Starting iteration 19 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.405e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 17/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.464 0.466
5 1.13e+04 K 1.13e+04 K 0.177 0.177
10 1.1e+04 K 1.11e+04 K 0.113 0.111
15 1.07e+04 K 1.07e+04 K 0.0848 0.0853
[tardis.simulation.base][INFO   ]

        Current t_inner = 10641.692 K
        Expected t_inner for next iteration = 10650.463 K
 (base.py:656)
Average temperature for iteration 19: 10889.667465625022 K
[tardis.simulation.base][INFO   ]

        Simulation finished in 19 iterations
        Simulation took 9.53 s
 (base.py:546)
[tardis.simulation.base][INFO   ]

        Starting iteration 20 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.401e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
Average temperature for iteration 20: 10889.667465625022 K

Now we can look at how many packets are emitted after each iteration:

[5]:
import matplotlib.pyplot as plt

# Generate a list of each iteration number for the x-axis
iterations = list(range(1, len(num_emitted_list)+1))

# Plot the number of emitted packets
plt.plot(iterations, num_emitted_list)
plt.xlabel("Iteration")
plt.ylabel("Number of emitted packets")
[5]:
Text(0, 0.5, 'Number of emitted packets')
../../_images/io_optional_tutorial_callback_example_10_1.svg

Using Callbacks to Add New FunctionalityΒΆ

Callbacks can also add new functionality to the code. For example, we introduce one final callback inc_packets that will increase the number of packets in the following iteration by a number \(N\) (which is an argument to the callback, in our example we shall use \(N=1000\)):

[6]:
def inc_packets(sim, N):
    sim.no_of_packets += N
[7]:
# Initialize a new list to store the number of emitted packets
num_emitted_list_new = []

# Make our new list of callbacks
callbacks = [[average_temp],
             [append_num_emitted_to_list, num_emitted_list_new],
             [inc_packets, 1000]]

# Run the simulation with all three of our callbacks
sim = run_tardis('tardis_example.yml',
                 simulation_callbacks=callbacks)
[tardis.io.model.parse_atom_data][INFO   ]

        Reading Atomic Data from kurucz_cd23_chianti_H_He.h5 (parse_atom_data.py:40)
[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:262)
[tardis.io.atom_data.base][INFO   ]
        Non provided Atomic Data: synpp_refs, photoionization_data, yg_data, two_photon_data, linelist_atoms, linelist_molecules (base.py:266)
[tardis.io.model.parse_density_configuration][WARNING]
        Number of density points larger than number of shells. Assuming inner point irrelevant (parse_density_configuration.py:114)
[tardis.model.matter.decay][INFO   ]
        Decaying abundances for 1123200.0 seconds (decay.py:101)
[tardis.simulation.base][INFO   ]

        Starting iteration 1 of 20 (base.py:448)
[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:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 9.93e+03 K 1.01e+04 K 0.4 0.507
5 9.85e+03 K 1.02e+04 K 0.211 0.197
10 9.78e+03 K 1.01e+04 K 0.143 0.117
15 9.71e+03 K 9.87e+03 K 0.105 0.0869
[tardis.simulation.base][INFO   ]

        Current t_inner = 9933.952 K
        Expected t_inner for next iteration = 10703.212 K
 (base.py:656)
Average temperature for iteration 1: 10000.388658902046 K
[tardis.simulation.base][INFO   ]

        Starting iteration 2 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.075e+43 erg / s
        Luminosity absorbed  = 3.541e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.01e+04 K 1.09e+04 K 0.507 0.517
5 1.02e+04 K 1.1e+04 K 0.197 0.203
10 1.01e+04 K 1.07e+04 K 0.117 0.129
15 9.87e+03 K 1.05e+04 K 0.0869 0.092
[tardis.simulation.base][INFO   ]

        Current t_inner = 10703.212 K
        Expected t_inner for next iteration = 10664.331 K
 (base.py:656)
Average temperature for iteration 2: 10622.452556021446 K
[tardis.simulation.base][INFO   ]

        Starting iteration 3 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.071e+43 erg / s
        Luminosity absorbed  = 3.373e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.09e+04 K 1.1e+04 K 0.517 0.482
5 1.1e+04 K 1.13e+04 K 0.203 0.183
10 1.07e+04 K 1.1e+04 K 0.129 0.116
15 1.05e+04 K 1.07e+04 K 0.092 0.086
[tardis.simulation.base][INFO   ]

        Current t_inner = 10664.331 K
        Expected t_inner for next iteration = 10634.729 K
 (base.py:656)
Average temperature for iteration 3: 10832.444159132065 K
[tardis.simulation.base][INFO   ]

        Starting iteration 4 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.059e+43 erg / s
        Luminosity absorbed  = 3.337e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 1/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.482 0.476
5 1.13e+04 K 1.13e+04 K 0.183 0.179
10 1.1e+04 K 1.1e+04 K 0.116 0.113
15 1.07e+04 K 1.07e+04 K 0.086 0.0847
[tardis.simulation.base][INFO   ]

        Current t_inner = 10634.729 K
        Expected t_inner for next iteration = 10634.500 K
 (base.py:656)
Average temperature for iteration 4: 10861.519094519426 K
[tardis.simulation.base][INFO   ]

        Starting iteration 5 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.053e+43 erg / s
        Luminosity absorbed  = 3.392e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 2/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.476 0.477
5 1.13e+04 K 1.12e+04 K 0.179 0.186
10 1.1e+04 K 1.1e+04 K 0.113 0.114
15 1.07e+04 K 1.06e+04 K 0.0847 0.0864
[tardis.simulation.base][INFO   ]

        Current t_inner = 10634.500 K
        Expected t_inner for next iteration = 10649.594 K
 (base.py:656)
Average temperature for iteration 5: 10811.301458424268 K
[tardis.simulation.base][INFO   ]

        Starting iteration 6 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.061e+43 erg / s
        Luminosity absorbed  = 3.397e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 3/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.477 0.474
5 1.12e+04 K 1.12e+04 K 0.186 0.184
10 1.1e+04 K 1.1e+04 K 0.114 0.113
15 1.06e+04 K 1.06e+04 K 0.0864 0.0867
[tardis.simulation.base][INFO   ]

        Current t_inner = 10649.594 K
        Expected t_inner for next iteration = 10645.600 K
 (base.py:656)
Average temperature for iteration 6: 10825.907684272705 K
[tardis.simulation.base][INFO   ]

        Starting iteration 7 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.060e+43 erg / s
        Luminosity absorbed  = 3.382e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 4/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.474 0.472
5 1.12e+04 K 1.12e+04 K 0.184 0.184
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.06e+04 K 1.06e+04 K 0.0867 0.0869
[tardis.simulation.base][INFO   ]

        Current t_inner = 10645.600 K
        Expected t_inner for next iteration = 10642.536 K
 (base.py:656)
Average temperature for iteration 7: 10832.482116577361 K
[tardis.simulation.base][INFO   ]

        Starting iteration 8 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.055e+43 erg / s
        Luminosity absorbed  = 3.413e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 5/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.472 0.476
5 1.12e+04 K 1.13e+04 K 0.184 0.18
10 1.1e+04 K 1.1e+04 K 0.113 0.115
15 1.06e+04 K 1.07e+04 K 0.0869 0.084
[tardis.simulation.base][INFO   ]

        Current t_inner = 10642.536 K
        Expected t_inner for next iteration = 10653.002 K
 (base.py:656)
Average temperature for iteration 8: 10862.045861557915 K
[tardis.simulation.base][INFO   ]

        Starting iteration 9 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.059e+43 erg / s
        Luminosity absorbed  = 3.432e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 6/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.476 0.463
5 1.13e+04 K 1.13e+04 K 0.18 0.178
10 1.1e+04 K 1.11e+04 K 0.115 0.11
15 1.07e+04 K 1.08e+04 K 0.084 0.0831
[tardis.simulation.base][INFO   ]

        Current t_inner = 10653.002 K
        Expected t_inner for next iteration = 10653.803 K
 (base.py:656)
Average temperature for iteration 9: 10931.690864218612 K
[tardis.simulation.base][INFO   ]

        Starting iteration 10 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.064e+43 erg / s
        Luminosity absorbed  = 3.386e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 7/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.463 0.475
5 1.13e+04 K 1.13e+04 K 0.178 0.18
10 1.11e+04 K 1.1e+04 K 0.11 0.113
15 1.08e+04 K 1.07e+04 K 0.0831 0.0863
[tardis.simulation.base][INFO   ]

        Current t_inner = 10653.803 K
        Expected t_inner for next iteration = 10642.059 K
 (base.py:656)
Average temperature for iteration 10: 10883.694552490448 K
[tardis.simulation.base][INFO   ]

        Starting iteration 11 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.059e+43 erg / s
        Luminosity absorbed  = 3.374e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 8/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.475 0.479
5 1.13e+04 K 1.13e+04 K 0.18 0.176
10 1.1e+04 K 1.1e+04 K 0.113 0.113
15 1.07e+04 K 1.07e+04 K 0.0863 0.0853
[tardis.simulation.base][INFO   ]

        Current t_inner = 10642.059 K
        Expected t_inner for next iteration = 10642.346 K
 (base.py:656)
Average temperature for iteration 11: 10880.327260913486 K
[tardis.simulation.base][INFO   ]

        Starting iteration 12 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.408e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 9/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.479 0.465
5 1.13e+04 K 1.14e+04 K 0.176 0.172
10 1.1e+04 K 1.11e+04 K 0.113 0.111
15 1.07e+04 K 1.07e+04 K 0.0853 0.0849
[tardis.simulation.base][INFO   ]

        Current t_inner = 10642.346 K
        Expected t_inner for next iteration = 10650.956 K
 (base.py:656)
Average temperature for iteration 12: 10906.183044524816 K
[tardis.simulation.base][INFO   ]

        Starting iteration 13 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.068e+43 erg / s
        Luminosity absorbed  = 3.340e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 10/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.465 0.471
5 1.14e+04 K 1.14e+04 K 0.172 0.175
10 1.11e+04 K 1.11e+04 K 0.111 0.113
15 1.07e+04 K 1.07e+04 K 0.0849 0.084
[tardis.simulation.base][INFO   ]

        Current t_inner = 10650.956 K
        Expected t_inner for next iteration = 10630.344 K
 (base.py:656)
Average temperature for iteration 13: 10923.025298019766 K
[tardis.simulation.base][INFO   ]

        Starting iteration 14 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.054e+43 erg / s
        Luminosity absorbed  = 3.366e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 11/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.1e+04 K 0.471 0.47
5 1.14e+04 K 1.14e+04 K 0.175 0.175
10 1.11e+04 K 1.12e+04 K 0.113 0.109
15 1.07e+04 K 1.08e+04 K 0.084 0.0826
[tardis.simulation.base][INFO   ]

        Current t_inner = 10630.344 K
        Expected t_inner for next iteration = 10644.289 K
 (base.py:656)
Average temperature for iteration 14: 10929.964073728717 K
[tardis.simulation.base][INFO   ]

        Starting iteration 15 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.056e+43 erg / s
        Luminosity absorbed  = 3.413e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 12/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.47 0.478
5 1.14e+04 K 1.14e+04 K 0.175 0.171
10 1.12e+04 K 1.11e+04 K 0.109 0.11
15 1.08e+04 K 1.07e+04 K 0.0826 0.0834
[tardis.simulation.base][INFO   ]

        Current t_inner = 10644.289 K
        Expected t_inner for next iteration = 10652.483 K
 (base.py:656)
Average temperature for iteration 15: 10925.08281557968 K
[tardis.simulation.base][INFO   ]

        Starting iteration 16 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.065e+43 erg / s
        Luminosity absorbed  = 3.370e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 13/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.1e+04 K 0.478 0.471
5 1.14e+04 K 1.14e+04 K 0.171 0.174
10 1.11e+04 K 1.11e+04 K 0.11 0.112
15 1.07e+04 K 1.08e+04 K 0.0834 0.0819
[tardis.simulation.base][INFO   ]

        Current t_inner = 10652.483 K
        Expected t_inner for next iteration = 10637.676 K
 (base.py:656)
Average temperature for iteration 16: 10938.144367235933 K
[tardis.simulation.base][INFO   ]

        Starting iteration 17 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.055e+43 erg / s
        Luminosity absorbed  = 3.393e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 14/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.1e+04 K 1.11e+04 K 0.471 0.469
5 1.14e+04 K 1.14e+04 K 0.174 0.171
10 1.11e+04 K 1.11e+04 K 0.112 0.111
15 1.08e+04 K 1.07e+04 K 0.0819 0.0853
[tardis.simulation.base][INFO   ]

        Current t_inner = 10637.676 K
        Expected t_inner for next iteration = 10649.021 K
 (base.py:656)
Average temperature for iteration 17: 10876.383404288617 K
[tardis.simulation.base][INFO   ]

        Starting iteration 18 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.063e+43 erg / s
        Luminosity absorbed  = 3.375e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 15/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.469 0.463
5 1.14e+04 K 1.14e+04 K 0.171 0.172
10 1.11e+04 K 1.11e+04 K 0.111 0.111
15 1.07e+04 K 1.06e+04 K 0.0853 0.0863
[tardis.simulation.base][INFO   ]

        Current t_inner = 10649.021 K
        Expected t_inner for next iteration = 10639.747 K
 (base.py:656)
Average temperature for iteration 18: 10877.218965488702 K
[tardis.simulation.base][INFO   ]

        Starting iteration 19 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.058e+43 erg / s
        Luminosity absorbed  = 3.368e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
[tardis.simulation.base][INFO   ]
        Iteration converged 16/4 consecutive times. (base.py:260)
[tardis.simulation.base][INFO   ]

        Plasma stratification: (base.py:629)
Shell No. t_rad next_t_rad w next_w
0 1.11e+04 K 1.11e+04 K 0.463 0.468
5 1.14e+04 K 1.14e+04 K 0.172 0.175
10 1.11e+04 K 1.11e+04 K 0.111 0.111
15 1.06e+04 K 1.07e+04 K 0.0863 0.0829
[tardis.simulation.base][INFO   ]

        Current t_inner = 10639.747 K
        Expected t_inner for next iteration = 10642.100 K
 (base.py:656)
Average temperature for iteration 19: 10939.393394137376 K
[tardis.simulation.base][INFO   ]

        Simulation finished in 19 iterations
        Simulation took 9.93 s
 (base.py:546)
[tardis.simulation.base][INFO   ]

        Starting iteration 20 of 20 (base.py:448)
[tardis.simulation.base][INFO   ]

        Luminosity emitted   = 1.058e+43 erg / s
        Luminosity absorbed  = 3.383e+42 erg / s
        Luminosity requested = 1.059e+43 erg / s
 (base.py:661)
Average temperature for iteration 20: 10939.393394137376 K

Now, let’s see how this affected our plot for packets emitted in each iteration:

[8]:
plt.plot(iterations, num_emitted_list_new)
plt.xlabel("Iteration")
plt.ylabel("Number of emitted packets")
[8]:
Text(0, 0.5, 'Number of emitted packets')
../../_images/io_optional_tutorial_callback_example_15_1.svg

As expected, the number of packets emitted will keep on increasing as 1000 more packets are run each iteration.