Nav apraksta

Ovidio Peña Rodríguez 0ba31ec33e Format changes. 9 gadi atpakaļ
debian bfafd4bcfb Reorganized code and increased version number to 2.0.0 9 gadi atpakaļ
doc 098e75e02b Even more changes. Reorganized code. 10 gadi atpakaļ
examples fcea645d3a Moved some files to "examples" dir. 9 gadi atpakaļ
src bfafd4bcfb Reorganized code and increased version number to 2.0.0 9 gadi atpakaļ
tests fcea645d3a Moved some files to "examples" dir. 9 gadi atpakaļ
utils 098e75e02b Even more changes. Reorganized code. 10 gadi atpakaļ
.gitignore c78969a511 Re-added scattnlay.cpp, it is needed to compile Python extension without cython installed. 10 gadi atpakaļ
CHANGES 1b7786ad5a Initial commit based on Ovidio version of python-scattnlay 0.3.0 10 gadi atpakaļ
COPYING c23b1aae05 Reorganized source code 10 gadi atpakaļ
LICENSE 1b7786ad5a Initial commit based on Ovidio version of python-scattnlay 0.3.0 10 gadi atpakaļ
MANIFEST.in bfafd4bcfb Reorganized code and increased version number to 2.0.0 9 gadi atpakaļ
Makefile 0ba31ec33e Format changes. 9 gadi atpakaļ
PKG-INFO a02a844cdc Modifications to complete the porting to C++. Most of the work was done by 'kostyfisik'. 10 gadi atpakaļ
README.md 0ba31ec33e Format changes. 9 gadi atpakaļ
go.sh fca8e2c3fc removed dependance from bessel.cc 10 gadi atpakaļ
push-to-github.sh eea51ce5ca Changes to push script 10 gadi atpakaļ
scattnlay.pyx f4efce1cd4 Several changes to complete the features 10 gadi atpakaļ
setup.py bfafd4bcfb Reorganized code and increased version number to 2.0.0 9 gadi atpakaļ
setup_cython.py bfafd4bcfb Reorganized code and increased version number to 2.0.0 9 gadi atpakaļ

README.md

output example Output example: Field distribution inside layered Si\Ag\Si sphere and Poynting vector distribution in Ag sphere with poweflow lines calculated with Scattnlay.

How to use scattnlay

Table of contents:

Compile Code:

Compilation options

  • make source - Create source package for Python extension
  • make cython - Convert Cython code to C++
  • make python_ext - Create Python extension using C++ code
  • make cython_ext - Create Python extension using Cython code
  • make install - Install Python extension on local system
  • make buildrpm - Generate a rpm package for Python extension
  • make builddeb - Generate a deb package for Python extension
  • make standalone - Create standalone programs (scattnlay and fieldnlay)
  • *make clean - Delete temporal files

Use:

  1. Python library
    • Use scattnlay directly
from scattnlay import scattnlay, fieldnlay
...
x = ...
m = ...
coords = ...
terms, Qext, Qsca, Qabs, Qbk, Qpr, g, Albedo, S1, S2 = scattnlay(x, m)
terms, E, H = fieldnlay(x, m, coords)
...
  • Execute some of the test scripts (located in the folder 'tests/python') Example:
./test01.py
  1. Standalone program
    • Execute scattnlay directly Usage:
scattnlay -l Layers x1 m1.r m1.i [x2 m2.r m2.i ...] [-c comment]
  • Execute fieldnlay directly Usage:
fieldnlay -l Layers x1 m1.r m1.i [x2 m2.r m2.i ...] [-p xi xf nx yi yf ny zi zf nz] [-c comment]
  • Execute some of the test scripts (located in the folder 'tests/shell') Example:
./test01.sh > test01.csv
  1. C++ library
    try {
      MultiLayerMie multi_layer_mie;
      multi_layer_mie.SetLayersSize(x);
      multi_layer_mie.SetLayersIndex(m);

      multi_layer_mie.RunMieCalculation();

      *Qsca = multi_layer_mie.GetQsca();
      *Qabs = multi_layer_mie.GetQabs();
    } catch(const std::invalid_argument& ia) {
      // Will catch if  multi_layer_mie fails or other errors.
      std::cerr << "Invalid argument: " << ia.what() << std::endl;
      throw std::invalid_argument(ia);
      return -1;
    }

Papers

  1. "Scattering of electromagnetic radiation by a multilayered sphere" O. Pena and U. Pal, Computer Physics Communications, vol. 180, Nov. 2009, pp. 2348-2354. http://dx.doi.org/10.1016/j.cpc.2009.07.010

  2. "Reduction of scattering using thin all-dielectric shells designed by stochastic optimizer" Konstantin Ladutenko, Ovidio Peña-Rodríguez, Irina Melchakova, Ilya Yagupov, and Pavel Belov J. Appl. Phys., vol. 116, pp. 184508, 2014 http://dx.doi.org/10.1063/1.4900529

Acknowledgment

We expect that all publications describing work using this software, or all commercial products using it, cite the following reference:

O. Pena and U. Pal, "Scattering of electromagnetic radiation by a multilayered sphere," Computer Physics Communications, vol. 180, Nov. 2009, pp. 2348-2354.

License

GPL v3+