Frank Schäfer

Frank Schäfer

Postdoctoral researcher

Julia Lab @ MIT


I am a postdoc in the Julia Lab located in the Computer Science and Artificial Intelligence Laboratory (CSAIL) at the Massachusetts Institute of Technology (MIT). My research is focussed on Scientific Machine Learning (SciML). I completed my PhD in physics in the Bruder group within the “Quantum Computing and Quantum Technology” PhD school at the University of Basel. During my PhD, I participated in the Google Summer of Code (GSoC) 2020 and 2021 programs with the projects “ High weak order stochastic differential equation solvers and their utility in neural stochastic differential equations” within the Julia Language organization and “ Neural Hybrid Differential Equations and Adjoint Sensitivity Analysis” within the NumFocus organization, supervised by Chris Rackauckas, Moritz Schauer, Mohamed Tarek, and Yingbo Ma. Since 2020, I am a member of the SciML open source software organization for scientific machine learning.


  • Scientific machine learning
  • Differentiable programming
  • Automatic differentiation
  • Neural ODEs/SDEs
  • Quantum optimal control
  • Parameter inference
  • ML for phase transitions
  • Quantum optics
  • Many-body physics
  • Multiple scattering theory


  • PhD in Physics under the supervision of Prof. Dr. Christoph Bruder, 2022

    Department of Physics, University of Basel

  • MSc in Physics under the supervision of Prof. Dr. Andreas Buchleitner, 2018

    Department of Physics, Albert-Ludwigs-Universität Freiburg

  • BSc in Physics under the supervision of PD Dr. Thomas Wellens, 2015

    Department of Physics, Albert-Ludwigs-Universität Freiburg


Neural Hybrid Differential Equations and Adjoint Sensitivity Analysis

Project summary In this project, we have implemented state-of-the-art sensitivity tools for chaotic dynamical systems, continuous adjoint sensitivity methods for hybrid differential equations, as well as a high level API for automatic differentiation.

AbstractDifferentiation.jl for AD-backend agnostic code

Differentiable programming (∂P), i.e., the ability to differentiate general computer program structures, has enabled the efficient combination of existing packages for scientific computation and machine learning1. The Julia2 language is well suited for ∂P, see also Chris' article3 for a detailed examination.

Sensitivity Analysis of Hybrid Differential Equations

In this post, we discuss sensitivity analysis of differential equations with state changes caused by events triggered at defined moments, for example reflections, bounces off a wall or other sudden forces.

Shadowing Methods for Forward and Adjoint Sensitivity Analysis of Chaotic Systems

In this post, we dig into sensitivity analysis of chaotic systems. Chaotic systems are dynamical, deterministic systems that are extremely sensitive to small changes in the initial state or the system parameters.

Neural Hybrid Differential Equations

I am delighted that I have been awarded my second GSoC stipend this year. I look forward to carrying out the ambitious project scope with my mentors Chris Rackauckas, Moritz Schauer, Yingbo Ma, and Mohamed Tarek.

Research projects

Control of (Stochastic) Quantum Dynamics with Differentiable Programming

Quantum control based on parametrized controllers trained with gradient information computed by (adjoint) sensitivity methods.

Machine Learning for Phase Transitions

Data-driven methods based on sample instances of the state of a physical system as a function of the system’s parameters.

Spectral Structure and Many-Body Dynamics of Ultracold Bosons in a Double Well

Study of the spectral structure and the resulting dynamics of a few bosons under consideration of different initial conditions.

Cooperative Scattering of Scalar Waves by Optimized Configurations of Point Scatterers

Numerical optimization of the positions of point scatterers to maximize the total scattering cross section for an incoming plane wave.

Open source software

AbstractDifferentiation.jl: Backend-Agnostic Differentiable Programming in Julia

Automatized generation of an extensive, unified, user-facing API for any AD package. Enables easy switching and composing between AD implementations. Joint work with Mohamed Tarek and other contributors.

SciML Scientific Machine Learning Software

Contributions to the SciML ecosystem in Julia, especially the DiffEqSensitivity.jl package for sensitivity analysis utilities, the StochasticDiffEq.jl package for stochastic differential equations solvers, and the DiffEqNoiseProcess package for tools to develop noise processes for differential equations.


Implementation of the backward filter and the forward change of measure of the Automatic Backward Filtering Forward Guiding paradigm. Joint work with Moritz Schauer.