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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

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

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

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

Uploaded CPython 3.6m Windows x86-64

SMUTHI-1.2.4-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.4.tar.gz.

File metadata

  • Download URL: SMUTHI-1.2.4.tar.gz
  • Upload date:
  • Size: 101.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.8.0 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.4.tar.gz
Algorithm Hash digest
SHA256 0fb7ae4f03e71d4175a7ddba7e6d2fdfe8fae7462d01ff3684312dd66d2d6d5d
MD5 7cfd3ea6c18860ab6bd15c0b6b1000fe
BLAKE2b-256 86f1a18eb787a4ddb594982d25a4b0d04eb48e1acf8223b9e090ee77eebf2a4f

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0ad48d70b0656759a548ab6051388751203db4f037da72dd6a3278e81465660f
MD5 186e76991ce39c3c8c67eeb0445d4d8e
BLAKE2b-256 2e8adb33e74df2415a4f3bbfd9ccdc525ee95830dd9cd918a233f4d50177a43b

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d81329dfc5978a844c477e3ad5e3153fec3c120458b7c86f4b657a1302cd7a01
MD5 bdaeded54807fe7870dd298b4c249f1b
BLAKE2b-256 cebde13f6cb9b506bb283eafa3513c202e6ca7b315e6e2ec3899376c213d613a

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3a2d11cbda325a686d9605ab4e7a59e832c2b580aeedde499d5c59d0049e87f5
MD5 dd5ec47ec688499f45a94cacd3910791
BLAKE2b-256 9409f7db2b914614c338167f22905827baae9ba31de92c15dbddbc731715e375

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4defe0ac83a2641690992a6d795937d916d04a3a783605e639760761223b5816
MD5 11693f5bbbc5702a3c2426486cb1d792
BLAKE2b-256 98686ff67a1a378bdcc184ca5dc8ed25317c315d155b6ee57324739e22850e26

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ad4516dbaff4e7880013dd7426cf4fd2c4a8661d821418ac817b9599c70979b5
MD5 a6d829dbf4d2fee71e1476d618bf9f87
BLAKE2b-256 69f10365e3afca595d8af4fcd4fd248fb2c060159394299a7c119d739a46db91

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a0f5e96a55f469ea39ebbc5ba43a9a7f56481913f77523a0bbcf0c7241b38a47
MD5 b05b44db64af957f444a78e23b32cbda
BLAKE2b-256 5246e914117b43345f773f55a8f3a657b430ce9e213d2c468cb9421167349ae2

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.4-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8d9fa3660131ae5fcf79e320ccaec725672a6c36d0006eb82d4fd6447609eb83
MD5 159e771a0479ba11b8946cc2fa57c4da
BLAKE2b-256 2ddc2edce64060bf6e64742dcbe5e594343c51eb062959c92c7a87998c635c1b

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: SMUTHI-1.2.4-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.8.0 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.4-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 65ac7464177114ba67320d4ef1396ae96b3dfe566e93bf738240a88f2ec6c4e2
MD5 b09e674342ea7e250d2faa00978e9f11
BLAKE2b-256 b5dfaf68cb6cfb9a7d8f4c84107925d8929588e04db6431cf3f9d0e97ab0a93c

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