Mie theory, also called Lorenz-Mie theory or Lorenz-Mie-Debye theory, is an analytical solution of Maxwell's equations for the scattering of electromagnetic radiation by spherical particles (also called Mie scattering) in terms of infinite series. The Mie solution is named after its developer, German physicist Gustav Mie. However, Danish physicist Ludvig Lorenz and others independently developed the theory of electromagnetic plane wave scattering by a dielectric sphere.
The term "Mie solution" is sometimes used more generically for any analytical solution in terms of infinite series, for example in case of concentric spheres, or cluster of spheres, or infinite cylinders. However, here we consider only homogeneous spheres.
Here is my interview with Warren Wiscombe which I posted on Arxiv
Interview with Warren Wiscombe on scientific programing and his contributions to atmospheric science tool making or get local copy)
Bohren and Huffman and relatedThis code was originally published in the Appendix of "Absorption and Scattering of Light by Small Particles" by Bohren, Craig F., Huffman, Donald R, 1983, Wiley, New York, 530 pages. It is one of the most used Mie code.
|bhmie f77||Bohren and Huffman||Mie||Fortran||This code is published in the appendix of Bohren, Craig F., and Donald R. Huffman. Absorption and scattering of light by small particles. John Wiley & Sons, 2008. The code is available here with slight extension; calculation of asymmetry parameter (by B. T. Draine of Princeton University)|
|bhmie C||Bohren and Huffman||Mie||C||Translation of Bohren and Huffman code|
|bhmie IDL||Bohren and Huffman||Mie||IDL||Translation by Piotr Flatau|
|bhmie Matlab||Bohren and Huffman||Mie||Matlab||Translation|
|Python version||Bohren and Huffman||Mie||Python||Herbert Kaiser (University of Konstanz, Germany)|
|MiePlot||Philip Laven||Mie||Visual Basic||Based on the BHMIE code, this Visual Basic interface offers an easy-to-use interface providing graphs of intensity v. scattering angle, wavelength, radius and refractive index, etc. Very nice. http://www.philiplaven.com/mieplot.htm|
Other Mie codes
|MIEV0||W. Wiscombe||Mie||Fortran||Warren Wiscombe is know to produce very good codes and MIEV0 is one more example. The code comes with extensive set of self-tests and extensive documentation. It is one of the best MIE code available. On the other hand there is some learning curve at first and BHMIE is, I think, working as well.|
|CAM||Wiscombe||Approximation||Fortran||For large size parameters! A package of routines to calculate the three Mie efficiency factors Q-ext, Q-abs and Q-pr (extinction, absorption, radiation pressure) using CAM approximations. These approximations are only useful (accurate to better than 10% or so) for size parameters above about 20 for Q-ext and above about 100 for Q-abs and Q-pr. Note that the Mie curves have a lot of ripple which makes comparisons at individual size parameters almost useless; you must plot the Mie and approximate curves for a short range of size parameter to see the overall accuracy of the approximations.|
|Barber and Hill codes||Mie||Barber and Hill||Fortran||S1.for (a) efficiencies (ext.,sca.,abs.) vs size parameter (b) intensity at a scattering angle vs size parameter (c) angular scattering over a plane; S2.for angular scattering in all directions ; S3.for scattering matrix calculations ; S4.for internal and external coefficients vs size parameter ; S5.for angle-averaged intensities, internal and near-field ; S6.for surface intensity - internal and external ; S7.for internal intensity distribution - 2D and 3D ; S8.for external intensity distribution - 2D and 3D|
Other codes (no source)
Gliwa - Turbo Pascal (THE LIGHT SCATTERING AND FAST MIE ALGORITHM, Pawel Gliwa)
Cachorno LVEC-Mie NEW IMPROVEMENTS FOR MIE SCATTERING CALCULATIONS, V. E. Cachorro