You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
abstract = {We present PyMoosh, a Python-based simulation library designed to provide a comprehensive set of numerical tools allowing the computation of essentially all optical characteristics of multilayered structures, ranging from reflectance and transmittance to guided modes and photovoltaic efficiency. PyMoosh is designed not just for research purposes, but also for use cases in education. To this end, we have invested significant effort in ensuring the user-friendliness and simplicity of the interface. PyMoosh has been developed in line with the principles of open science and considering the fact that multilayered structures are increasingly being used as a testing ground for optimization and deep learning approaches. We provide in this paper the theoretical basis at the core of PyMoosh, an overview of its capabilities, as well as a comparison between the different numerical methods implemented in terms of speed and stability. We are convinced such a versatile tool will be useful for the community in many ways.},
Copy file name to clipboardExpand all lines: paper/paper.md
+5-10Lines changed: 5 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -9,15 +9,13 @@ tags:
9
9
authors:
10
10
- name: Marius J. Müller
11
11
orcid: 0009-0005-2187-0122
12
-
equal-contrib: true
13
12
affiliation: 1
14
13
- name: Florian Dobener
15
14
orcid: 0000-0003-1987-6224
16
-
equal-contrib: true
17
15
affiliations:
18
16
- name: Institute of Experimental Physics I and Center for Materials Research (ZfM/LaMa), Justus Liebig University Giessen, Heinrich-Buff-Ring 16, Giessen, D-35392 Germany
19
17
index: 1
20
-
date: 24 April 2023
18
+
date: 11 March 2025
21
19
bibliography: paper.bib
22
20
---
23
21
@@ -28,7 +26,7 @@ The code primarily targets spectroscopic ellipsometry (SE) but is adaptable to v
28
26
29
27
Various scientific fields use SE to determine the optical constants of materials and layered material stacks.
30
28
The as-measured SE experimental requires numerical analysis to deduce commonly used, physically meaningful material parameters.
31
-
A typical approach uses transfer-matrix methods (TMM) [@tompkins2005,@WVASEguide].
29
+
A typical approach uses transfer-matrix methods (TMM) [@tompkins2005;@WVASEguide].
32
30
Here, an interaction matrix describes the optical response of each individual material layer.
33
31
The full optical response of a multilayer system is then determined by matrix multiplication of the layers' matrices.
34
32
@@ -89,11 +87,8 @@ Other notable Python open-source software for solving transfer-matrices is avail
89
87
-[PyLlama](https://pyllama.readthedocs.io)[@Bay2022] focuses on the simulation of liquid crystals and uses non-vectorized TMM and a scattering matrix algorithm (rigorous coupled-wave analysis, RCWA).
90
88
-[RayFlare](https://rayflare.readthedocs.io)[@Pearce2021] is a complete toolkit to simulate the physical and electrical properties of solar cells. It provides the same 2x2 algorithm[@byrnes2020multilayer] and a scattering matrix approach (S4).
91
89
-[tmm_fast](https://github.com/MLResearchAtOSRAM/tmm_fast)[@Luce22] is a vectorized variant of Byrnes' algorithm for artificial intelligence-based analysis of multilayer stacks.
# Example: Building a model for an oxide layer on silicon
99
94
@@ -102,7 +97,7 @@ Here, we will demonstrate by creating a standard model for SiO$_2$ on Si.
102
97
We will use a Cauchy dispersion function for SiO$_2$ and tabulated literature values for Si loaded from the refractiveindex.info database.
103
98
104
99
We need to import the necessary libraries before building the model:
105
-
PyElli is imported from the module `elli`, and we want to use our parameters wrapper `ParamsHist`, which is imported from `elli.fitting`. `ParamsHist` is a wrapper around the `Parameters` class from [lmfit](https://lmfit.github.io/lmfit-py/index.html)[@matt_newville_2023_7810964], adding history to it so you can revert your model to an earlier set of parameters.
100
+
PyElli is imported from the module `elli`, and we want to use our parameters wrapper `ParamsHist`, which is imported from `elli.fitting`. `ParamsHist` is a wrapper around the `Parameters` class from [lmfit](https://lmfit.github.io/lmfit-py/index.html)[matt_newville_2024_12785036], adding history to it so you can revert your model to an earlier set of parameters.
106
101
We also import `linspace` from `numpy` for generating a wavelength axis.
0 commit comments