Code

ADEPT — Automatic Differentiation Enabled Plasma Transport

adept is a suite of differentiable numerical solvers for plasma physics, built in JAX. It covers kinetic physics (Vlasov-Poisson/Maxwell, Vlasov-Fokker-Planck), laser-plasma envelope equations, and fluid models — with all solvers end-to-end differentiable via automatic differentiation.

This differentiability is the key feature: it allows simulations to be embedded in gradient-based optimization and machine learning workflows. We use ADEPT to solve inverse problems, discover physics, and train neural network closures — applications that would be intractable with conventional simulation tools.


Papers using ADEPT

See publications for the full list.

The code is [here]


TSADAR — Thomson Scattering with Automatic Differentiation

tsadar fits observed Thomson-scattering spectra to infer plasma parameters such as electron density and temperature. It solves the form factor equations and, because the whole model is differentiable, fits by gradient descent rather than by finite-differenced parameter search.

Reverse-mode AD makes the cost of a gradient independent of the number of parameters, which is what makes it practical to fit electron velocity distribution functions directly instead of assuming a Maxwellian and fitting only its moments. It is fast enough to be used on data while an experiment is still running.

The code is [here]


ergodic-claude — agent tooling for scientific computing

ergodic-claude is our own Claude Code setup, made public: skills and configuration for driving ADEPT, submitting to NERSC, and reading results back out of MLflow.

We maintain it because the limiting factor when handing simulation work to an agent is rarely the model — it is whether the tools carry enough scientific context to be used correctly. This is the version we onboard new team members with.

The code is [here]