A computer program for scattering of light from a sphere using Mie theory & the Debye series

MiePlot was originally designed to provide a simple interface (for PCs using Microsoft Windows) to the classic BHMIE algorithm for Mie scattering from a sphere - as published by Bohren and Huffmann in "Absorption and scattering of light by small particles" (ISBN 0-471-29340-7).

In addition to calculations of Mie scattering for single wavelengths, MiePlot offers calculations for scattering of sunlight - and simulations of atmospheric optical effects (such as rainbows, coronas and glories).  These simulations can be superimposed on digital images of actual optical effects - as shown elsewhere on this web site.  Click here to see some examples.

MiePlot also offers the option of calculations using the Debye series.  Although Mie theory provides an exact mathematical solution to the problem of scattering of electromagnetic waves from an homogeneous sphere, it does not provide any insight into the physical processes involved in scattering.  The Debye series is essentially a reformulation of Mie theory allowing the separation of contributions due to specific ray paths.

Fig. 1   Scattering of unpolarised light of 0.65 µm wavelength by a spherical water drop of radius 100 µm

Fig. 1 shows the results of Mie calculations which include all scattering processes, together with the contributions from specific ray paths calculated using the Debye series.  This graph demonstrates how the various scattering processes combine to produce the Mie solution.  For example, as is well known from geometrical optics, the primary rainbow is caused by rays that have suffered 1 internal reflection (p = 2 rays) and the secondary rainbow is caused by rays that have suffered 2 internal reflections (p = 3 rays).  Click here for further graphs of the Debye series generated by MiePlot.

Although Mie theory and the Debye series are rigorous, these calculations can be very time consuming.  For simulation of rainbows, Airy theory can provide equivalent results in a small fraction of the time.  Other calculation methods, such as ray tracing, are important from the perspective of the history of science - as well as offering insights into the process of scattering.  The latest version of MiePlot offers the following additional methods of modelling the scattering of light by a sphere:

This web site contains many graphs comparing the results given by various mathematical models.  Click here for further information.

MiePlot allows the user to select:

Polar diagram for r =10 µm
Fig. 2. Polar diagram of scattering of red light (wavelength 0.65 µm,
         perpendicular polarisation) from a water droplet of r = 10 µm

MiePlot also offers polar plots of scattered intensity versus scattering angle.  The example shown above in Fig. 2 uses a logarithmic scale for intensity (each division represents a 10:1 change in intensity).

Other new features include graphs of scattering cross-sections (Cext, Csca & Cabs) and scattering efficiencies (Qext, Qsca & Qabs) as functions of radius of the scattering sphere, size parameter or wavelength.  One example is shown above in Fig. 3, which is similar to Fig. 24 in H. C. van de Hulst's 1957 book "Light scattering by small particles".  The main difference is that, as van de Hulst noted, "not all minor wiggles are shown" on his version: this is understandable because he computed his results using a slide rule!

Many users have asked how to interpret the relative intensity scales used by MiePlot.  Although MiePlot follows the conventions used by most authors on the topic of scattering, MiePlot provides the option of a different intensity scale (Watts/sq. m.).  In this case, MiePlot calculates the scattered intensity at a specified distance (d measured in metres) from the scattering sphere for a specified intensity of the incident light (measured in Watts/sq. m.).  MiePlot also includes the option of plotting the "phase function" which has the important property that its integral over all scattering angles is 1.

Fig. 4  Statistical distributions of the radius of the scattering spheres

The Mie algorithm is applicable to scattering of light from a single sphere, but many users of MiePlot need to simulate scattering from many spheres, generally with slightly differing sizes (i.e. disperse).  Previous versions of MiePlot could simulate scattering from a population of spheres with Normal or log-Normal size distributions: in such cases, MiePlot approximates the required statistical distribution by making calculations at, say, 20 discrete values of radius - as indicated by the red lines in Figs. 4A & 4B above.  The latest version of MiePlot also permits the use of arbitrary size distributions, such as in histograms derived from experiments.  Fig. 4C approximates a Normal distribution using a histogram with "bins" of 1 µm width, whilst Fig. 4D approximates a log-Normal distribution using "bins" of unequal width.

MiePlot 3.3 contains several new features:

r1-Phase Plot

Fig. 5. Parametric curve showing amplitude and phase for scattering angles between 0° and 120°  for scattering of red light (wavelength 0.65 µm,  perpendicular polarisation) from a water droplet of r = 1 µm

New features in MiePlot 3.4

False colour map

Fig. 6. False-colour map showing the intensity of the glory (caused by Debye series p = 2 scattering) as a function of
refractive index
for scattering of red light (wavelength 0.65 µm) from a water droplet of radius r = 10 µm

New features in MiePlot 3.5

False colour map

Fig. 7.   Polar plot of scattering of Gaussian beam of light (wavelength 0.5145 µm) with beam coordinates x0 = 0, y0 = -40 µm, z0 = 0
and beam half-width w0 = 20 µm from a water droplet of radius r = 43.3 µm

