|
SCATTERLIB
|
SCATTERLIB is a collection of light scattering codes. Emphasis is on access to source codes. Possible applications include: atmospheric and oceanic radiative transfer, ocean color, flow cytometry, particle sizing, paints, light scattering by non-spherical and spherical particles, radar backscatter. This library is dated now.
Last corrections: November 2005
| Name | Author | Type | Description |
| Bohren and Huffman | Mie | This code is published in the appendix of Bohren and Huffman light scattering book and is probably one of the most heavily used Mie codes. Well documented and highly recommended. The code is available here with slight extension - calculation of asymmetry paremeter (B.T. Draine). The original FORTRAN implementation is available as well as translation to C and IDL (P. J. Flatau). ("zip" and "tar" files contain the same codes). I am not sure if the translations to C and IDL are working well. For MATLAB users - probably the best way is to use MEX interface to BHMIE. Here are 2 links which can be useful for Matlab users http://www.igf.fuw.edu.pl/meteo/stacja/kody/mie.m Visual Basic translation of BHMIE was written by P. Laven for use in MiePlot. I you have other versions of BHMIE - let me know! |
|
| MIEV0 | Wiscombe | Mie | 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. |
| MiePlot | Philip Laven | Interface to Bohren and Huffman code with extensions | 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, and other options. But recently Laven incuded some modification to calculate Mie coefficient for complex cases.
|
| CAM | Wiscombe | Approximation | 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. | Barber and Hill | Mie |
|
Here is a collection of light scattering codes for spheres and concentric spheres.
| Name | Author | Type | Description |
| BHCOAT | Bohren and Huffman | coated sphere | Well documented and easy to use. This code is published in the appendix of Bohren and Huffman light scattering book. |
| DMlLAY | Toon and Ackerman | coated sphere | This subroutine computes electromagnetic scattering by a stratified sphere (a particle with a spherical core surrounded by a spherical shell. Applied Optics, 20, 3657, 1981 |
| IFCS LSCCS | Thomas Kaiser | coated sphere | compute the internal field inside a coated sphere and the scattered field of a sphere with 0, 1 or 2 coatings. Reference: T. Kaiser and G. Schweiger: Stable algorithm for the computation of Mie coefficients for scattered and transmitted fields of a coated sphere. Comput. Phys. 1993, vol. 7(6), 682-686. |
| Name | Author | Type | Description |
| GMM |
Xu | multisphere |
|
| Mackowski | Mackowski | multiplesphere | Codes for calculation of the scattering matrix and cross sections of neighboring, non-intersecting spheres. Dan Mackowski's papers on multisphere are one of the most comprehensive. |
Here is a collection of light scattering codes on spheroids. It is possible to attack the problem using separation of variables ("Mie"-type analysis), or using other techniques such as T-matrix - for homogeneous or "concentric" distribution of refractive index; or volume methods such as discrete dipole approximation (for medium size parameters).
I think this section is getting obolete. There may be more codes available but I did not follow last several years development (2005). Home page of Thomas Wriedt may have more information.
Here is a collection of light scattering codes for the case of infinite cylinder.
| Name | Author | Type | Description |
| BHCYL | Bohren and Huffman | cylinder | Well documented and easy to use. This code is published in the appendix of Bohren and Huffman light scattering book. |
| Mackowski | Mackowski | cylinder, oblique incidence | Dan Mackowski, Auburn University. Advantage is that his codes calculate efficiencies for slant incidence. |
| Barber and Hill | Barber and Hill | coated sphere | Seven computer programs from the text, Light Scattering by Particles: Computational Methods by P.W. Barber and S.C. Hill, may be used to calculate the light scattered by a cylinder when a plane wave is incident perpendicular to the cylinder axis. |
Here is a collection of scattering codes for slabs.
In the discrete dipole approximation the target is replaced by an array of point dipoles; the electromagnetic scattering problem for the array of point dipoles is then solved essentially exactly. This method is also called method of momets, coupled dipole approximation, digitized Green's function. These codes work for 3D problems up to size parameter x=10-20 (x=2pi r/lambda). The method compares well with scattering efficiencies for spheres (with Mie solution). Review paper by Draine and Flatau (Applied Optics, 1994) is related to DDSCA (see also references to this paper (on "google scholar" of "web of science"). There are also some important new developments in the last 5 years (2000-2005): (a) work by Mackowski to derive analytical orientational averaging using T-matrix approach in DDA approximation; (b) calculation of periodic structures (i.e. of inifinite extend) using variant of DDA; (c) extensions to calculate particles placed on surfaces.
| Name | Author | Type | Description |
| ADDA | Maxim A. Yurkin and Alfons G. Hoekstra | DDA | Amsterdam DDA (ADDA) code. ADDA simulates elastic light scattering from finite 3D objects of arbitrary shape and composition in vacuum or non-absorbing homogenous media. ADDA allows execution on a multiprocessor system, using MPI (Message Passing Interface), parallelizing a single DDA calculation. |
| DDSCAT | Draine and Flatau | DDA | DDSCAT is a FORTRAN program to calculate scattering and absorption of electromagnetic radiation by arbitrary targets. Current version has MPI interface. The method works well for medium size parameter. FFT method is employed. The DDSCAT code is available from ftp://astrp.princeton.edu/draine/scat/ddscat |
| Mackowski | Mackowski | DDA and T-matrix | DDA merged with T-matrix |
| MarCodes | Markel | DDA | Markel's Coupled Dipole Equation Solvers) solve light scattering by an arbitrary cluster of point dipoles (monomers) using the conjugate gradient method (iterative) and the LU expension method (direct method). |
Here is a collection of "T-matrix" scattering codes.
The codes of Mackowski and Mishchenko are popular these days (circa 2005). See Mishchenko's home page. Also look at home page of Thomas Wriedt.
Anomalous diffraction approximation, van de Hulst approximation,
eikonal approximation, high energy approximation, soft particle
approximation.
Anomalous diffraction approximation (ADT) offers very approximate but computationally fast technique to calculate extinction, scattering, and absorption efficiencies. It agrees well with the "Mie" (modal) calculations for spheres, cylinders, spheroids, and coated spheres. Absolute value of refractive index has to be close to 1, and size parameter should be large. However, semi-empirical extensions to small size parameter, and larger refractive index are possible. It is NOT possible to calculate full range of phase function or asymmetry parameter - g in this approximation. The main advantage of the ADT is that one can (a) Calculate, in closed form, extinction, scattering, and absorption efficiencies for many typical size distributions; (b) Find solution to the inverse problem of predicting size distribution from light scattering experiments (several wavelengths); (c) For parameterization purposes of single scattering (inherent) optical properties in radiative transfer codes. One older review is Mahood, Robert W. "The application of vector diffraction to the scalar anomalous diffraction approximation of van de Hulst", 1987, Thesis (M.S.)--Pennsylvania State University. In recent years (circa 2005) more ADT papers were published, particlly because the calculations are very simple. But, more importantly there are now papers which compare ADT with exact methods for non-spherical particles - inevitable development, considering that ADT is very approximate.
Probably the best site which is direct competitor to this one (and much more comprehensive I may add)
A list of electromagnetic scattering programmes supported by Thomas Wriedt
Other sites (but there must be many more now)
Conjugate gradient methods. This technique to solve linear system of complex equations is often employed together with the discrete dipole approximation or method of moments. When coupled with FFT to solve the convolution problem it is called CG-FFT. In the DDSCAT code we use excellent package by Rudnei Dias da Cunha and Tim Hopkins.
pflatau@ucsd.edu