Mie theory: light scattered by a sphere

Learn · Spheres · Mie theory

A sphere of radius aa and refractive index nsn_s sits in a host of index nhn_h, lit by a plane wave of vacuum wavelength λ\lambda. Two numbers decide everything that follows: the size parameter and the relative index,

x=2πnhaλ,m=nsnh.x = \frac{2\pi n_h a}{\lambda}, \qquad m = \frac{n_s}{n_h}.

Gustav Mie solved this problem exactly in 1908, to explain why colloidal gold is red, violet or blue depending on the size of its particles (Lorenz had the solution in 1890 and Debye in 1909, which is why the theory carries three names in the older literature). The same solution describes a raindrop, a silicon nanoparticle and a biological cell under an infrared microscope, and it is the single-interface case of the multilayered sphere that PyStratify solves in general.

The plane wave as a sum of multipoles

In spherical coordinates the vector wave equation separates (the Foundations table). The fields inside and outside the sphere become sums of vector spherical harmonics, each labelled by an angular order ℓ=1,2,…\ell = 1, 2, \dots (dipole, quadrupole, …) and by its character: electric (transverse magnetic, TM) or magnetic (transverse electric, TE). The first step, and the one that makes the whole method work, is to write the incident plane wave in the same language. A plane wave polarized along xx and travelling along zz is (Bohren and Huffman Eq. 4.37)

Einc=E0∑ℓ=1∞iℓ 2ℓ+1ℓ(ℓ+1)(Mo1ℓ(1)−i Ne1ℓ(1)),\mathbf{E}_\mathrm{inc} = E_0\sum_{\ell=1}^{\infty} i^\ell\,\frac{2\ell+1}{\ell(\ell+1)}\left(\mathbf{M}^{(1)}_{o1\ell} - i\,\mathbf{N}^{(1)}_{e1\ell}\right),

a sum over orders of the regular (jℓj_\ell-based) magnetic and electric multipoles with m=1m = 1 only, with the coefficients Eℓ=iℓE0(2ℓ+1)/[ℓ(ℓ+1)]E_\ell = i^\ell E_0 (2\ell+1)/[\ell(\ell+1)]. Only ∣m∣=1|m| = 1 appears because a plane wave has one axis; a dipole source off the centre excites every mm. The radial dependence of every term obeys the spherical Bessel equation, a second-order linear equation, so in each region it is a combination of two independent solutions. We use the Riccati–Bessel functions

ψℓ(ρ)=ρ jℓ(ρ),ξℓ(ρ)=ρ hℓ(1)(ρ),\psi_\ell(\rho) = \rho\, j_\ell(\rho), \qquad \xi_\ell(\rho) = \rho\, h^{(1)}_\ell(\rho),

regular at the centre and outgoing at infinity respectively: inside the sphere only ψℓ\psi_\ell is allowed, outside the scattered field is pure ξℓ\xi_\ell, and the incident field is ψℓ\psi_\ell.

Two boundary conditions per order

At r=ar = a the tangential components of E\mathbf{E} and H\mathbf{H} are continuous. Because the harmonics are orthogonal on the sphere, the conditions hold order by order and character by character: for each ℓ\ell and each of TM and TE this gives two linear equations in two unknowns (the internal amplitude and the scattered one), the same 2×22\times 2 structure as a single interface of a thin film. Solving them gives the scattering coefficients of a non-magnetic sphere (time dependence e−iωte^{-i\omega t}):

