2026-08-14 –, Room 4
Coulomb Explosion Imaging is a booming method to image small molecules. Its principle is relatively straightforward: remove as many electrons as possible as fast as possible from a molecule to induce its explosion into atomic fragments.
Simulating this process is crucial to interpret the experimental data. In this talk I will briefly describe the concept of an x-ray induced Coulomb explosion, introduce a semi-classical model to simulate it and present how I implemented it.
One of the dreams of the molecular imaging community is to watch a chemical reaction while it is happening. To this end, various methods have been developed, trying to reach enough resolution in space and time to resolve molecular dynamics.
One such promising method is x-ray-induced Coulomb explosion imaging. Short x-ray pulses are used to remove many electrons from a single molecule, resulting in its ultrafast fragmentation into the composing atoms. The velocities of the fragments are then measured in coincidence, providing a probe of the molecule.
The interpretation of the post-explosion velocity data relies on simulations, to map features of the measured data to features of the molecule before its destruction. Therefore, simulations play a crucial role in this method and are expected to continue doing so as more advanced analysis techniques are being developed, including supervised deep learning of the molecular structure to reconstruct it from the experimental data.
I implemented a semi-classical model for such simulation in Julia, building it on top of the DifferentialEquations.jl ecosystem. I will present the model and key properties of its Julia implementation, including
- Coupling of continuous (positions and velocities) and discrete (electronic states) degrees of freedom of the atoms through JumpProcesses.jl
- Flexible inputs and callbacks
- Easy to update code, thanks to its short length (especially compared to the reference C implementation)
While introducing the physics is necessary for context, the talk will focus as much as possible on the Julia implementation, also mentioning the challenges encountered, the benefits of relying on a mature ecosystem, and the possible future use for the code developed.
Doctor in theoretical physics, working mostly in simulation and data analysis with experimentalists blowing up tiny things in large facilities.
Worked on IntervalArithmetic.jl for my master thesis and stuck around.
Made the questionable life choice of writing a LaTeX engine in julia.
First julia version used: v0.4