Mie_Theory
Mie_Theory
Guillaume Ba↵ou⇤
Chargé de recherche CNRS, Institut Fresnel, Université Aix-Marseille, France
(Dated: February 21, 2017)
In this work, I aim at giving a clear and self-sufficient description of Mie theory. This famous
theory is suited to compute accurately the optical cross sections of a spherical particle. One usually
needs to spend some time and read a couple of papers or books, fighting with the cgs and SI units,
before clearly understanding what the parameters mean and before making sure that one writes a
proper code. This document may help you saving some time. A Matlab code is also provided.
This work in now described in J. Phys. Chem. C 119, 28586–28596 (2015).
The reference document on this subject is the famous J⌫ and Y⌫ are the Bessel functions of first and second
textbook from Bohren and Hu↵man but the information order respectively. They are standard Matlab functions,
is not easy to extract.1 named respectively besselj and bessely. Note that
Consider a spherical particle of radius r0 , complex these functions are solutions of the Bessel di↵erential
electric permittivity " = n2 embedded in a dielectric equation:
medium of permittivity "m = n2m . This particle is il-
luminated by a plane wave of angular frequency ! = d2 y dy ⇥ 2 ⇤
2⇡ c/ 0 = k c/nm . x2 + 2x + x ⌫(⌫ + 1) y = 0
Let us define from now on a set of useful dimensionless dx2 dx
parameters:
m = n/nm while j and ⇠j are solutions of the following di↵erential
equation:
v = k r0
w = mv
d2 y ⇥ 2 ⇤
x2 + x j(j + 1) y = 0
dx2
In these conditions, the extinction, scattering and ab- j and ⇠j can be expressed as a sum of sines and cosines.
sorption cross sections are given by the formulae: For instance, the first terms read:
1
2⇡ X
ext = (2j + 1) Re(aj + bj ) (1) 0 (x) = sin(x)
k 2 j=1
1
⇠0 (x) = sin(x) i cos(x)
2⇡ X
sca = (2j + 1) (|aj |2 + |bj |2 ) (2) 1 (x) = sin(x)/x cos(x)
k 2 j=1 ⇠1 (x) = sin(x)/x i (cos(x)/x + sin(x))
abs = ext sca (3)
where In Eqs. (1) and (2), the sum over j can be restricted
0 0
to only a few terms, up to j = N . Bohren and Hu↵man1
m j (w) j (v) j (v) j (w) proposed the value N = v + 4 v 1/3 + 2.
aj = 0 0 (4)
m j (w) ⇠j (v) ⇠j (v) j (w) In Eqs. (4) and (5), the primes indicate di↵erentia-
0 0 tion with respect to the argument in parenthesis. The
j (w) j (v) m j (v) j (w)
bj = 0 0 (5) derivatives can be conveniently expressed as follows:
j (w) ⇠j (v) m ⇠j (v) j (w)
⇤ 1
guillaume.ba↵[email protected] C. F. Bohren and D. R. Hu↵man, Absorption and scattering
of light by small particles (Wiley interscience, 1983)
%% SCATTERING BY A SPHERICAL GOLD NANOPARTICLE USING MIE THEORY
%% inputs
function [Qext,Qsca,Qabs]=MieScattering2(lambda0,r0,n_m)
%% parameters
%% computation
j=(1:N);
sqr=sqrt(pi*x/2);
sqrm=sqrt(pi*z/2);
phi=sqr.*besselj(j+0.5,x);
xi=sqr.*(besselj(j+0.5,x)+i*bessely(j+0.5,x));
phim=sqrm.*besselj(j+0.5,z);
phi1=[sin(x), phi(1:N-1)];
phi1m=[sin(z), phim(1:N-1)];
y=sqr*bessely(j+0.5,x);
y1=[-cos(x), y(1:N-1)];
phip=(phi1-j/x.*phi);
phimp=(phi1m-j/z.*phim);
xip=(phi1+i*y1)-j/x.*(phi+i*y);
aj=(m*phim.*phip-phi.*phimp)./(m*phim.*xip-xi.*phimp);
bj=(phim.*phip-m*phi.*phimp)./(phim.*xip-m*xi.*phimp);
Qsca=sum( (2*j+1).*(abs(aj).*abs(aj)+abs(bj).*abs(bj)) );
Qext=sum( (2*j+1).*real(aj+bj) );
Qext=Qext*2*pi/(k*k);
Qsca=Qsca*2*pi/(k*k);
Qabs=Qext-Qsca;