Codes for electromagnetic scattering by spheres - this article list codes for electromagnetic scattering by a homogeneous sphere, layered sphere, and cluster of spheres.

Solution techniques Majority of existing codes for calculation of electromagnetic scattering by a single sphere is based on Mie theory which is an analytical solution of Maxwell's equations in terms of infinite series. Other approximations to scattering by a single sphere include: Debye series, ray tracing (geometrical optics), ray tracing including the effects of interference between rays, Airy theory, Rayleigh scattering, diffraction approximation. There are many phenomena related to light scattering by spherical particles such as resonances, surface waves, plasmons, near-field scattering. Even though Mie theory offers convenient and fast way of solving light scattering problem by homogeneous spherical particles, there are other techniques, such as discrete dipole approximation, FDTD, T-matrix, which can also be used for such tasks. Bohren, Craig F. and Donald R. Huffman, Absorption and scattering of light by small particles, New York : Wiley, 1998, 530 p., , (second edition)

Classification The compilation contains information about the electromagnetic scattering by spherical particles, relevant links, and applications.

Codes for electromagnetic scattering by a single homogeneous sphere Year Name Authors References Language Short Description1983 BHMIE This code is maintained as part of scatterlib, and can be downloaded from http://scatterlib.wikidot.com/mie Craig F. Bohren and Donald R. Huffman Fortran IDLMatlab C Python "Mie solutions" (infinite series) to scattering, absorption and phase function of electromagnetic waves by a homogeneous sphere. 2002 MiePlot The MiePlot program can be downloaded from http://www.philiplaven.com/mieplot.htm Philip Laven Philip Laven, "Simulation of Rainbows, Coronas, and Glories by use of Mie Theory", Applied Optics Vol. 42, 3, 436-444 (January 2003) plus various other published papers (all available at http://www.philiplaven.com/Publications.html). Visual Basic MiePlot offers the following mathematical models for the scattering of light by a sphere: Mie solutions, Debye series, ray tracing (based on geometrical optics), ray tracing including the effects of interference between rays, Airy theory, Rayleigh scattering, diffraction, surface waves. In addition to single-wavelength calculations, MiePlot can also perform calculations for some wavelengths, thus approximating a continuous spectrum (such as sunlight) to produce simulations of atmospheric optical effects such as rainbows, coronas and glories. 2003 Mie_Single etc. Gareth Thomas and Don Grainger IDL The Sub-Department of Atmospheric Oceanic and Planetary Physics in the University of Oxford maintains an archive of Mie scattering routines for both single spheres and populations of particles in which sizes follow a log-normal distribution. The code is also available for calculating the analytical derivatives of Mie scattering (i.e. the derivative of the extinction and scattering coefficients, and the intensity functions with respect to size parameter and complex refractive index). The routines are written in IDL, but a Fortran-based DLM version (which substantially reduces runtime) of the single-sphere code is also available. 2026 miepython Scott Prahl Python Pure-Python implementation of Mie scattering by homogeneous spheres, including scattering, absorption and extinction efficiencies, angular scattering, Mie coefficients, and near-field electric and magnetic fields.

Codes for electromagnetic scattering by a layered sphere

Algorithmic literature includes several contributions

