Juliacon 2024

Simulating nano-particle trajectories using CMInject.jl
2024-07-10 , For Loop (3.2)

CMInject.jl is a numerical simulation framework that simulates nano-particle trajectories through aerosol injectors and their expansion into a vacuum chamber, e.g., single particle diffractive imaging (SPI) experiments. The background gas flow around the particles is simulated using computational fluid dynamics tools and the particles are tracked using a Lagrangian based tool built with Julia. This simulation tool is used to evaluate performance of various aerosol injector designs.


Single-particle diffractive imaging (SPI) is a technique employed to capture the atomic-scale structures and dynamics of (bio-) nano-particles. The complete three-dimensional structure of a nano-particle is reconstructed through a series of two-dimensional diffraction patterns from randomly oriented particles. In SPI experiments, an aerosol injection system is utilized to transfer particles into the gas phase, capturing a collimated particle stream in a vacuum. The design of these injection systems must be continuously optimized to obtain very high density particle streams with less background gas in order to increase X-ray interactions with the particles for generating high-quality diffraction patterns. However, this requires investigating a large parameter space such as operating pressures, geometrical shapes of the injector, size of the particle etc., making experimental characterization and optimization impractical. A numerical framework capable of simulating the flow of the carrier gas in the injection system and the particle trajectories is set up. The fluid flow inside aerosol injector and the vacuum chamber is simulated using a multiscale computational fluid dynamics approach (e.g., OpenFoam/SPARTA-DSMC). Subsequently, the particle trajectories are computed using the forces (e.g., Stokes drag) obtained from interpolated velocity fields along with the Brownian motion of the particles. This framework provides a quick and efficient way to search the experimental parameter space for optimization and also to further understand the physical phenomena (e.g., flow and particle interaction) inside the injection systems.

The particle trajectory calculator in this framework was initially programmed and benchmarked in Python. In order to improve the computational performance, it is currently being converted to Julia. Furthermore, the ease of using Julia and the code alignment with the mathematical notations enhances clarity in understanding of the code for potential future contributors. In this presentation, we present the initial bechmarking results of the simulation tool, validate it based on experimental data and evaluate the computational performance by comparing with the former Python version.

Research fellow at Deutsches Elektronen-Synchrotron DESY, Hamburg, Germany and Helmut-Schmidt-Universität / University of Federal Armed Forces, Hamburg, Germany

Surya's research focuses on developing advanced simulation methodologies to resolve fluid flows having wide range of flow states (e.g., continuum and free molecular flows) and its interaction with nano particles. This involves bundling different multiscale and multiphysics simulation methodologies supported by high-performance computing and data science methods