I develop open-source tools for computational astrophysics. My main projects are Quokka, Honghu.jl, and AstroCalculator.
Quokka
Core developer since 2023 · C++ · MIT license
A GPU-accelerated, adaptive-mesh-refinement code for two-moment radiation hydrodynamics in astrophysics, with self-gravity, particles, chemistry, and magnetic fields. The project was started by Mark Krumholz and Ben Wibking in 2021. My contributions:
- A multi-frequency (multigroup) radiation module (He, Wibking & Krumholz 2024)
- A numerical scheme for radiation–matter interaction that works in both the optically thin and thick regimes (He, Wibking & Krumholz 2024)
- The particle framework for star formation and feedback, with a GPU-optimized particle–mesh algorithm (He et al. 2026)
GitHub · Documentation · Code paper: Wibking & Krumholz 2022
Honghu.jl
Author · Julia · MIT license
A three-dimensional radiation-hydrodynamics code in pure Julia, built for comparing numerical schemes. It solves the Euler equations coupled to two-moment (M1) radiation transport, either grey or in frequency groups, on a uniform Cartesian grid. It is a rewrite of Hydro.jl that follows the algorithms of Quokka.
- Methods: PPM reconstruction, an HLLC Riemann solver, and SSP Runge–Kutta time stepping for the hydrodynamics. The radiation uses a second-order, asymptotic-preserving IMEX scheme with an implicit matter–radiation coupling.
- Verification: a test suite of over 1,000 tests, including the Sod shock tube (exact solution), radiation diffusion (analytic solution), and the Mach 3 radiative shock (semi-analytic solution of Lowrie & Edwards).
- Comparing schemes: a built-in tool runs a problem for each scheme and resolution, and reports the error and convergence rate of each.
- Limits: uniform grid and shared-memory threading only, with no mesh refinement, MPI, or GPU support.
AstroCalculator
Author · Python
A calculator for astronomers and physicists that knows physical constants and units. You type an expression such as m_e c^2, or a list of assignments followed by an expression, such as M = 1.4 M_sun, R = 10 km, sqrt(2 G M / R), and it returns the result in SI and cgs units; a follow-up such as in km/s converts it to any unit. Constants come from astropy (CODATA values, with uncertainty and reference), and expressions are parsed with sympy.
- Web app: runs fully in the browser through Pyodide, with no installation. It has a multi-line editor, a searchable sidebar of constants, units, and equation templates (for example the Bondi accretion rate or the Alfvén velocity), and an evaluation history.
- Command line:
pip install astrocalculator, then runcalcfor an interactive, colour-coded prompt. - Python module:
from calc import *gives all its constants inside your own scripts or IPython.
Other software
- ramtools (Python, built on yt): a toolkit for fast post-processing of RAMSES-RT simulations, used among my collaborators. Documentation.
- Hydro.jl (Julia): a modular hydrodynamics code in pure Julia, written for both educational and practical purposes. It is the predecessor of Honghu.jl. See also my blog post Fun with Julia.