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.
Unsupervised discovery of nonlinear plasma physics using differentiable kinetic simulations — [Journal of Plasma Physics]
Deep learned closure model for nonlinear Landau damping — [IOP Machine Learning: Science and Technology]
On the evolution of a large-amplitude, weakly collisional electron plasma wave — [Journal of Plasma Physics]
Critical velocity-space mode scalings in linear and nonlinear Landau damping — [arXiv]
See publications for the full list.
The code is [here]
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 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]