Skip to main content

A JAX-based efficient transfer-matrix method framework for optical simulations

Project description

JaxLayerLumos: A JAX-based Efficient Transfer-Matrix Method Framework for Optical Simulations

DOI PyPI - Python Version License: MIT Code style: black

Overview

JaxLayerLumos is an open-source software designed for scientists, engineers, and researchers in optics and photonics. It provides a powerful yet intuitive interface for calculating the reflection and transmission (RT) of light through multi-layer optical structures. By inputting the refractive index, thickness of each layer, and the frequency vector, users can analyze how light interacts with layered materials, including the option to adjust for incidence angles.

Our mission is to offer a lightweight, flexible, and fast alternative to commercial software, enabling users to perform complex optical simulations with ease. JaxLayerLumos is built with performance and usability in mind, facilitating the exploration of optical phenomena in research and development settings.

Features

  • Lightweight and Efficient: Optimized for performance, JaxLayerLumos ensures rapid calculations without the overhead of large-scale commercial software.
  • Gradient Calculation: Calculates the gradients over any variables involved in RT, powered by Jax.
  • Flexibility: Accommodates a wide range of materials and structures by allowing users to specify complex refractive indices, layer thicknesses, and frequency vectors.
  • Angle of Incidence Support: Expands simulation capabilities to include angled light incidence, providing more detailed analysis for advanced optical designs.
  • Open Source and Community-Driven: Encourages contributions and feedback from the community, ensuring continuous improvement and innovation.
  • Comprehensive Material Database: Includes a growing database of materials with their optical properties, streamlining the simulation setup process.

Getting Started

Installation

JaxLayerLumos can be easily installed by the following command.

pip install jaxlayerlumos

Alternatively, JaxLayerLumos can be installed from source.

pip install .

Examples

A collection of examples in the examples directory exhibits various use cases and capabilities of JaxLayerLumos.

Benchmarking

You should install the packages required for benchmarking our software against existing methods. Before installing the packages, you should install PyTorch first. In particular, you can install it using the following command.

pip install torch --index-url https://download.pytorch.org/whl/cpu

For details, you can refer to the official instruction of PyTorch. Then, the required packages can be installed by the following command.

pip install .[benchmarking]

Comparisons to Ansys Optics

Simulation results of JaxLayerLumos are compared to the results of stackrt, which is included in Ansys Optics. Our results are matched to the Ansys Optics results with sufficiently small errors.




Supported Materials

Materials supported by JaxLayerLumos are described in this file.

License

JaxLayerLumos is released under the MIT License, promoting open and unrestricted access to software for academic and commercial use.

Acknowledgments

  • Thanks to all contributors and users for your support and feedback.

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

jaxlayerlumos-0.3.2.tar.gz (257.0 kB view details)

Uploaded Source

Built Distribution

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

jaxlayerlumos-0.3.2-py3-none-any.whl (233.8 kB view details)

Uploaded Python 3

File details

Details for the file jaxlayerlumos-0.3.2.tar.gz.

File metadata

  • Download URL: jaxlayerlumos-0.3.2.tar.gz
  • Upload date:
  • Size: 257.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for jaxlayerlumos-0.3.2.tar.gz
Algorithm Hash digest
SHA256 4138c49e770b3a137c4dac11314359d7f23bb1c67762008d887389427743c80d
MD5 008a4f42d34b5e66ef53a2ed9ad9dcfe
BLAKE2b-256 eaceb62acb85b989e404f3b24708d9d1b44b534de728ff747b1008c5ca838441

See more details on using hashes here.

File details

Details for the file jaxlayerlumos-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: jaxlayerlumos-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 233.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.9

File hashes

Hashes for jaxlayerlumos-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b1c68fb9021291631df48c20c13cb296369a0283e1a7d5e74041ec3c1d5def64
MD5 3474886cfd9902cf3c7201bbc20098c1
BLAKE2b-256 daaf1a8e42aa107095bab77d50c240ec0f38b62808f7004593ab55863051e9ad

See more details on using hashes here.

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