aℓ=m ψℓ(mx) ψℓ′(x)−ψℓ(x) ψℓ′(mx)m ψℓ(mx) ξℓ′(x)−ξℓ(x) ψℓ′(mx),bℓ=ψℓ(mx) ψℓ′(x)−m ψℓ(x) ψℓ′(mx)ψℓ(mx) ξℓ′(x)−m ξℓ(x) ψℓ′(mx).a_\ell = \frac{m\,\psi_\ell(mx)\,\psi_\ell'(x) - \psi_\ell(x)\,\psi_\ell'(mx)}{m\,\psi_\ell(mx)\,\xi_\ell'(x) - \xi_\ell(x)\,\psi_\ell'(mx)}, \qquad b_\ell = \frac{\psi_\ell(mx)\,\psi_\ell'(x) - m\,\psi_\ell(x)\,\psi_\ell'(mx)}{\psi_\ell(mx)\,\xi_\ell'(x) - m\,\xi_\ell(x)\,\psi_\ell'(mx)}.

aℓa_\ell is the electric multipole of order ℓ\ell, bℓb_\ell the magnetic one, and the two differ only in where the relative index mm sits, exactly as rsr_s and rpr_p of a film differ in where nn sits. For a magnetic sphere (μ≠1\mu \ne 1) mm in the numerators and denominators is replaced by m/μm/\mu or mμm\mu in the appropriate places (Kerker's book), which is how a sphere with ε=μ\varepsilon = \mu comes to have aℓ=bℓa_\ell = b_\ell, the origin of the Kerker conditions of the next section. The resonances of the sphere live in the denominators: where one nearly vanishes, its coefficient peaks and the sphere radiates strongly in that multipole. Add shells and each interface contributes one more 2×22\times 2 matrix; that is the transfer-matrix solution of the multilayered sphere, and what PyStratify computes for any number of layers.

Efficiencies and the far field

Dividing the cross sections by the geometric area πa2\pi a^2 gives the efficiencies:

Qsca=2x2∑ℓ=1∞(2ℓ+1)(∣aℓ∣2+∣bℓ∣2),Qext=2x2∑ℓ=1∞(2ℓ+1) Re (aℓ+bℓ),Q_\mathrm{sca} = \frac{2}{x^2}\sum_{\ell=1}^{\infty}(2\ell+1)\left(|a_\ell|^2 + |b_\ell|^2\right), \qquad Q_\mathrm{ext} = \frac{2}{x^2}\sum_{\ell=1}^{\infty}(2\ell+1)\,\mathrm{Re}\,(a_\ell + b_\ell),

and Qabs=Qext−QscaQ_\mathrm{abs} = Q_\mathrm{ext} - Q_\mathrm{sca}. Each term of the sums is the share of one multipole, which is how the calculator splits a spectrum into its electric and magnetic orders. The extinction formula is the optical theorem in disguise: QextQ_\mathrm{ext} is the forward-scattering amplitude's imaginary part, so the light removed from the beam is measured by what is scattered exactly forward, whether the sphere absorbs or not. The angular distribution comes from the two amplitude functions

S1(θ)=∑ℓ2ℓ+1ℓ(ℓ+1)(aℓ πℓ+bℓ τℓ),S2(θ)=∑ℓ2ℓ+1ℓ(ℓ+1)(aℓ τℓ+bℓ πℓ),S_1(\theta) = \sum_\ell \frac{2\ell+1}{\ell(\ell+1)}\left(a_\ell\,\pi_\ell + b_\ell\,\tau_\ell\right), \qquad S_2(\theta) = \sum_\ell \frac{2\ell+1}{\ell(\ell+1)}\left(a_\ell\,\tau_\ell + b_\ell\,\pi_\ell\right),

with πℓ=Pℓ1/sin⁡θ\pi_\ell = P_\ell^1/\sin\theta and τℓ=dPℓ1/dθ\tau_\ell = \mathrm{d}P_\ell^1/\mathrm{d}\theta the angular functions; the scattered intensity for light polarized perpendicular and parallel to the scattering plane is ∣S1∣2|S_1|^2 and ∣S2∣2|S_2|^2 over (ka)2(ka)^2, and the polarization, the asymmetry parameter ⟨cos⁡θ⟩\langle\cos\theta\rangle and the Mueller matrix all follow from them. Checks of the engine's S1S_1, S2S_2 against Bohren and Huffman's own BHMIE and against two other Mie codes are on the Verification page.

A silicon sphere

Silicon has an index near 4 across the visible. Inside so dense a particle the wavelength shrinks to λ/ns\lambda/n_s, and when it becomes comparable to the diameter the field inside circulates: a loop of displacement current, the magnetic dipole b1b_1. It is the lowest resonance of a high-index sphere, longer in wavelength than the electric dipole a1a_1 that follows it, and it gives such particles their colours (Kuznetsov et al., 2012).

A silicon sphere under a plane wave Extinction and scattering efficiencies of a silicon sphere in free space, with the magnetic-dipole (b₁) part of the scattering. Change the radius: every resonance moves to longer wavelengths, the magnetic dipole first.
450500550600650700750800024681012λ [nm]Q
Qext Qsca Qsca, magnetic dipole b1
Hover to read values.
Computed by PyStratify 0.10.5; every slider position (18 setups) computed in advance
Code
import numpy as np
import pystratify as ps
from pystratify.docs import material  # n + ik of a refractiveindex.info page

lam = (430 + 2 * np.arange(186)) * 1e-3  # wavelength, µm
N = np.column_stack([material('crosscheck/classics/data/Si_Green-2008.yml', lam), np.full(lam.shape, (1+0j))])  # n + ik: core, then the host
cs = ps.cross_sections(ps.solve([0.075], N, lam))  # outer radii, µm
q_ext, q_sca = cs.q_ext, cs.q_sca
b1 = cs.sca_by_order[:, ps.TE, 0] / cs.geometric  # magnetic dipole part of Q_sca
  • agrees magnetic-dipole peak, radius 75 nm (nm): 610 against 607 ± 15 (Kuznetsov et al., Sci. Rep. 2, 492 (2012), Fig. 3c(iv), read)

Move the radius from 50 to 135 nm and the magnetic dipole walks across the visible spectrum; the electric dipole and then the magnetic quadrupole follow it at shorter wavelengths.

Where the series stops

The sums converge once ℓ\ell exceeds the size parameter by a few terms: a partial wave of order ℓ\ell has its angular momentum at an impact parameter ℓ/k\ell/k, and orders with ℓ/k≫a\ell/k \gg a miss the sphere. Wiscombe's rule

ℓmax=x+4x1/3+2\ell_\mathrm{max} = x + 4x^{1/3} + 2

is accurate for far-field quantities to about 10−810^{-8}; the x1/3x^{1/3} term is the width of the edge region where grazing partial waves are diffracted. For a high-index core the internal size parameter ∣m∣x|m|x matters as well, so PyStratify, and the calculator through it, take the larger of the two; a field evaluated at the surface, or a dipole close to it, needs more still, and the engine extends the order until the quantity converges.

The numerics every Mie code lives by

Mie's formulas are exact and innocent-looking, and most of the published Mie codes that give wrong answers fail in the Riccati–Bessel functions, not in the physics. Three facts matter. ψℓ(z)\psi_\ell(z) computed by upward recurrence in ℓ\ell is unstable for ℓ>∣z∣\ell > |z| (the errors grow like the ratio of the two solutions, which is huge there), so the standard trick since Deirmendjian is to compute the logarithmic derivative Dℓ(mx)=ψℓ′(mx)/ψℓ(mx)D_\ell(mx) = \psi_\ell'(mx)/\psi_\ell(mx) by downward recurrence from a starting order well above ℓmax\ell_\mathrm{max}, or by Lentz's continued fraction (1976), and to write aℓa_\ell and bℓb_\ell in terms of DℓD_\ell alone; this is BHMIE's algorithm. For complex mxmx the function ψℓ(mx)\psi_\ell(mx) itself grows like e∣Im mx∣e^{|\mathrm{Im}\,mx|}, and the coefficients are ratios of numbers that overflow long before the sums converge, which is where a logarithmic representation of the amplitudes, carried through the transfer-matrix recursion (Moroz 2005), keeps a metal sphere or a thin absorbing shell safe at any order. And for ℓ≫x\ell \gg x the coefficients fall like (x/ℓ)4ℓ(x/\ell)^{4\ell}, so a sum that is stopped early is wrong by the first dropped term, not by a rounding error; a coefficient of 10−30010^{-300} must be representable, or set to exactly zero, never to garbage. The Verification page compares the engine's coefficients with the same formulas evaluated in 60-digit arithmetic over forty orders of a thin nanoshell, and with BHMIE to x=20 000x = 20\,000; one of those comparisons found BHMIE's own double-precision recurrence drifting at large xx for a weakly absorbing sphere.

Two limits worth knowing

For a sphere much smaller than the wavelength (x≪1x \ll 1) only a1a_1 survives, with a1≈−2i3x3 m2−1m2+2a_1 \approx -\tfrac{2i}{3}x^3\,\frac{m^2-1}{m^2+2}, and

Qsca≈83 x4∣m2−1m2+2∣2,Qabs≈4x Im m2−1m2+2,Q_\mathrm{sca} \approx \frac{8}{3}\,x^4 \left|\frac{m^2 - 1}{m^2 + 2}\right|^2, \qquad Q_\mathrm{abs} \approx 4x\,\mathrm{Im}\,\frac{m^2 - 1}{m^2 + 2} ,

Rayleigh's λ−4\lambda^{-4} law for scattering, and an absorption that goes as the volume, so that small absorbing particles absorb far more than they scatter. For a metal the denominator vanishes near εs=−2εh\varepsilon_s = -2\varepsilon_h: that is the localized surface plasmon of a small gold or silver particle, at 520 nm for gold in water, the colour of the ruby glass that started Mie on the problem. For a sphere much larger than the wavelength, Qext→2Q_\mathrm{ext} \to 2: the sphere removes twice the light that falls on its cross section, half by absorption or reflection and half by diffraction around its edge, the extinction paradox, resolved by noting that the diffracted half is scattered into so narrow a forward cone that any real detector collects it and measures Q≈1Q \approx 1. Between the two limits a weakly refracting sphere (m→1m \to 1, x≫1x \gg 1) follows van de Hulst's anomalous-diffraction approximation, Qext≈2−4ρsin⁡ρ+4ρ2(1−cos⁡ρ)Q_\mathrm{ext} \approx 2 - \frac{4}{\rho}\sin\rho + \frac{4}{\rho^2}(1 - \cos\rho) with the phase lag ρ=2x(m−1)\rho = 2x(m-1): a slow oscillation in wavelength, with its first maximum near ρ=4\rho = 4, that a cell or a nucleus of a few micrometres imprints on its infrared spectrum, and which is routinely mistaken for a baseline.

References

  1. G. Mie, Ann. Phys. 330, 377 (1908), doi:10.1002/andp.19083300302
  2. C. F. Bohren and D. R. Huffman, Absorption and Scattering of Light by Small Particles (Wiley, 1983), ch. 4, doi:10.1002/9783527618156
  3. H. C. van de Hulst, Light Scattering by Small Particles (Wiley, 1957; Dover, 1981), ch. 9 and 11
  4. M. Kerker, The Scattering of Light and Other Electromagnetic Radiation (Academic Press, 1969), ch. 3
  5. W. J. Wiscombe, Appl. Opt. 19, 1505 (1980), doi:10.1364/AO.19.001505
  6. W. J. Lentz, Appl. Opt. 15, 668 (1976), doi:10.1364/AO.15.000668
  7. A. Moroz, Ann. Phys. 315, 352 (2005), doi:10.1016/j.aop.2004.07.002
  8. A. I. Kuznetsov et al., Sci. Rep. 2, 492 (2012), doi:10.1038/srep00492