Computes Mie scattering and extinction efficiencies; asymmetry factor; forward- and backscatter amplitude; scattering amplitudes vs. scattering angle for incident polarization parallel and perpendicular to the plane of scattering; coefficients in the Legendre polynomial expansions of either the unpolarized phase function or the polarized phase matrix; some quantities needed in polarized radiative transfer; and information about whether or not a resonance has been hit. This MATLAB code is a transcription of the original FORTRAN code by Wiscombe (see references). Where possible, vectorization has been implemented. MOST input and internal variables and names have been preserved. NOTE : S1, S2, SFORW, SBACK, TFORW, AND TBACK are calculated internally for negative imaginary refractive index; for positive imaginary index, their complex conjugates are taken before they are returned, to correspond to customary usage in some parts of physics (in particular, in papers on cam approximations to Mie theory).

XX [scalar] 
Mie size parameter (2 * pi * radius / wavelength) 
CREFIN [scalar] 
Complex refractive index (imag part can be + or -, but internally a negative imaginary index is assumed). If imag part is - , scattering amplitudes as in Van de Hulst are returned; if imag part is + , complex conjugates of those scattering amplitudes are returned (the latter is the convention in physics). ** % NOTE ** In the 'PERFECT' case, scattering amplitudes in the Van de Hulst convention will automatically be returned unless Im(CREFIN) is positive; otherwise, CREFIN plays no role. 
PERFCT [scalar] 
(Optional) If TRUE, assume refractive index is infinite and use special case formulas for Mie coefficients 'a' and 'b' (see Kerker, M., The Scattering of Light and Other Electromagnetic Radiation, p. 90). This is sometimes called the 'totally reflecting', sometimes the 'perfectly conducting' case. (See CREFIN for additional information). Default is FALSE. 
ANYANG [scalar] 
(Optional) If TRUE, any angles whatsoever may be input through XMU. If FALSE, the angles are monotone increasing and mirror symmetric about 90 degrees (this option is advantageous because the scattering amplitudes S1,S2 for the angles between 90 and 180 degrees are evaluable from symmetry relations, and hence are obtained with little added computational cost.) Default is TRUE. 
XMU [vector/scalar] 
If ANYANG is TRUE, cosines of angles at which S1,S2 are to be evaluated. If ANYANG is FALSE, then XMU can be the number of angles to use between 0 and 180 degrees inclusive (set to zero to skip computation of S1 and S2) or the angles at which to compute but must be mirror symmetric about 90 degrees. If ANYANG is false and XMU<=1, XMU will be interpreted as the angle cosine, ANYANG will be reset to true and S1 and S2 will be computed at the single angle acos(XMU). 
MIMCUT [scalar] 
(Optional) Positive value below which imaginary refractive index is regarded as zero (computation proceeds faster for 0 imaginary index). Default is 0. 
NMOM [scalar] 
Highest Legendre moment PMOM to calculate, numbering from zero (NMOM=0 prevents calculation of PMOM) 
IPOLZN [scalar] 
Specifies which Legendre moments to compute. If POSITIVE, compute the Legendre moments PMOM for the Mueller matrix elements determined by the digits of IPOLZN, with 1 referring to M1, 2 to M2, 3 to S21, and 4 to D21. E.g., if IPOLZN=14 then only moments for M1 and D21 will be returned, if IPOLZN=1234 all four moments will be returned. If 0, compute Legendre moments PMOM for the unpolarized unnormalized phase function. If NEGATIVE, compute Legendre moments PMOM for the Sekera phase quantities determined by the digits of ABS(IPOLZN), with 1 referring to R1, 2 to R2, 3 to R3, and 4 to R4. E.g., if IPOLZN=-14 then only moments for R1 and R4 will be returned, if IPOLZN=-1234 all four moments will be returned. 
Return Values
Return Values 
QEXT [scalar] 
Extinction efficiency factor 
QSCA [scalar] 
Scattering efficiency factor 
GQSC [scalar] 
Asymmetry factor times scattering efficiency (allows calculation of radiation pressure efficiency factor QPR=QEXT - GQSC) 
SFORW [scalar] 
Complex forward-scattering amplitude S1 at 0 degrees, S2(0)=S1(0) 
SBACK [scalar] 
Complex backscattering amplitude S1 at 180 degrees, S2(180)=-S1(180) 
S1 [vector] 
Complex Mie scattering amplitude for s-pol (perpendicular to the scattering plane) at angles specified. 
S2 [vector] 
Complex Mie scattering amplitude for p-pol (parallel to the scattering plane) at angles specified. 
TFORW [vector] 
Complex values of: TFORW(1)=(S2 - (MU)*S1) / (1 - MU^2) and TFORW(2)=(S1 - (MU)*S2) / (1 - MU^2) at angle theta=0 (MU=COS(theta)=1), where the expressions on the right-hand side are indeterminate. (These quantities are required for doing polarized radiative transfer.) 
TBACK [vector] 
Complex values of: TBACK(1)=(S2 - (MU)*S1) / (1 - MU^2) and TBACK(2)=(S1 - (MU)*S2) / (1 - MU^2) at angle theta=180 (MU=COS(theta)=-1) 
PMOM [matrix] 
Moments M=0 to NMOM of unnormalized NP-th phase quantity PQ moments with M>2*NTRM are zero, where NTRM=number of terms in Mie series. 
SPIKE [scalar] 
Magnitude of the smallest denominator of either Mie coefficient (a-sub-n or b-sub-n), taken over all terms in the Mie series past N=size parameter XX. Values of SPIKE below about 0.3 signify a ripple spike, since these spikes are produced by abnormally small denominators in the Mie coefficients (normal denominators are of order unity or higher). Defaults to 1.0 when not on a spike. Does not identify all resonances. 

  • Wiscombe, W., 1979: Mie Scattering Calculations--Advances in Technique And Fast, Vector-Speed Computer Codes, Ncar Tech Note TN-140+STR, National Center For Atmospheric Research, Boulder, Colorado
  • Wiscombe, W., 1980: Improved Mie Scattering Algorithms, Appl. Opt. 19, 1505-1509
  • Van De Hulst, 1957, 1982: Light Scattering by Small Particles, Dover Press, New York.

See Also
Made with Doc-O-Matic.
Copyright (c) 2009. All rights reserved.
What do you think about this topic? Send feedback!