JaxLayerLumos

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

University of Pittsburgh

Overview

JaxLayerLumos is open-source transfer-matrix method (TMM) 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

  • 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.

Installation

JaxLayerLumos can be easily installed by the following command using the PyPI repository.

pip install jaxlayerlumos

Alternatively, JaxLayerLumos can be installed from source.

pip install .

In addition, we support three installation modes, dev, benchmarking, and examples, where dev is defined for installing the packages required for development, benchmarking is for installing the packages required for benchmarking against differnt TMM software programs, and examples is needed for running the examples included in the examples directory. One of these modes can be used by commanding pip install .[dev], pip install .[benchmarking], or pip install .[examples].

Supported Materials

Materials supported by our software are described in this file. For example, Ag, Air, Al2O3, Al, aSi, Au, BK7, Cr, cSi, Cu, Fe, FusedSilica, GaAs, GaInP, GaP, Ge, InP, ITO, Mg, Mn, Ni, Pb, Pd, Pt, Sapphire, Si3N4, SiO2, TiN, TiO2, Ti, W, ZnO, Zn are included in JaxLayerLumos.

License

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

Acknowledgments

Related Links

Citation


      @misc{LiM2024jaxlayerlumos,
          title={JaxLayerLumos: A JAX-based Efficient Transfer-Matrix Method Framework for Optical Simulations},
          author={Li, Mingxuan and Kim, Jungtaek and Leu, Paul W.},
          howpublished={\url{https://doi.org/10.5281/zenodo.12602789}}
          year={2024}
      }