Skip to main content

Light scattering by multiple particles in thin-film systems

Project description

https://gitlab.com/AmosEgel/smuthi/badges/master/pipeline.svg Documentation Status

https://gitlab.com/AmosEgel/smuthi/raw/master/docs/_source/images/logo_cropped.png

SMUTHI stands for ‘scattering by multiple particles in thin-film systems’. The software allows to simulate light scattering by multiple particles near (or between) planar interfaces. It is based on the T-matrix method for the single particle scattering, and on the scattering-matrix method for the propagation through the layered medium.

Target group: Scientists and engineers in the field of optics and optoelectronics.

License: SMUTHI is provided under the MIT license.

Author: Amos Egel (amos.egel@gmail.com).

The following persons have contributed to the project: Amos Egel, Dominik Theobald, Krzysztof Czajkowski, Konstantin Ladutenko, Alexey Kuznetsov, Lorenzo Pattelli.

We thank Adrian Doicu, Thomas Wriedt and Yuri Eremin for allowing us to use their NFM-DS Fortran code, Giacomo Mazzamuto, Ilia Rasskazov as well as Fabio Mangini for bug reports, useful comments and smaller code additions and HÃ¥kan T Johansson for making his pywigjxpf software availible through PyPi and also under Windows.

For a guide how to install and use the software, see the documentation.

If you are using Smuthi, please subscribe to the Smuthi mailing list. The list is also a good place to ask for support from the developers or from experienced users.

To report a bug, you can also open an issue in Gitlab.

Contributions are highly welcome! Please refer to the contribution guidelines.

What’s new in version 1.2

Several small bug fixes, support of STL-format for custom shaped particles, support for layered spheroids, accelerated near field evaluations in CPU mode, improved algorithms for automatic parameter selection, support for magnetic field calculations.

The following changes break backward compatibility: - Extinction cross section is now by default a single number, as opposed to a dictionary with “top” and “bottom” part - Angular resolution parameters are now provided in radians (like all other angular quantities).

What’s new in version 1.1

The interface to NFM-DS has undergone a major revision and is now offered in the form of an F2Py Fortran extension (no more dealing with input and output text files or temporary NFM-DS directories). Several new particle classes were added (anisotropic sphere, custom shape particles). Advanced automatic parameter selection. Binary wheels on PyPi, such that no Fortran compiler is necessary on Windows machines. The release workflow was automatized using GitLab CI and Appveyor. Revision of the graphical output. New application examples and user guide sections were added to the online documentation. The simulation from input data files (rather than Python scripts) is no longer supported. Several smaller changes and bug fixes.

What’s new in version 1.0

A major bug that significantly slowed down Smuthi under Windows was fixed. The module structure has undergone a major review (unfortunately, backwards compatibility cannot be granted and you might need to adapt some import statements in your scripts when updating to version 1.0). For spheres, the calculation of internal fields (i.e., inside the particle) was implemented. A module for automatic selection of numerical parameters has been added (still in beta). For non-spherical particles, Smuthi now requires the GNU Fortran compiler also under Windows (MinGW). The use of the precompiled executable is deprecated. Pywigxjpf is now also available for Windows - however, the sympy fallback solution for the calculation of the Wigner3j symbols is still provided. Convenience functions for the definition of reasonable Sommerfeld contours have been added and can be managed through the simulation class (call to “set_default_k_parallel” no more necessary). Plenty of smaller changes and bug fixes. Advanced logging.

What’s new in version 0.9

MPI support for the parallel execution of many simulations, acceleration with Numba JIT, faster evaluation of Wigner3j symbols through pywigxjpf

What’s new in version 0.8

Support for rotated particles, GPU support for the calculation of the near field.

What’s new in version 0.7

Iterative solver (GMRES), lookup tables and GPU support were added for fast simulations including large particle numbers.

What’s new in version 0.6

Dipole sources are supported as initial field.

What’s new in version 0.5

Gaussian beams (more precisely: beams with transverse Gaussian footprint) are supported as initial field.

What’s new in version 0.4

The data structure has been updated to a more consequent object oriented approach, including a PlaneWaveExpansion class and a SphericalWaveExpansion class. Smuthi’s API is now also documented.

What’s new in version 0.3

The software now allows to compute the electric near field. The fields can be plotted as png figure files and as gif animations. All generated output can be stored as figure files or as text files. The simulation object can be exported as binary file.

What’s new in version 0.2.2

Finite cylinders were added.

What’s new in version 0.2

