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].
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.
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 ]
|||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 ]|
|||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 ]|
|||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 ]|
|||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 ]|
|||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 ]|
ScattPy v.0.1.2 is released.
- 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 is released.
- Sphinx documentation is added,
- Minor changes in the names of some functions
- Added LayeredConfocalSpheroid particle class
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
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:
- prolate and oblate spheroidal,
illuminated by a plane wave. Besides, custom axi-symmetrical shapes can be used by declaring new shape classes derived from the
With the ScattPy one can compute the following optical characteristics:
- optical cross sections ,
- efficiency factors ,
- scattering matrix elements and 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), LAB.get_Csca(RES.c_sca_te)
We moved the developement of the ScattPy to the GitHub platform.
Here are the main links: