Skip to content

Calculate optical cross sections of spherical particles using Mie theory in Python

License

Notifications You must be signed in to change notification settings

mhvwerts/miniMie

Repository files navigation

miniMie: calculate optical cross sections of spherical particles

DOI

miniMie is a small scientific Python module for calculating optical cross sections (extinction, scattering, absorption) of spherical (nano)particles in a medium using Mie theory. It depends on numpy and scipy. For plotting, matplotlib is needed.

The module is essentially the script that we used and published in: J. R. G. Navarro and M. H. V. Werts, "Resonant light scattering spectroscopy of gold, silver and gold-silver alloy nanoparticles and optical detection in microfluidic channels", Analyst 2013, 138, 583-592.

The Mie calculation code is based on MATLAB code from the report by C. Mätzler. Included in miniMie are the dielectric functions of gold and silver from Johnson & Christy, Phys. Rev. B 1972, 6, 4370, with the possibility of applying a mean-free path correction as described by Haiss et al, Anal. Chem 2007, 79, 4215.

The extinction cross section calculated by miniMie can be readily converted into the molar extinction coefficient (see the example Jupyter Notebook). From the absorption and extinction cross sections, one may deduce the photothermal efficiency.

This implementation is distributed under the CeCILL license (a GNU GPL-compatible license). See: https://cecill.info/index.en.html

The basic code for doing simple Mie calculations functions correctly, but it needs further documentation and illustration.

Example notebooks

To-do list

  • Include further application examples, in particular as Jupyter Notebooks
  • Add benchmark calculations for testing purposes (e.g., see the Mätzler report, and other sources)
  • Add more dielectric functions, in particular analytic models using a limited set of parameters to accurately describe the dielectric function over a range of wavelengths.

Links to other programs of interest

  • Mie-Simulation-Maetzler-MATLAB-code contains a copy of Mätzler's original MATLAB code, together with the accompanying report.
  • scattport.org contains another copy of the MATLAB code.
  • mie, a more recent and more complete port of the Mätzler MATLAB code to Python, without dielectric functions for gold and silver.
  • pyMieScatt, a recent, comprehensive Python library for Mie calculations, with code for solving the inverse Mie problem (obtaining the complex refractive index from absorption and scattering measurements). Dielectric functions for gold and silver are not included. The pyMieScatt library is described in J. Quant. Spectrosc. Radiat. Transf. 2018, 205, 127.

About

Calculate optical cross sections of spherical particles using Mie theory in Python

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages