I develop novel numerical tools to improve the speed and accuracy of N-body simulations.
The complex topic of planetary dynamics can be elegantly distilled into the so-called N-body problem: given the initial positions of N number of particles interacting under the influence of gravity, can you tell me where they will be at some future point in time? It turns out you can’t. Well, unless you can, in which case you may have a Nobel prize waiting for you. Jokes aside, try as we may an exact solution to the N-body problem have evaded us so far. Thus, in lieu of an exact analytic solution we must resort to simulations that approximately solve the N-body problem. Here lies the crux of the issue – while analytic methods are exact and instant, numerical methods are both expensive (time-wise) and inexact. A great deal of my research has gone towards making these simulations less expensive and more accurate.
The most popular software used to simulate the dynamics of planetary system is REBOUND, developed and maintained by Hanno Rein. REBOUND is a publicly available open-source package and all of the tools I develop live in the REBOUND ecosystem. It is a fantastic package that I am very proud to have contributed to!
I say this a lot: there is no one in the world who wants you to use these tools more than I do. So I am always very happy to look over code or help debug if you have any questions at all about any of the tools I’ve made. Just shoot me an email! You get to use my code, my code gets used, everyone wins.

TRACE
is a code for Time Reversible Astrophysical Close Encounters. TRACE is a hybrid integrator, meaning it uses a fast inflexible method most of the time and switches to a highly accurate flexible method only when it has to. The tricky thing about constructing hybrid integrators is deciding when to make this switch. The novelty of TRACE is that we switch in a manner that respects the time-reversibility of the natural world, following an astonishingly elegant algorithm developed by my collaborator (and co-author on this work) David Hernandez. TRACE is mostly applied to highly chaotic systems with many close encounters between planets, and in these applications we've found it to be over 10x faster than previous state-of-the-art hybrid integrators with no penalty to accuracy.
Relevant Papers:
tides_spin
is a module in the REBOUNDx library of add-ons for REBOUND simulations, developed and maintained by Dan Tamayo. REBOUND generally treats all planets as point particles. But planets are not: they are dynamic things that spin and distort in the presence of other bodies. tides_spin incorporates an elegant prescription of tides known as the equilibrium tide framework into a REBOUND simulation. It allows study of extremely important astrophysical processes such as tidal decay of orbits and planetary spin evolution. Detailed documentation and example code can be found here.
Relevant Papers:
