Optical particle sensors (such as Complex Amplitude Sensing: CAS) require theoretical calculations of light scattering for physical interpretation of measurement data. These calculations aim to predict the amplitude and phase of scattered field at a specific detector configuration using input parameters (particle parameters: shape, complex refractive index, volume, mixing state; incident field parameters: frequency, medium refractive index, polarization state, beam shape). Exact scattering solutions exist only under limited conditions like spherical particles, necessitating numerically solving Maxwell’s equations for most practical applications. While various numerical methods1 and associated open-source/commercial software are available, cutting-edge research often requires custom software.

We have developed “Block-DDA”, a fast light scattering simulator applicable to essentially any types of particles (Photo 1). Block-DDA is an original implementation of the Discrete Dipole Approximation (DDA)2 method, capable of handling particles with arbitrary shapes, mixing states, and birefringence (polarization-dependent refractive indices in crystalline materials). Conventional DDA requires sequential calculation of scattering solutions for different particle’s orientations, demanding substantial computational time for many orientations. Block-DDA implements the block-Krylov subspace method3 for matrix calculations, enabling calculation of the solutions for hundreds of different orientations all at once. This advancement enables rapid prediction of CAS output (statistical distribution of complex scattering amplitude data) for randomly oriented particle populations.

Currently, we are developing methods to statistically estimate physical parameters (volume, complex refractive index, non-sphericity) from CAS data for various environmental particle types, combining light scattering simulators (Block-DDA, T-Matrix method) with machine learning approaches (computational Bayesian statistics)4, 5. Our laboratory primarily uses Python for simulation and data analysis.

Portion of Block-DDA Code

Photo 1. Portion of Block-DDA code written in Python (photographed January 5, 2025)

References

  1. Kahnert, M., Numerical solutions of the macroscopic Maxwell equations for scattering by non-spherical particles: a tutorial review, J. Quant. Spectrosc. Radiat. Transf., 178, 22–37, 2016. https://doi.org/10.1016/j.jqsrt.2015.10.029.

  2. Yurkin, M. A., and Hoekstra, A. G., The discrete dipole approximation: an overview and recent developments, J. Quant. Spectrosc. Radiat. Transf., 106(1–3), 558–589, 2007. https://doi.org/10.1016/j.jqsrt.2007.01.034.

  3. Tadano, H., and Kuramoto, R., Accuracy improvement of the Block BiCGSTAB method for linear systems with multiple right-hand sides by group-wise updating technique, J. Adv. Simul. Sci. Eng., 6(1), 100–117, 2019. https://doi.org/10.15748/jasse.6.100.

  4. Moteki, N., Capabilities and limitations of the single-particle extinction and scattering method for estimating the complex refractive index and size-distribution of spherical and non-spherical submicron particles, J. Quant. Spectrosc. Radiat. Transf., 243, 106811, 2020. https://doi.org/10.1016/j.jqsrt.2019.106811.

  5. Moteki, N., Ohata, S., Yoshida, A., and Adachi, K., Constraining the complex refractive index of black carbon particles using the complex forward-scattering amplitude, Aerosol Sci. Technol., 57(7), 678–699, 2023. https://doi.org/10.1080/02786826.2023.2202243.