SMMO (Scattering-Matrix method for Multilayer Optics) is scattering matrix method [1-3] implementation for python.
pip install smmo
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 layerk
: Absorption coefficient of the layerthickness
: Thickness of the layer. The unit is centimeter (cm).coherence
: Coherence in the layer.True
: coherence andFalse
: incoherence.
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])}
@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}
}
[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)