Year Name Authors Ref Language License Short Description1981 DMILAY Owen B. Toon and T. P. Ackerman Fortran No license specified but open source (public domain) Scattering by a stratified sphere (a particle with a spherical core surrounded by a spherical shell). Code dates from 1968 available here:1983 BHCOAT Craig F. Bohren and Donald R. Huffman Fortran No specified but open source (public domain via ) "Mie solutions" (infinite series) to scattering, absorption and phase function of electromagnetic waves by a homogeneous concentring shells. 1997 BART /http://www.ugr.es/~aquiran/ciencia/codigos/bart.f A. Quirantes A Quirantes and A V Delgado, The scattering of light by a suspension of coated spherical particles: effects of polydispersity on cross sections, J. Phys. D: Appl. Phys. 30 (1997) 2123–2131. Fortran Open source (own license) Based on the Aden–Kerker theory to calculate light-scattering properties for coated spherical particles 2004 MjcLscCoatSph M. Jonasz GUI/Windows Proprietary / closed source This program calculates the scattering, absorption, and attenuation parameters, as well as the angular scattering patterns of a single coated sphere according to Aden-Kerker theory.2007 L. Liu, H. Wang, B. Yu, Y. Xu, J. Shen C Unknown Light scattering by a coated sphere (extinction efficiency, scattering efficiency, light scattering intensity)2009-2022 Scattnlay O. Pena, U. Pal, K. LadutenkoO Pena and U Pal, Scattering of EM radiation by a multilayer sphere, Computer Physics Communications, 180, 2348-2354, 2009 C++, Python, and JavaScript GPLv3 Light scattering from a multilayered sphere based on the algorithm by W Yang.W Yang, Improved recursive algorithm for light scattering by a multilayered sphere, Applied Optics, Vol. 42, No. 9, 2003 Very robust and stable, slower than Toon and Ackerman. Evaluate integral parameters and angular patterns, near-field and power flow streamlines plotting. Has a compilation option to use Boost.Multiprecision for higher accuracy.

Web application is the part of package, available online on the website of Department of Physics and Engineering in ITMO University. 2023 PyMieSim Martin Poinsinet de Sivry-Houle, Nicolas Godbout, Caroline Boudoux Python / C++ MIT License Lorenz–Mie scattering simulations for homogeneous and two-layer spheres, including efficiencies, cross sections, angular scattering and detector coupling. 2026 PyMieDiff Oscar K. C. Jackson, Simone De Liberato, Otto L. Muskens, Peter R. Wiecha Python / PyTorch GPLv3 Differentiable Mie scattering toolkit for multilayer spherical particles. Supports scattering, absorption and extinction cross sections, angular scattering and near fields, with automatic differentiation, vectorized calculations and GPU acceleration.

Codes for electromagnetic scattering by cluster of spheres

Year Name Authors References Language Short Description1998-2003 GMM Yu-lin Xu and Bo A. S. Gustafson Yu-lin Xu, Bo A.S. Gustafson, A generalized multiparticle Mie-solution: further experimental verification, Journal of Quantitative Spectroscopy & Radiative Transfer 70 (2001) 395–419 Fortran Codes which calculate exactly electromagnetic scattering by an aggregate of spheres in a single orientation or at an average over individual orientations.2013 MSTM D. W. Mackowski Fortran Codes which calculate exactly electromagnetic scattering by an aggregate of spheres and spheres within spheres for complex materials. Works in parallel as well.2015 py_gmm G. Pellegrini Python + Fortran A Python + Fortran 90 implementation of the Generalized Multiparticle Mie method, especially suited for plasmonics and near field computation.2017 CELES A. Egel, L. Pattelli and G. Mazzamuto MATLAB + CUDA Running on NVIDIA GPUs, with high performance for many spheres.2020 QPMS M. Nečada C, Python Many-particle simulations in homogeneous media, supports various particle shapes in finite as well as infinite periodic configurations.2021 SMUTHI A. Egel et al. Amos Egel, Krzysztof M. Czajkowski, Dominik Theobald, Konstantin Ladutenko, Alexey S. Kuznetsov, Lorenzo Pattelli, SMUTHI: A python package for the simulation of light scattering by multiple particles near or between planar interfaces, Journal of Quantitative Spectroscopy and Radiative Transfer, Volume 273, p. 107846 (2021) DOI Python + Fortran + CUDA Many spheres in stratified media, other particle shapes are available. 2024 treams Dominik Beutel, Ivan Fernandez-Corbaton, Carsten Rockstuhl Python, Cython T-matrix multiple-scattering calculations for finite clusters of spheres, multilayered spheres, and other particles; periodic arrangements are also supported.

Relevant scattering codes Discrete dipole approximation codes Codes for electromagnetic scattering by cylinders

See also Computational electromagnetics Light scattering by particles List of atmospheric radiative transfer codes Optical properties of water and ice Mie theory

References

External links SCATTERLIB: Collection of light scattering codes