About Me

I completed my PhD work as a member of the UW Astronomy N-body shop working with Dr. Thomas Quinn to develop and use highly parallel tree-based algorithms to simulate N-body interactions in a variety of astronomical contexts. The bulk of my thesis work involved simulating the collisional agglomeration of solids in planet-forming disks to understand the formation history of tightly-packed exoplanetary systems. I also used the same code to study hydrodynamic interactions in galaxies. In addition, I helped to adapt some of the algorithms we used to develop ParaTreeT, which is a toolkit to quickly and easily develop and test spatial tree algorithms in a HPC environment. When I'm not thinking about N-body simulations or tree algorithms, I'm an avid hiker/backpacker and play bass for the bands Night Lunch and Cheers to the Outside.

Simulating the Assembly of Terrestrial Planets

Recent planet-finding surveys have discovered that tightly-packed systems of rocky planets are a significant outcome of the planet formation process. Current models have great difficulty at reproducing these types of systems. Part of this difficulty comes from that fact that the final stages of planet formation are chaotic and must be modeled with N-body simulations. Conventional computational constraints require that these simulations begin with unrealistically large super-particles.

As part of my thesis work, I extended the highly-parallel N-body code ChaNGa to simultaneously model gravitational interactions and collisional growth between large collections of particles. Upon doing so, I ran the first-ever direct N-body simulations of planet growth starting with realistic-sized bodies. The first stage of this process is published in the Astrophysical Journal and the second, chaotic stage is described in the fifth chapter of my PhD thesis.

Using a Neural Network to Synthesize Initial Conditions for Planet Formation Simulations

Due to the chaotic nature of the final stages of the planet formation process, a large number of simulations are required to fully capture and understand the outcome of this process. Unfortunately, the immense computational expense of these simulations prohibits one from evolving more than a few sets of initial conditions. However, due to the progressive growth of the protoplanets, the particle count and computational cost decreases as the simulations evolve.

To solve both of these issues, I use the intermediate snapshots from the simulations to train a neural network to effectively learn the posterior distributions of the particles in the chosen parameter space. This is done using a Generative Adversarial Network (GAN) through the CTGAN library, which is in turn powered by PyTorch. By then drawing from the posterior distributions modeled by the GAN, I produce a significantly broader set of intermediate stage initial conditions which can be run to completion and provide a larger set of simulated planets to perform statistical analyses on. The full technique is described in the fifth chapter of my PhD thesis.

Using Parallel Spatial Tree Algorithms for Astrophysical Applications

Gravitationally bound systems such as star clusters, galaxies and planet-forming disks contain far too many particles to individually represent with an N-body simulation. Mutual gravitational force calculations, collision detection and hydrodynamic force calculations naively require O(N^2) evaluations when using a particle-based approach. However, a Barnes-Hut-like technique can be used to partition the volume into smaller units that are then represented with a tree data structure. By applying an opening criteria to each tree node, approximate forces can be computed in O(N log N) time.

Extending this technique to a highly parallel environment, however, is nontrivial. The bulk of my PhD thesis involved working with the N-body code ChaNGa, which is designed to make this approach highly scalable in a HPC environment. ChaNGa is built off of the Charm++ framework, which can handle load balancing and message passing on upwards to hundreds of thousands of cores.

I also assisted in the development of ParaTreeT, another Charm++ application. ParaTreeT is designed to allow users to quickly and easily explore the performance of different spatial partitioning and tree traversal algorithms. There is no one-size-fits-all algorithm that works optimally for every data set. Instead, different symmetries and levels of homogeniety in simulated datasets are better suited with different algorithms. A publication exploring these concepts can be found here.

Teaching and Outreach

In addition to research, I actively participated as a teacher and mentor for the UW Astronomy department. I have acted as a teaching assistant for our department's intro level astronomy classes numerous times and also act as a mentor for the pre-MAP program, which acts to introduce early undergraduates to astronomy research.

I also worked as an outreach specialist for Kitt Peak National Observatory in 2014 and 2015, in which I lead night time stargazing programs for the general public.

From 2019 to 2020, I also acted as an editor and writer for the popular science blog Astrobites. Links to the articles I've written can be found below:

Stirring up rocky worlds
Evaporating disks with massive stars
A planetary death census
Unraveling the formation history of hot jupiters
Peas in a pod?
The imprint of an invisible giant
Managing your personal finances in grad school (and beyond)
Combining ground and space-based observations to find evryflare
More metals, more planets?
Unlocking the secrets of chaotic planetary systems
The little planets that could
Heavy-metal jupiters
Aeolian-erosion in protoplanetary disks
Stirring up hurricanes on other worlds
Shift-stacking the night away