# Mie Scattering

The MieScattering unit of the scuff-em test suite uses the scuff-scatter command-line module to study the textbook problem of Mie scattering: the scattering of plane waves from a sphere.

More specifically, we consider a circularly-polarized plane wave incident from below on a sphere of radius $R=1\, \mu$m and made of gold, described by the dielectric function and we compute + scattered and total fields at points outside and inside the sphere, + induced electric and magnetic dipole moments + power, force, and torque (PFT) imparted to the sphere.

The aspects of scuff-em functionality exercised by this test include the following:

#### Core library (libscuff)

Basic setup of scattering problems for compact geometries:

Postprocessing:

• Computation of scattered fields ([GetFields.cc])
• Computation of induced dipole moments ([GetDipoleMoments.cc])
• Computation of PFT via displaced-surface-integral algorithm ([DSIPFT.cc])
• Computation of PFT via energy-momentum transfer algorithm ([EMTPFT.cc])

#### libhmat support library:

• Basic handling of dense matrices and vectors
• Calls to LAPACK routines for solving linear systems

#### libmatprop support library:

• Parsing of MATERIAL...ENDMATERIAL sections in .scuffgeo files
• Support for frequency-dependent permittivities defined by user-specified functions

• Plane waves

#### scuff-scatter command-line application module:

• Core functionality

### Exact solution

The theory of Mie scattering is presented in any number of textbooks, such as Bohren and Huffman, Absorption and Scattering of Light by Small Particles,, and is reviewed in this memo distributed with the scuff-em documentation. For a sphere irradiated by an incident field consisting of a linear combination of incoming spherical waves, the scattered fields {inside,outside} the sphere are linear combinations of {regular, outgoing} spherical waves, where the scattered-field expansion coefficients are related to the incident-field coefficients according to  b^{\in,out}_{P,\ell,m} =

The situation considered here is that of a right-circularly-polarized plane wave of unit amplitude impinging from below the sphere, in which case the incident-field expansion coefficients read

The

## scuff-em solution

ARGS=""
ARGS="${ARGS} --geometry GoldSphere_501.scuffgeo" ARGS="${ARGS} --OmegaFile   0.1"
ARGS="${ARGS} --Omega 1.0" ARGS="${ARGS} --ThetaMin    0"
ARGS="${ARGS} --ThetaMax 85" ARGS="${ARGS} --ThetaPoints 19"
ARGS="${ARGS} --ZAbove 1.0" % scuff-scatter${ARGS}


## Unit test

The unit test is performed by running the script tests/Mie/TestMie.sh. This runs scuff-scatter with the command-line arguments discussed above, producing output files with names like GoldSphere_501.DSIPFT, then runs CheckSCUFFData to compare the content of these files against reference files with names like GoldSphere_501.DSIPFT.reference. (The reference files are included in the scuff-em source distribution, but may be regenerated by running % TestMie.sh --reference. The items to be checked in the comparison are defined in the checklist file Mie.Checklist. The unit test passes iff all data items for all data sets agree within specified tolerances.