Skip to content
/ smmo Public

scattering matrix method implementation for python

License

Notifications You must be signed in to change notification settings

phykn/smmo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMMO (Scattering-Matrix method for Multilayer Optics) is scattering matrix method [1-3] implementation for python.

Installation

pip install smmo

Parameters

config

  • wavenumber: The wavenumber of refractive index (or absorption coefficient) of layers. The unit is inverse centimeter (cm-1).
  • incidence: Angle of incidence $(0\leqq\theta<90)$. The unit is arc degree.
  • polarization: Polarization of the incidence light. "s": s-polarization and "p": p-polarization.

layer

  • n: Refractive index of the layer
  • k: Absorption coefficient of the layer
  • thickness: Thickness of the layer. The unit is centimeter (cm).
  • coherence: Coherence in the layer. True: coherence and False: incoherence.

Example

import numpy as np
from smmo import make_config, make_layer, SMMO

config = make_config(
    wavenumber=np.arange(0, 10000, step=1000),
    incidence=0,
    polarization="s"
)

layers = [
    make_layer(
        n=np.full(10, 1),
        k=np.full(10, 0),
        thickness=0,
        coherence=False
    ),
    make_layer(
        n=np.full(10, 1.5),
        k=np.full(10, 0),
        thickness=0.01,
        coherence=True
    ),
    make_layer(
        n=np.full(10, 2),
        k=np.full(10, 0),
        thickness=0.05,
        coherence=False
    ),
    make_layer(
        n=np.full(10, 1),
        k=np.full(10, 0),
        thickness=0,
        coherence=False
    )
]

output = SMMO(layers, config)()
>>> print(output)
{'T': array([0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8]),
 'R': array([0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2])}

Citation

@article{lee2022machine,
  title={Machine learning analysis of broadband optical reflectivity of semiconductor thin film},
  author={Lee, Byeoungju and Yu, Kwangnam and Jeon, Jiwon and Choi, EJ},
  journal={Journal of the Korean Physical Society},
  pages={1--5},
  year={2022},
  publisher={Springer}
}

Reference

[1] Ko, D. Yuk Kei, and J. C. Inkson., Physical Review B 38.14 9945 (1988)
[2] Ko, D. Yuk Kei, and J. R. Sambles., JOSA A 5.11 1863-1866 (1988)
[3] Dyakov, Sergey A., et al., International Conference on Micro-and Nano-Electronics 2009 (2010)

About

scattering matrix method implementation for python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages