Skip to main content

An ellipsometry analysis tool for reproducible and comprehensible building of optical models.

Project description

The pyElli logo

PyPI - Python Version PyPI DOI status Pytest Documentation Status Ruff

pyElli

PyElli is an open source numerical solver for spectral ellipsometry employing well-known 2x2 and 4x4 algorithms. It is intended for a broad case of problems including simple fitting of layered structures, anisotropic layers and any other light interaction with layered 1D structures. It serves as a system for the day to day ellipsometry task at hand and is easily extendable with your own dispersion models, EMAs or solvers. Our goal is to provide a reproducible and flexible tool for the needs of scientists working with spectral ellipsometry.

Features

  • A multitude of models to approximate the dielectric function of your material.
  • Use the vast library of materials from refractiveindex.info as reference materials.
  • Build up your structure easily from materials and layers.
  • Simulate reflection and transmission spectra, ellipsometric parameters and Mueller matrices.
  • Utilities to quickly convert, plot and fit your measurement data.
  • Powerful when necessary, editable and expandable.

Got a question?

If you have questions using pyElli please feel free to open a discussion in the Q&A or join our discord channel.

How to get it

The installers for all releases are available at the Python Package Index (PyPI).

To install run:

pip install "pyElli[fitting]"

This installs pyElli with the additional fitting capabilities and interactive widgets. If you don't want to have this functionality just drop the [fitting] in the end.

To increase performance of the 4x4 Solver, it is recommended to install PyTorch manually, as it is too big to include in the standard installation. Installation information can be found at the PyTorch Website. The CPU variant is sufficient, if you want to save some space.

A complete environment for pyElli is also available as a Docker Container. To pull and run it directly just execute

docker run -p 8888:8888 domna/pyelli

from your local docker install. After startup a link should appear in your console. Click it and you will be directed to a jupyter server with the latest release of pyElli available.

To install the latest development version use:

pip install "pyElli[fitting] @ git+https://github.com/PyEllips/pyElli.git"

The source code is hosted on GitHub, to manually install from source, clone the repository and run pip install -e . in the folder to install it in development mode:

git clone --recurse-submodules https://github.com/PyEllips/pyElli
cd pyElli
pip install -e ".[fitting]"

How to cite

Until we have published a Paper on pyElli, we have prepared a Zenodo entry with DOIs for every pyElli Version. The can be found here.

Acknowledgements

@MarJMue received financial support from 2021 until 2025 by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation), grant No. 398143140 (FOR 2824).

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

pyelli-0.22.6.tar.gz (15.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyelli-0.22.6-py3-none-any.whl (14.2 MB view details)

Uploaded Python 3

File details

Details for the file pyelli-0.22.6.tar.gz.

File metadata

  • Download URL: pyelli-0.22.6.tar.gz
  • Upload date:
  • Size: 15.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyelli-0.22.6.tar.gz
Algorithm Hash digest
SHA256 1ba81cb35dcf0f9475dc2519a9be82d306644286650ff37ac6a3fb1c1adbf1d2
MD5 b0fff548b3297bd3f2784abced32bc10
BLAKE2b-256 bcabfe7ea1a039be01e91007c67c5f6ee8e22954790dc052e2e378c14be81503

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyelli-0.22.6.tar.gz:

Publisher: python-publish.yml on PyEllips/pyElli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyelli-0.22.6-py3-none-any.whl.

File metadata

  • Download URL: pyelli-0.22.6-py3-none-any.whl
  • Upload date:
  • Size: 14.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyelli-0.22.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bb585d3576dcbf4635e8b39d20f63d71e79542e808b126392c9ee50254b5dd24
MD5 af5f5d41a384939313e1d370bcd53510
BLAKE2b-256 0faba5a8ea6ccfa9aa648ec724087c36ef7cf576def4c8d0ba2d4f00b06a871b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyelli-0.22.6-py3-none-any.whl:

Publisher: python-publish.yml on PyEllips/pyElli

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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