In addition to spherical particles, spheroids can now be selected as scattering particles, too. Spheroids are ellipsoidal particles with one axis of rotational symmetry (which is currently fixed to be the direction perpendicular to the layer interfaces).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

SMUTHI-1.2.2.tar.gz (101.2 kB view details)

Uploaded Source

Built Distributions

SMUTHI-1.2.2-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

SMUTHI-1.2.2-cp39-cp39-manylinux2010_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

SMUTHI-1.2.2-cp38-cp38-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.8 Windows x86-64

SMUTHI-1.2.2-cp38-cp38-manylinux2010_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

SMUTHI-1.2.2-cp37-cp37m-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.7m Windows x86-64

SMUTHI-1.2.2-cp37-cp37m-manylinux2010_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

SMUTHI-1.2.2-cp36-cp36m-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.6m Windows x86-64

SMUTHI-1.2.2-cp36-cp36m-manylinux2010_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

File details

Details for the file SMUTHI-1.2.2.tar.gz.

File metadata

  • Download URL: SMUTHI-1.2.2.tar.gz
  • Upload date:
  • Size: 101.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for SMUTHI-1.2.2.tar.gz
Algorithm Hash digest
SHA256 1fe72817ccf0e3b937a68d564610676061d388e891bf7faadb8e477fe0e4e208
MD5 6ea301e559a70b6071d83f1809b56fc3
BLAKE2b-256 dfe991e9a9de724f807e8b3545123a1245273f1742a64d3caa9b7e0d0f34d5d7

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.1

File hashes

Hashes for SMUTHI-1.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a5a86b1a56db2323030fdf53b3a68374910132c32c2119a6133c8225e40acf5c
MD5 760f167a929ee40bc74ebc6549b59769
BLAKE2b-256 5ad0b6ffc6d68f58093e22e035e6cabc7129b95d8dda532f3c12d1e518495d75

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for SMUTHI-1.2.2-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 f7722a10d28de82d5888c9e67e7787daa5cf74f3d9b8d27d9a18c3098abb0d62
MD5 05cb7f63b196b3ff928b4c3e919d563d
BLAKE2b-256 a6117e5b14d9534e82cd92f32de02cd6a2a8df477d1af098bf952414ffc0b378

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.7

File hashes

Hashes for SMUTHI-1.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 fa6c70beee7a469b422932bb73d3419d121e04b7743b745857818c4a9f6e1163
MD5 f5afe447ed71f13d7632169706b4a499
BLAKE2b-256 c8953b5be5998312a6e44bc8a4d336b65699f3662c5b8ce5f5a2b69047bb2f8b

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for SMUTHI-1.2.2-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 55929e082e41f7f88ca3d23c3e3ff916e142acb9ed7211a3d307756831907167
MD5 784b161681badde8e4bc22d3388e8061
BLAKE2b-256 9e9f2621c20e4d3c0b75430b20ed5722f174714ae0ca9ad836c3259a7116c253

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.9

File hashes

Hashes for SMUTHI-1.2.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 44dc44d9fc45e4b678cb1e5737703c35db76ae23c5853523ee9ee1c212cd176f
MD5 361f5cff4460b736276ffe9be8dc8f40
BLAKE2b-256 ca09db2bc9e880acf8b754f44affd4c90070425dcadb42760549230eee387e38

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for SMUTHI-1.2.2-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ace78514e52de89ff00eb36a2766eee740f485f96f6f51715ef231f93bbda139
MD5 879eb6afede802814db64a10b53c6819
BLAKE2b-256 eefcd06e67fda94fc95266c1b7d342bca796a645f45fb23a6a140dd6fc05d706

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.2 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.6.8

File hashes

Hashes for SMUTHI-1.2.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 bf686686d7fdbe224d6dcbb232dea675f61498b6b8d2d3bec8147a833b55d469
MD5 098d5085f8171e99278958da6cfb9455
BLAKE2b-256 8599e4cf430f596750d255898b33bc94b95059939fa887a9ed7b4386a91a2203

See more details on using hashes here.

Provenance

File details

Details for the file SMUTHI-1.2.2-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: SMUTHI-1.2.2-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.7.10

File hashes

Hashes for SMUTHI-1.2.2-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 267c9892b2b3fab4a84a5277f9ce4a745773b3188cc15b4cecc89919c73e5b1c
MD5 99e8140396defc484fc60c6a6340a186
BLAKE2b-256 68814e4fb718024b4a5ce114e1e7ccacabfc273a626de83735da368dd35ff0d7

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page