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://badge.fury.io/py/smuthi.svg

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, Parker Wray.

We thank Adrian Doicu, Thomas Wriedt and Yuri Eremin for allowing us to use their NFM-DS Fortran code, Giacomo Mazzamuto, Ilia Rasskazov, Fabio Mangini, Refet Ali Yalcin and Johanne Heitmann Solheim 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 or read our paper describing the software.

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.

If you have used Smuthi for a publication, please cite us as: Amos Egel, Krzysztof M. Czajkowski, Dominik Theobald, Konstantin Ladutenko, Alexey S. Kuznetsov, Lorenzo Pattelli, “SMUTHI: A python package for the simulation of light scattering by multiple particles near or between planar interfaces”, Journal of Quantitative Spectroscopy and Radiative Transfer, Volume 273, 2021, 107846, ISSN 0022-4073, https://doi.org/10.1016/j.jqsrt.2021.107846.

If you use Smuthi to simulate periodic particle arrangements, please also cite: Dominik Theobald, Dominik Beutel, Luisa Borgmann, Henning Mescher, Guillaume Gomard, Carsten Rockstuhl, Uli Lemmer, “Simulation of light scattering in large, disordered nanostructures using a periodic T-matrix method”, Journal of Quantitative Spectroscopy and Radiative Transfer, Volume 272, 2021, 107802, ISSN 0022-4073, https://doi.org/10.1016/j.jqsrt.2021.107802.

What’s new in version 2.1

This version contains a couple of smaller bug fixes that allow Smuthi to run with newer Python and Numpy versions (Konstantin Ladutenko, Amos Egel).

What’s new in version 2.0

Simulation of periodic particle aggregates (Dominik Theobald). CYTHON acceleration for direct particle coupling. Skipping layer mediated coupling in case of trivial (i.e., homogeneous) background media (Parker Wray). MPI acceleration for near field evaluation (Alexey Kuznetsov).

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-2.1.2.tar.gz (514.3 kB view details)

Uploaded Source

Built Distributions

SMUTHI-2.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

SMUTHI-2.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

SMUTHI-2.1.2-cp310-cp310-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

SMUTHI-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

SMUTHI-2.1.2-cp39-cp39-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

SMUTHI-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

SMUTHI-2.1.2-cp38-cp38-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

SMUTHI-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

SMUTHI-2.1.2-cp37-cp37m-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.7m Windows x86-64

SMUTHI-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

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

SMUTHI-2.1.2-cp36-cp36m-win_amd64.whl (2.8 MB view details)

Uploaded CPython 3.6m Windows x86-64

SMUTHI-2.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

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

File details

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

File metadata

  • Download URL: SMUTHI-2.1.2.tar.gz
  • Upload date:
  • Size: 514.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for SMUTHI-2.1.2.tar.gz
Algorithm Hash digest
SHA256 8a92c789d18c54381c8ddb0137f2174043c424226012b7927bb4cf83d3c1d3b6
MD5 e2da1d75462f932cbff6c2e330786d0f
BLAKE2b-256 d68d735b48096fe892f5e8f8fbf34fc9ddd08f2e8d67a7bb372d3ea71c440eb4

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2a09ebc98907a0136217b94dd495ef7503d68ce326973877352d40b4e76caeb
MD5 469a2e78dc80eb1bd99a8c6ed25c208f
BLAKE2b-256 b313eb9d4a022369238b06e47e8f7cd958123fb47802467819f3a7fa738f166a

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c6ce6a27c517f93b8b2c3270f25605ee3b08476f5e23ec1d6dbd61418b96434
MD5 c9f9e58d1268a82ea9fe6d3de5aa743e
BLAKE2b-256 98504b0f1fbb9dde7578cf08f7081c16d45e45c618b18e3ca54dffb8e94c3f96

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: SMUTHI-2.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for SMUTHI-2.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 94e590d80a9063f3ac4d2a1dc8651a2f0955f86cfbb57474ca3ad99b71abfb76
MD5 84e7dfd7c50c48518229dd04c9a824b6
BLAKE2b-256 153480f83c28921b411b31714425d0247c2d552b9f10ed76e5923878b0ef617d

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 070b3c6ef1f672bcd383956eb374b9697a55e1787007ae7d39af77f8edae1a5c
MD5 a24a137a4877ea8efe0c379bc231df16
BLAKE2b-256 1aada403a469af4184d8734faacf4d743e57d26ade1ecbb248652ad0a387ccd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SMUTHI-2.1.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for SMUTHI-2.1.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 50bd66063cb0536ad2cd79b197a55b572d20efd7516461e064c82015de014c02
MD5 f1b41df930ca1da6bad7b023ae9a95ef
BLAKE2b-256 d42a1ce2c8655897de2cebc49e1a4529ff3544145f1b61fdce9503e928fc37d4

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c823ede21890b72803ebef6011afade81ce2b107157ea5f65e30e06d60eee235
MD5 cec3ae781d3273d5561140cc816efb07
BLAKE2b-256 af346f626c50af35673261dd5ec366feef4b2c12c2908f78d982210008310ba6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SMUTHI-2.1.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for SMUTHI-2.1.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6c218e7e8c846db0f0f80bd05a5cc601a6c2a4d1e7bc6c182a431c677b03f743
MD5 fafe90d848c8be830786db75031a2c49
BLAKE2b-256 14a71ef5cdcce23e7de0cac1f3677ade53182a3bf8298c3bc051a0eecc696ba6

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 33fa1fa8206e8b2639d8181e19794d364cbec343de7e06e7f6c10df8d42daf50
MD5 cdf98d984ed78fcd1c72f3daccc91682
BLAKE2b-256 39904eeca17bd369df8386c67212dc4b9ab8ec844c402e8eab5a03faf1bfd3e0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SMUTHI-2.1.2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.9

File hashes

Hashes for SMUTHI-2.1.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4d9f4da483b0423b7c713bbc8cfd9d36cba6cceceb95aa5a5a9887c1dfffd674
MD5 74a12cefc499ec64e9936e6635a62aab
BLAKE2b-256 9a7453411b96bc516842d17f0a7ebc8368c115a46df36f401304135a57f71179

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 096de0eb9f056d116bb110546654dcbefd3645df7ec45f5231db45f0ba1de30c
MD5 9421277bcc34937b17e31c3bc240a224
BLAKE2b-256 0976ae49e55834f7b6434333936bc9adfcf8a1d2882efb812656aeeba4ef20ca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: SMUTHI-2.1.2-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.8 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.9.6 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.15 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.8

File hashes

Hashes for SMUTHI-2.1.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 c05eeab345ba74c2ff099ef3ed11273cae441a1b11e06182bf04b73505c3ce5d
MD5 1798f9ed8c33142f27f3a089664773b9
BLAKE2b-256 879c797eda0e04741e57f89017400586c85043d96c24ddd5ecbeefdb31c14dba

See more details on using hashes here.

File details

Details for the file SMUTHI-2.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for SMUTHI-2.1.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3dc9574f163449850bfa032418f29ed39e0e4300119cf1e9759278368ce76cb2
MD5 cc76b8dcc91991c53e5bfb3c34f36599
BLAKE2b-256 d225404aa2425c9d152f1d2d7443b63e49b7e612419b97b7c203fa9226adcddb

See more details on using hashes here.

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