New features in MiePlot 4.0 include:

Mueller Matrix

Fig. 8.   Scattering matrix showing variations of S11, S12/S11, S33/S11 and S34/S11
as a function of scattering angle for red light (650 nm) scattered by a spherical water droplet with radius r = 10 μm


Fig. 9.  Use of Fast Fourier Transform (FFT) calculations to display the frequency spectra of plots of scattered intensity over selected angular ranges

New features in MiePlot 4.1 include:

New features in MiePlot 4.2 include:

New features in MiePlot 4.3 include:

Many examples of MiePlot's graphical outputs and simulations of atmospheric optical effects are available elsewhere on this web site.

Download MiePlot v4.3

MiePlot4305.zip (file size: 1.05 MBytes = 1,085 kBytes = 1,110,530 bytes) contains MiePlot version 4.3, together with the associated Help and data files.

Download MiePlot4305.zip and extract the archived files into an appropriate directory on your computer (e.g. C:\Program Files\MiePlot). 

To run MiePlot, simply run MiePlot v4305.exe (e.g. by double clicking on this file using Windows Explorer).

Note that MiePlot was originally designed for displays with 1024 x 768 pixels.

Although the basic features work on 800 x 600 displays, 1024 x 768 displays will give much better results.

If you are still using a display with 640 x 480 pixels, MiePlot will not be usable at this resolution - sorry!

For displays using more than 1024 x 768 pixels, MiePlot adjusts the layout to fit the screen size and now adjusts the graph size if the window is resized. This feature has been tested on various displays up to 1600 x 1200 pixels. Please let me know if you experience any problems with this feature.

Users of Windows Vista or Windows 7 or 8 may find that the MiePlot's Help file is not available. If you have this problem, please visit the Microsoft web site at http://support.microsoft.com/kb/917607 and then follow the links to download the version of WinHlp32.exe required by your operating system.

Users of PCs configured in languages other than English may find that MiePlot fails to start correctly - giving an error message about "international" versions of Windows expecting "," (rather than ".") as the decimal symbol.  For example, MiePlot assumes that numbers will be entered in the form "1.25", not "1,25".  In fact, error-checking routines will automatically convert such entries into the form expected by MiePlot. 

To overcome this problem in Windows 2000, you should select "Settings" from the Start menu, followed by "Control Panel", "Regional options" and then under "Numbers" select "." as the "Decimal symbol". 

To overcome this problem in Windows XP, you should select "Settings" from the Start menu, followed by "Control Panel", "Regional and language options" and then select "." as the "Decimal symbol". 

To overcome this problem in Windows Vista, you should select "Settings" from the Start menu, followed by "Control Panel" and "Regional and language options". Under the "Formats" tab, you should select "Customize this format" and and then select "." as the "Decimal symbol". 

To overcome this problem in Windows 7, you should select "Control Panel" from the Start menu, followed by "Region and language". Under the "Formats" tab, you should select "Additional settings" and and then select "." as the "Decimal symbol".

To overcome this problem in Windows 8, you should select "Control Panel" from the Start menu, followed by "Clock, Language and region", then click on "Region and language options". Click the "Formats" tab and then, in the "Current format" list, select "." as the "Decimal symbol".

N.B. Missing Files
As MiePlot was written in Visual Basic, some additional files may need to be installed on your PC.

If you see an error message regarding MSVBVM60.DLL, you can install all of the Microsoft Visual Basic 6.0 run-time files by downloading and running VBRun60.exe.  This file is available from the Microsoft Knowledge Base web site.

A good source of information is http://www.snapfiles.com/help/missingfiles.html where you will find many direct links to the "missing files" plus helpful installation instructions.

Many modern PCs already include the required files, but please let me know if you have any problems installing or running MiePlot.

Legal mumbo jumbo!

The MiePlot computer program is available free of charge for non-commercial use. You may not sell it, but you can distribute it free of charge to others.  Please include the Help files.   However, this program is offered on the explicit understanding that no modifications may be made to it.  Although this program has been tested on Microsoft Windows 98, NT, 2000, XP, Vista, Windows 7 and Windows 8, no warranty is offered!

I would like to thank everybody who has made suggestions for improvements to MiePlot.  I hope that MiePlot v4 includes most of the requested facilities - but if you have any additional suggestions, please contact me.

If you wish to be notified when further versions of MiePlot become available, please send an e-mail headed "MiePlot notification" to Philip Laven.  Your e-mail address will not be revealed to third parties - and it will only be used to send you occasional information about MiePlot and major changes to this web site.

Please inform me if you find any bugs - or have any suggestions for improvements or additional features.   Any feedback will be welcomed.

Philip Laven

Page updated on 2 January 2014 
Previous page: Using MiePlot
Optics of a water drop: Mie scattering