Physics Walkthrough Introduction

How TARDIS Works

The goal of TARDIS is, given input information about a supernova, to determine (i) properties of the plasma making up the supernova and (ii) the spectrum of light that is emitted from the supernova.

The physics of TARDIS is in four major parts, which are summarized here and in the diagram below. First, the TARDIS simulation is set up (Setting Up the Simulation) from a TARDIS configuration (see here for how the configuration is created). This involves the creation of the supernova model and the initial conditions of the supernova’s plasma, as well as initializing the Monte Carlo transport. Next is the Monte Carlo Iteration (Monte Carlo Iteration) where the heart of TARDIS takes place; packets of light are sent through the supernova and tracked as they interact with matter. Next, TARDIS uses information from the Monte Carlo iteration to update properties of the plasma to eventually find the correct plasma state (Updating Plasma and Convergence). This process of doing a Monte Carlo iteration and then updating the plasma is repeated for a specified number of times or until certain aspects of the plasma state converge (as is also discussed in Updating Plasma and Convergence). After that, data generated in the Monte Carlo simulation is used to synthesize the output spectrum of the supernova (Spectrum Generation).

In the diagram, each physics step is shown in a box with the name of the step (bolded and underlined) along with the method that triggers the step (italicized) and the major components of the step. The reading of the configuration and the overall iterative process (comprising the Monte Carlo Iteration step and Updating Plasma and Convergence step) are also shown, again with the methods triggering these processes in italics.

digraph { compound = true graph [nodesep=4, ranksep=1] config [label=<<B>Configuration</B><br/><br/> <i>&lt;Configuration object&gt;=Configuration.from_yaml(...)</i><br/> <i>&lt;Configuration object&gt;=Configuration.from_config_dict(...)</i>>, shape=oval] setup_sim [label=<<B><u>Setting up the Simulation</u></B> <br/><br/> <i>&lt;Simulation object&gt;=Simulation.from_config(...)</i> <br/><br/> - Creates and calculates model <br/> - Creates and calculates plasma <br/> - Initializes Monte Carlo transport>, shape=rectangle] mc_iteration [label=<<B><u>Monte Carlo Iteration</u></B> <br/><br/> <i>&lt;Simulation object&gt;.iterate(...)</i><br/> <br/> - Initializes packets <br/> - Propagates packets <br/> - Calculates estimators>, shape=rectangle] adv_state [label=<<B><u>Updating Plasma and Convergence</u></B> <br/><br/> <i>&lt;Simulation object&gt;.advance_state()</i> <br/><br/> - Estimates and updates t_rad, w, and t_inner in model <br/> - Updates plasma <br/> - Checks for convergence>, shape=rectangle] spec_gen [label=<<B><u>Spectrum Generation</u></B> <br/><br/> <i>From final Monte Carlo iteration</i> <br/><br/> - Basic spectrum generation <br/> - Virtual packets <br/> - Formal integral>, shape=rectangle] subgraph cluster1 { style = rounded margin = .25 label=<<br/><br/><i>&lt;Simulation object&gt;.run_convergence()</i><br/> >; mc_iteration -> adv_state adv_state -> mc_iteration } config -> setup_sim setup_sim -> mc_iteration [lhead=cluster1, minlen=2] adv_state -> spec_gen [ltail=cluster1] }

Background Material

TARDIS is home to an incredibly diverse, multidisciplinary team. As such, we believe that it is important to make an understanding of the physics of TARDIS accessible to all, from students just getting started with physics and astronomy to expert researchers. The following pages are designed to give an overview of the basic physics that TARDIS relies upon to new students or anyone else in need of a refresher!