08:42:22 Um. Alright, so thanks everybody for tuning in and thanks everybody for the the overwhelming support of this program, I'm really excited that it's going so well so far. 08:42:28 Despite not being in balmy Santa Barbara, as I had originally planned when applying for this a couple of years ago. 08:42:35 So, my tutorial is primarily a, it's a little bit different than Mark's it's it's a it's kind of a tutorial on how to use a computational tool for better analyzing and understanding simulations that might be in different formats of the of the circum galactic 08:42:51 medium anywhere from, when I'm talking about simulations I'm primarily talking about volumetric hydrodynamic data's data sets. 08:43:00 So this is either cosmological simulations, or cosmological zoom simulations, or even idealized simulations of little chunks of the CGM or ISM Or even IGN, really. 08:43:15 So I'm going to do a really quick background on both the simulation side as well as the observation side simply because I find that we all get kind of down in our corners of things and sometimes forget about how the, the other side is doing things. 08:43:33 So, and since we're trying to make comparisons with simulations against observations it's important for simulators to know what sort of things they're trying to compare against. 08:43:42 So this is just a cartoon showing something that probably everyone here is familiar with that traditionally you know historical data of of the CGM observational II was conducted by Quasar or galaxy absorption line spectra studies where you have a bright 08:43:59 background source with a well behaved spectrum, and the, the sight line that it takes traverses some sort of intervening material perhaps close to a galaxy. 08:44:11 And that produces absorption line features in the resulting spectrum, and the identification of the various absorption lines that you find tell you something about the ions that are present and the behavior of that gas along that column that line of sight 08:44:28 color. This was a plot that we showed yesterday by Hsaio-Wen really instructive plot from Jason Tumlinson, Molly Peeples and Jess Werk, great review paper from a few years ago. 08:44:39 So this is a phase diagram where the x axis is density the y axis is temperature, and you can see various different ions populating this phase space of gas, with more energetic ions in the upper left probing. 08:44:56 Let's see I can use my cursor probing more high, high energy transitions that are tend to reside in hotter lower density gas, and then lower ionization ions in in more dense and cool gas, and that tells you a lot about the state of the gas if you can 08:45:13 identify which ions are present as your absorption lines. 08:45:18 And furthermore, when you look at the actual data so on the left this is cos halos on the right. It's the Keg baryonic structure survey. So on the left. 08:45:27 When you identify individual ions that are present, based on their position in the, in the spectrum or some something to do with the doublet or a triplet, you not only identify the ion that's present but you can figure out something about the, the width 08:45:42 of it and the depth of it that tells you about the content of that. 08:45:48 The content of the gas along that line of sight, and then you can take an ensemble of these and put them together into a radio profile looks like is done on the right side, where the x axis is projected distance from the galaxy, or impact parameter, and 08:46:04 the y axis is like equivalent width of the absorption line or column density or something about the strength of the amount of material in that particular ionization state. 08:46:14 So now we know like nominally what we as simulators are trying to compare to in terms of doing analysis that directly applies to UV optical infrared absorption line data. 08:46:28 But, in some ways, the the code that I'm about to present can also work with other types of CGM data simulated data. Oops. 08:46:36 Okay, so the two codes that I'm presenting Trident and YT are both Python open source codes, with a variety of different contributors, first YT, you probably have heard of. 08:46:51 It's a really general code that's used for visualization and analysis of really any volumetric dataset. When it was first started to be developed by Matt Turk who's now a professor at Illinois. 08:47:02 It was primarily for astrophysical hydrodynamic data like, I'm showing here, but it has grown to a much much larger community with scores of different contributors, and many of them are actually present on the at this meeting the Trident code is an extension 08:47:20 of YT specifically for dealing with CGM and IGM hydrodynamic simulation data, and for generating synthetic observables. We definitely have a smaller contributor base. 08:47:32 The main authors who developed it were myself, Britain Smith and Devin Silvia, although, as I said, there are a number of different developers and again, many of them are here today. 08:47:43 But again, these are all free they're all freely available have decent documentation and, and you can download them, and run them on Python on your own machine and on your own data. 08:47:53 So the main functionality that Trident provides is that you can generate ion data for your simulations most people when they run simulations don't have the specific ionization states of different elements, when they're running the code, it gets quite 08:48:10 expensive, although there are some exceptions. Ben has been involved in some of that work, but most of the time. 08:48:17 You don't necessarily have ions beyond neutral hydrogen and ionized hydrogen present in the simulation at at base level and Trident uses some some some reasonable assumptions to generate that ion data for any arbitrary ion in your simulation data and 08:48:34 kind of stack it on top. 08:48:36 It also enables one the analysis along skewers much like you'd get from absorption line features to background quasars. And finally, it can generate again using some, some decent assumptions. 08:48:50 By depositing voice profiles in a, in a broadband spectrum, it can generate absorption line spectra for making direct comparisons with observations, and then YT does a bunch of stuff but primarily here I'm going to use it to visualize spatial distribution 08:49:02 of gas and then correlate different gasfields in phase plots. 08:49:07 Ok so, again, quick review what is actually in a hydro dynamic simulation data set. 08:49:13 Here I've represented it as a, as a grid, but this could equally be a particle based or, or, or non regular grid, like, like a red bow and a moving mesh. 08:49:24 It's essentially as volumetric data set, where you have a number of different resolution elements, and each resolution element describes the behavior of a fluid element, some sort of gas component, and for each fluid element there should be a variety 08:49:41 of different fields, sometimes it's something like density, as we can see here, or temperature or metallicity or the velocity of gas and the extraction, or so on and so forth. 08:49:53 But as I said, oh and, and just simply from that you can use YT and Trident to generate something like this this is a movie from the, from the one of the fire data sets that I produced, and it's it's essentially just generating a single projection plot 08:50:09 for each, each frame in a time series of outputs from the fire simulation so you can you can use this for both analysis but you can also use it to gain some sort of, I really liked these to gain some sort of intuition about what's going on in the, in 08:50:22 the simulation itself. This is a milky way mass Halo evolved from high redshift to low redshift in, and you can see density and temperature over time. 08:50:32 Okay, but what we'd like to do is look at the individual behavior of ions, and as I said this isn't by default included in most simulations as they're run. 08:50:44 So Trident provides a module called ion balance, which consists of a lookup table that has almost a million different elements because it was run, almost a million times on different cloudy simulations, with different cloudy initial conditions of density 08:51:00 temperature metallicity and, and in this case redshift which tells you something about the UV background at that particular redshift. And so these, these get into an equilibrium state, the cloudy runs got into an equilibrium state for that density 08:51:16 temperature and redshift, and then we pull out the relevant phases of the gas. Once it's kind of converged. 08:51:26 And based on that, we can populate each cell or each resolution element in our simulation, with additional fields for these ions, so I can put in neutral hydrogen, which as you can see has. 08:51:40 This is a kind of a sample data set that that is a very low resolution data set for the purposes of this but it's much more filamentary and the distribution of each one as opposed to something like oxygen six which is much, much more broadly extended throughout 08:51:55 the Halo, because it's probing warmer gas, lower density gas. 08:52:01 Okay, and then from that making a similar video showing again, each one on the left and oxygen six on the right, and kind of showing the evolution of these two different. 08:52:11 These two different phases which is more akin to something that we might be able to see with observers, as opposed to an abstract quantity like temperature 08:52:25 at the second half of this tutorial I'm actually going to go through a Jupiter notebook and take you through a lot of the steps in generating things like this, and I will be providing that Jupiter notebook afterwards so people can use that in the future. 08:52:37 Okay, um, the second as I said the second piece of functionality that tried and provides is what we call light rays but it's essentially just skewers one dimensional skewers that you can probe whatever fields you care to probe along arbitrary sightlines 08:52:52 in your simulation data, and it looks something like this. So again, a movie to demonstrate that this but every, every slide is an output from from YT and Trident, we're looking at a simulation on the left side the spatial two dimensional slice through 08:53:09 a galaxy simulation. And you can see as that sightline traverses that volume as it encounters material. 08:53:17 You can see a bump in the density on the, on the top profile. I'm just arbitrarily chose silicon two as the particular ion to look at, and then line of sight velocity of the gases were probing through this through this volume as well. 08:53:32 So you can prove that sort of thing with any of the fields that you care to from the simulation data, but most obviously this is appropriate for for specific ions. 08:53:42 And then finally Trident can generate some synthetic absorption line spectra from that data, where it deposits of weight profile for every fluid element that it traverses that has. 08:53:55 Whatever ion, we care about in this case silicon two. 08:53:59 And so it identifies this, if it's red shifted or blue shifted, according to the line of sight velocity of the gas containing it with respect to the observer, and then deposits various different void void profiles in the, in the final. 08:54:13 The final spectrum that we get out. 08:54:16 So that's kind of the basics of how this is how this is run. I'm going to skip past this 08:54:24 and go straight to the tutorial. So let's see if I can 08:54:31 share. 08:54:35 Okay. 08:54:42 Okay. 08:54:44 So, As I said I'm going to take you guys through a Jupiter notebook that kind of demonstrates how to use all of this. 08:54:54 In reality, not just me hand-waving about how this is done, I will provide this after the fact. So people are welcome to download this and use it and test it out. 08:55:03 There's also relevant documentation on the Trident doc, Doc site on read the docs but this may be a little bit more helpful so initially I'll step through this rather quickly. 08:55:11 Just to give you guys a feel for what what's going on. 08:55:15 Initially, I'm going to load the YT and Trident modules. I'm also loading, a Python display just so I can display images in line in this particular thing. 08:55:25 I'm working with a low resolution fire data set that is freely available at this website for the YT. YT has a number of sample data sets that you can use to test out functionality on a variety of different datasets. 08:55:38 So I define that as a file name I load it using YT dot load of that file name to provide a data set. And then I just look at what fields are present for that particular data set. 08:55:50 And you can see those of you who are Gizmo or gadget users or Arapaho probably recognize many of these, but if you go down to the bottom, gas, the each field is a temple and the, the ones that start with gas are usually the ones that are relevant for 08:56:05 the gas fields and so on and so forth so you can see things like there's a variety of different fields that are present. 08:56:14 I'm just going to do the simple thing of finding the centroid of the simulation, or finding the maximum density location in the simulation with this find Max, and then generating a projection plot in gas density centered on that, that kind of high density 08:56:30 peak at with the width of one mega parsecs, and this is just modifying things a little bit to give some nice text and adding us a scale bar, and then I'll show it. 08:56:40 I've also included the Save command, if you wanted to save it as a PNG, rather than displaying it in your Jupiter notebook so this is what our simulation data set looks like with the galaxy and the center, a large halo around it. 08:56:54 This is in projected density over one mega parsec. 08:56:58 We can similarly do that exact same thing where I just swap out the field that I want to make the projection plot of this time I'm doing it with temperature, and I'll give it a weighting of density 08:57:12 and generate and I'm doing this down the x axis but I could just as well be doing this along the y or the z axis or some arbitrary vector that I specified later. 08:57:21 So this is what the temperature looks like for that particular data set, hot and then there appears to be a satellite that's coming in that has substantial cool data associated with it, or cool gas associated with it, and shoot what happened. 08:57:34 Similarly, I can generate a phase plot, like we saw before. 08:57:40 This is of density on the x axis temperature on the y axis, this is for the entire volume. 08:57:47 But if I specify Halo, which is the region directly around the galaxy itself. I get a more realistic looking phase plot with a cool gas component and a hotter gas component, again this is a low resolution sample data set so it shouldn't be taken too seriously 08:58:05 but it's just for the demonstration purposes. Okay. So as I said, I want to add ion fields that may not be present in the original data set, I can do that using Trident dot ion fields and I'm going to specify carbon, nitrogen, oxygen magnesium and silicon 08:58:21 two, although I could also just say silicon, as a whole, and get all of the silicon ion fields. And you can see here that now these are present that it's a weird. 08:58:30 The fields have to be named in a weird way to make it work. So, h underscore p zero refers to H plus zero, which refers to H neutral hydrogen, h1, and oxygen six is similarly, oxygen, underscore p five for oxygen plus five. 08:58:47 But that's, that's how you can find these things. And now that these fields are populated in our data set, we can, we can make projection plots of those fields, just as we did for the density and for the temperature 08:59:01 clunking along here. Okay. And so this is H one again, not necessarily realistic because this is very low resolution data set, but you can see the, you can see the idea. 08:59:12 And similarly we can do this for oxygen six 08:59:17 oxygens next. 08:59:20 Here we are. So it's much, much more extended in its distribution than h1 was. 08:59:27 And because those fields exist, we can do any of YT's functionality on them, we can make phase plots as well. So in this case it's the same plot that we saw above with temperature and density, but now the waiting is oxygen six mass and you can see 08:59:40 that kind of the peak at which oxygen six occurs is in fact that three times tend to the fifth Kelvin, which is where we nominally expect it to be based on 08:59:53 based on the population of that particular ion, relative to other other phases ionization states of the oxygen cast. 09:00:02 So we can create a light ray which as I said, was this one dimensional skewer. In this case, I'm going to make the start, be at the center of the galaxy, and the end of the ray be at just the edge the boundary of the, of the simulation volume. 09:00:17 And I use this make simple ray command to generate that it's rather quick to generate a light ray takes a few seconds. 09:00:28 It's barking at me because some of the ion fractions are unrealistic from our lookup table. 09:00:34 And then I can over plot this light ray on a projection like we saw saw before, just to visualize what its path is. 09:00:45 And here you see, as I said, it starts at the center of the galaxy and ends at the domain edge which is beyond the region that we're projecting in this plot, but you can, we can look at, we can look at that particular light ray and see what's what's present 09:01:02 there. Again, it consists of fields, it's just a series of one dimensional arrays representing the state of the various different fields along that line of sight. 09:01:13 It has, in this case it has over 2000 fluid elements for that light ray and we can look at the path length of each of those fluid elements, which is DL. 09:01:29 As, and it's. Some of them are rather long in kilo parsecs somewhere rather short, it's it's mostly dependent on the, the density of particles at that region that the line of sight of that the light rays traversing. 09:01:43 We can look at other fluid quantities on that light ray like neutral hydrogen number density that provide us with values, again, sometimes there's no neutral hydrogen sometimes there's a bunch of neutral hydrogen, that's present, and thus we can calculate 09:01:59 the column density of each one along that light rays simply by multiplying the past length times the neutral hydrogen number density. 09:02:08 That gives us column densities for each of the fluid elements along that light ray, and if we sum them up, it gives us the total amount of each one along that, that, that light ray that that skewer. 09:02:19 In this case, looks like. 09:02:21 Like a DLA. 09:02:24 And finally, let's generate a spectrum for that particular thing that particular site line. 09:02:30 There's some, some pre entered information to give us a different cos cosmic origin spectrograph settings. 09:02:40 In this case, g 130 m, as the setting, and I'm just going to generate lyman alpha spectrum, according to the presence of h1. Now remember, our sightline took us right into the center of the galaxy. 09:02:52 And so, yes, there's a lot of H one that's present, and this is what you might expect in terms of that lyman alpha profile that comes out of it. 09:03:02 We can look at the spectrum generation that we that we created just to see this is the, these are the various wavelength values in extremes, and then it provides. 09:03:13 Also, the optical depth field, as well as the flux field. 09:03:19 Sorry this is going quite so fast but it's only 20 minutes or so, and I'm ending in imminently. 09:03:26 Finally, we can generate a user defined spectrum that let's just say arbitrarily goes from 1000 to 2000 angstroms and we'll include lyman alpha, we'll include magnesium to and we'll include carbon lines. 09:03:39 Because we're going through this dense region in the galaxy, it takes it a little bit more time to generate to generate these. It's clunking through here. 09:03:50 Ah, here we go, here's our output spectrum. Now this is a pure spectrum without any kind of noise that's been added to it. 09:03:57 But we can also add a background Qs like Quasar spectrum to it and add Gaussian noise. 09:04:06 Consistent with a signal to noise have like 30. 09:04:09 When we do that, it generates something that may be a little bit more realistic for comparing with observations. And finally we can generate spectra in velocity space. 09:04:22 This is doing so I just arbitrarily chose the nitrogen five lines to plot. And it shows us that, you know, for the nitrogen five lines we have a couple of different features one at a velocity offset of zero and then one kind of blue shifted with respect 09:04:39 to the, to the observer. 09:04:42 So, I hope. 09:04:45 I know I went through that rather quickly. 09:04:50 But I hope. 09:04:52 Let's see. I hope you get a taste for what what what I'm what we're trying to do with Trident, and with YT in terms of helping people to better understand what the heck is going on and simulation data and perhaps make some, some relevant comparisons with 09:05:09 observational data at least UV obstacle and infrared absorption line data. 09:05:15 Thank you. 09:05:17 I guess I will follow Mark's lead, and I will go into the go into the breakout room assigned to me. If people want to check it out 09:05:31 and join me otherwise, I guess we'll get started in 15 minutes or so in here with Expert task is FRB tutorial.