About ScattPy

ScattPy is an open source Python package for light scattering simulations. Its goal is to provide an easy-to-use and flexible modern framework for the numerical solving of the diffraction problems with various kinds of particles.

With the current version of ScattPy [cite:Vinokurov_jqsrt2011] it is possible to calculate far- and near-field optical properties of light scattered by dielectric particles with axial symmetry. With ScattPy homogeneous and multilayered particles can be handled [cite:Vinokurov_optsp2010,cite:Vinokurov_jqsrt2009].

ScattPy includes the separation of variables (SVM), extended boundary condition (EBCM) and point matching (PMM) methods. For a review of these methods and their applicability please see [cite:Farafonov_optsp2010,cite:Farafonov_optsp2007].

Authors

ScattPy is developed and maintained by Dr. A.A. Vinokurov.

The numerical techniques implemented in the ScattPy are based on the results of the research performed by Prof. V.G. Farafonov, Prof. V.B. Il'in and Dr. A.A. Vinokurov in collaboration with Prof. N.V. Voshchinnikov. The original approach was proposed by Prof. V.G. Farafonov.

Terms of Use

ScattPy is an open source project, distributed under the BSD license.

If you are using the package in your research please cite it as

A. A. Vinokurov, V. B. Il'in, and V. G. Farafonov, Scattpy: a new python package for light scattering computations, J. Quant. Spectr. Rad. Transf., In Press (accepted) (2011). [ bib | http ]

References

[1] A. A. Vinokurov, V. B. Il'in, and V. G. Farafonov, Scattpy: a new python package for light scattering computations, J. Quant. Spectr. Rad. Transf., In Press (accepted) (2011). [ bib | http ]
[2] A. A. Vinokurov, V. B. Il'in, and V. G. Farafonov, On optical properties of nonspherical inhomogeneous particles, Opt. Spectr., 109 (2010), pp. 444-453. [ bib | http ]
[3] V. G. Farafonov, V. B. Il'in, and A. A. Vinokurov, Near-and far-field light scattering by nonspherical particles: Applicability of methods that involve a spherical basis, Opt. Spectr., 109 (2010), pp. 432-443. [ bib | http ]
[4] A. A. Vinokurov, V. G. Farafonov, and V. B. Il'in, Separation of variables method for multilayered nonspherical particles, J. Quant. Spectr. Rad. Transf., 110 (2009), pp. 1356-1368. [ bib | http ]
[5] V. G. Farafonov, A. A. Vinokurov, and V. B. Il'in, Comparison of the light scattering methods using the spherical basis, Opt. Spectrosc., 102 (2007), pp. 927-938. [ bib | http ]

Latest news

ScattPy v.0.1.2 Release

ScattPy v.0.1.2 is released.

Changes

  • Critical bug fix in the non-iterative method for multilayered particles,
  • Critical bug fix in the oblate spheroid surface equation.

ScattPy v.0.1.1 Release

ScattPy v.0.1.1 is released.

Changes

  • Sphinx documentation is added,
  • Minor changes in the names of some functions
  • Added LayeredConfocalSpheroid particle class

Slides from the FLAMN-10

ScattPy v.0.1.0 Release

ScattPy v.0.1.0 is released.
The package is registered in the Python package index (PyPI) as scikits.scattpy and can be automatically installed using the standard tools such as pip and easy_install. Please refer to the download page for instructions on manual download and installation.

The package is well tested and is quite stable. However due to the lack of documentation it is still considered in beta phase.

The ScattPy package is designed for modelling the light scattering by non-spherical particles.
Currently supported models are homogeneous and multi-layered particles with the following surface shapes:

  • spherical,
  • prolate and oblate spheroidal,
  • Chebyshev: $r(\theta)=R(1+\varepsilon\cos(n\theta))

illuminated by a plane wave. Besides, custom axi-symmetrical shapes can be used by declaring new shape classes derived from the Shape class.

With the ScattPy one can compute the following optical characteristics:

  • optical cross sections $C_{\rm sca},\;C_{\rm ext},
  • efficiency factors $Q_{\rm sca},\;Q_{\rm ext},
  • scattering matrix elements $S_{11} and $S_{12} for specified scattering angles,
  • amplitude matrix for specified scattering angles.

The following numerical methods are included:

  • separation of variables method (SVM) with spherical basis,
  • extended boundary conditions method (EBCM) with spherical basis,
  • integral point matching method (iPMM) with spherical basis (only homogeneous scatterers and TM mode are implemented).

For more details on the methods please refer to the articles:

  • V.G. Farafonov, A.A. Vinokurov, and V.B. Il’in. Comparison of the light scattering methods using the spherical basis. Opt.Spectrosc., 102:927-938, 2007.
  • A.A. Vinokurov, V.G. Farafonov, and V.B. Il’in. Separation of variables method for multilayered non-spherical particles. J. Quant. Spectr. Rad. Transf., 110:1356–1368, 2009.

Here’s a short example of the ScattPy usage:

from numpy import *
from sciits.scattpy import *

# declare a particle
P = ProlateSpheroid(ab=1.5, xv=1., m=1.33+0.2j)

# declare laboratory
LAB = Lab(P, alpha=pi/4) 
# Here alpha is the angle between the particle axis and 
# the direction of the incident radiation propagation.

# Solve the light scattering porblem with the EBCM method
RES = ebcm(LAB,accuracyLimit=1e-10)

# print scattered field efficiency factor Qsca for the TM and TE modes
print LAB.get_Csca(RES.c_sca_tm)[1], LAB.get_Csca(RES.c_sca_te)[1]

GitHub

We moved the developement of the ScattPy to the GitHub platform.
Here are the main links:

 

Get Help

Links