A Python library for computing light scattering by multilayered non-spherical particles A. A. Vinokurov1,2 V. B. Il’in1,2,3 V. G. Farafonov1 1 Saint-Petersburg State University of Aerospace Instrumentation, Russia 2 Pulkovo Observatory, Saint-Petersburg, Russia 3 Saint-Petersburg State University, Russia 12th Electromagnetic & Light Scattering Conference Vinokurov, Il’in, Farafonov (Russia) ELS-XII 1/7
Vinokurov, Il’in, Farafonov (Russia) ELS-XII 2/7
gSVM for multilayered particles A particle with L layers. The electromagnetic fields in each of the domains Γ(i) satisfy the boundary conditions E(i) (r) × n(i) (r) = E(i+1) (r) × n(i) (r), r ∈ ∂Γ(i) , i = 1, . . . , L, Systems for each of the layer boundaries (i) (i) Pi x(i) = Pi+1 x(i+1) , i = 1, . . . , L, Iterative scheme L (1) xsca (1) (i) (i) P1 = P2 (Pi )−1 Pi+1 x(L+1) . xinc i=2 Vinokurov, Il’in, Farafonov (Russia) ELS-XII 3/7
Accuracy of gSVM for multilayered particles 10-2 10-4 10-6 Relative error 10-8 10-10 10-12 10-14 10-16 0 10 101 102 103 Number of layers xv = 0.1 xv = 10.0 xv = 0.5 xv = 15.0 xv = 1.0 xv = 30.0 xv = 5.0 Vinokurov, Il’in, Farafonov (Russia) ELS-XII 4/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
Usage example Vinokurov, Il’in, Farafonov (Russia) ELS-XII 6/7
Some computational results Homogeneous 2 layers 4 layers Vinokurov, Il’in, Farafonov (Russia) ELS-XII 7/7
Some computational results Homogeneous 8 layers 16 layers Vinokurov, Il’in, Farafonov (Russia) ELS-XII 8/7

A Python library for computing light scattering by multilayered non-spherical particles

  • 1.
    A Python libraryfor computing light scattering by multilayered non-spherical particles A. A. Vinokurov1,2 V. B. Il’in1,2,3 V. G. Farafonov1 1 Saint-Petersburg State University of Aerospace Instrumentation, Russia 2 Pulkovo Observatory, Saint-Petersburg, Russia 3 Saint-Petersburg State University, Russia 12th Electromagnetic & Light Scattering Conference Vinokurov, Il’in, Farafonov (Russia) ELS-XII 1/7
  • 2.
    Vinokurov, Il’in, Farafonov(Russia) ELS-XII 2/7
  • 3.
    gSVM for multilayeredparticles A particle with L layers. The electromagnetic fields in each of the domains Γ(i) satisfy the boundary conditions E(i) (r) × n(i) (r) = E(i+1) (r) × n(i) (r), r ∈ ∂Γ(i) , i = 1, . . . , L, Systems for each of the layer boundaries (i) (i) Pi x(i) = Pi+1 x(i+1) , i = 1, . . . , L, Iterative scheme L (1) xsca (1) (i) (i) P1 = P2 (Pi )−1 Pi+1 x(L+1) . xinc i=2 Vinokurov, Il’in, Farafonov (Russia) ELS-XII 3/7
  • 4.
    Accuracy of gSVMfor multilayered particles 10-2 10-4 10-6 Relative error 10-8 10-10 10-12 10-14 10-16 0 10 101 102 103 Number of layers xv = 0.1 xv = 10.0 xv = 0.5 xv = 15.0 xv = 1.0 xv = 30.0 xv = 5.0 Vinokurov, Il’in, Farafonov (Russia) ELS-XII 4/7
  • 5.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 6.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 7.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 8.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 9.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 10.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 11.
    Python/SciPy Python is a very convinient object oriented scripting language. It is good for large projects It is good for quick implementations A lot of things included: libraries for numerical computations, access to libraries for other sciences, data visualization, data storage, etc. Speed can be comparable with the speed of low level languages Integration with Fortran and C++. There’s a scientific community with annual conferences. Vinokurov, Il’in, Farafonov (Russia) ELS-XII 5/7
  • 12.
    Usage example Vinokurov, Il’in,Farafonov (Russia) ELS-XII 6/7
  • 13.
    Some computational results Homogeneous 2 layers 4 layers Vinokurov, Il’in, Farafonov (Russia) ELS-XII 7/7
  • 14.
    Some computational results Homogeneous 8 layers 16 layers Vinokurov, Il’in, Farafonov (Russia) ELS-XII 8/7