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
Copy file name to clipboardExpand all lines: paper/paper.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ bibliography: paper.bib
24
24
25
25
# Summary
26
26
27
-
**PyElli** is an open-source Python-based analysis tool for evaluating the linear optical interaction of layered materials.
27
+
**pyElli** is an open-source Python-based analysis tool for evaluating the linear optical interaction of layered materials.
28
28
The code primarily targets spectroscopic ellipsometry (SE).
29
29
In addition, it is adaptable to various transmission and reflection experiments featuring spectral and polarization resolution.
30
30
@@ -43,28 +43,28 @@ For example, results may even be hard to reproduce on competitive systems due to
43
43
In addition, limitations of the specific software included with each instrument may stimulate scientists to use third-party software:
44
44
bundled software packages may not support specific desirable kinds of analyses, such as including the response of optically anisotropic materials or simultaneous fitting of external experimental parameters.
45
45
46
-
**PyElli** offers an open-source alternative extending the capabilities of existing solutions, while aiming to remain as compatible as possible, by providing data imports from various manufacturers (Woollam VWASE, Woollam CompleteEASE, Sentech, Accurion).
46
+
**pyElli** offers an open-source alternative extending the capabilities of existing solutions, while aiming to remain as compatible as possible, by providing data imports from various manufacturers (Woollam VWASE, Woollam CompleteEASE, Sentech, Accurion).
47
47
The code is designed with extensibility and adaptability in mind enabling the implementation of individually adapted models as well as data evaluation with custom tools.
48
48
Typical examples for advanced use-cases are implementations of custom experimental geometries not covered by other software [@eberheim2022], imaging ellipsometry, or as a full FAIR data automated analysis pipeline for SE measurements.
49
-
**PyElli** also supports recent advances in the standardization of ellipsometry data and models, addressing the need for FAIR data [@Wilkinson2016].
49
+
**pyElli** also supports recent advances in the standardization of ellipsometry data and models, addressing the need for FAIR data [@Wilkinson2016].
50
50
51
-
**PyElli** aims to provide a straight-forward database of predefined dispersion models for analyzing materials.
51
+
**pyElli** aims to provide a straight-forward database of predefined dispersion models for analyzing materials.
52
52
All optical models adhere closely to the literature [@Hilfiker2018].
53
53
The software easily includes the popular public-domain database for optical constants [refractiveindex.info](https://refractiveindex.info)[@rii].
54
54
This allows the inclusion of literature dispersions with a single line of code.
55
55
Additional dispersion relations can be either hard coded, which is more efficient, or parsed from a text-based domain-specific language into a dispersion which can be fitted, e.g., polynomially.
56
56
57
-
**PyElli** supports multiple solving algorithms with different characteristics.
57
+
**pyElli** supports multiple solving algorithms with different characteristics.
58
58
Currently, two algorithms using different formulations are available: a fast algorithm based on a 2x2 matrix formulation [@byrnes2020multilayer] and a more complex 4x4 matrix formulation [@Berreman72; @berreman4x4_doku; @berreman4x4_software].
59
59
The 2x2 matrix algorithm divides the light into two perpendicular linearly polarized beams, which are solved separately.
60
60
One of its limitations is eliminating the possibility to include birefringent materials.
61
61
The 4x4 matrix approach fully solves Maxwell's equations.
62
62
These equations describe the complete electromagnetic field inside each layer of the sample and couple these together using the matrix formalism.
63
63
This allows finding solutions to more complex problems such as anisotropic materials, active media or magneto-optic samples.
64
64
65
-
**PyElli** ensures fast processing through fully vectorized algorithms for multiple wavelengths and by leveraging numerical algebra libraries like [NumPy](https://numpy.org)[@harris2020array] and [SciPy](https://scipy.org)[@2020SciPy-NMeth].
65
+
**pyElli** ensures fast processing through fully vectorized algorithms for multiple wavelengths and by leveraging numerical algebra libraries like [NumPy](https://numpy.org)[@harris2020array] and [SciPy](https://scipy.org)[@2020SciPy-NMeth].
66
66
Together, these runtime advantages enable the practical use of advanced fitting algorithms such as global optimizers while maintaining reasonable evaluation times.
67
-
As a result, **PyElli** enables integrated in-situ monitoring and real-time data analysis of overlayer growth.
67
+
As a result, **pyElli** enables integrated in-situ monitoring and real-time data analysis of overlayer growth.
68
68
Furthermore, the use of Python and vectorization libraries also facilitates the development of artificial intelligence-based SE data analysis.
69
69
70
70
# Statement of need
@@ -74,13 +74,13 @@ Many research journals already require authors to add supporting data, and there
74
74
The FAIR principles have recently been extended to apply to research software as well since reproducing data requires not only the data itself but also the software used to create it [@Barker2022].
75
75
Producing FAIR data and using a FAIR and open analysis pipeline is especially important for SE, as the results are tightly related and dependent on the algorithms and models used for evaluation.
76
76
77
-
An open-source toolkit, **PyElli** has many inherent benefits over proprietary software.
77
+
An open-source toolkit, **pyElli** has many inherent benefits over proprietary software.
78
78
For SE, optical models vary between manufacturers and translation can be difficult without comprehensive documentation.
79
-
**PyElli's** open-source nature makes optical models extendable, auditable, and fully comprehensive.
80
-
Each version of **PyElli** is associated with a DOI and a Zenodo upload, allowing for reliable referencing and reproducibility of analysis results.
79
+
**pyElli's** open-source nature makes optical models extendable, auditable, and fully comprehensive.
80
+
Each version of **pyElli** is associated with a DOI and a Zenodo upload, allowing for reliable referencing and reproducibility of analysis results.
81
81
It supports reading and writing standardized files in the [nexus format](https://nexusformat.org) and is also integrated as an example in the research data management software NOMAD [@Scheidgen2023].
82
82
83
-
In summary, **PyElli** aims to provide the means of more straight-forward data analysis, reproducibility, and FAIR data management within the ellipsometry community.
83
+
In summary, **pyElli** aims to provide the means of more straight-forward data analysis, reproducibility, and FAIR data management within the ellipsometry community.
84
84
85
85
# Software with similar functionalities
86
86
@@ -95,13 +95,13 @@ Other notable Python open-source software for solving transfer-matrices is avail
95
95
96
96
# Example: Building a model for an oxide layer on silicon
97
97
98
-
This example aims to illustrate the straight-forward implementation and building of an optical model in **PyElli**.
98
+
This example aims to illustrate the straight-forward implementation and building of an optical model in **pyElli**.
99
99
The chosen model system is a thin SiO$_2$ layer on bulk Si.
100
100
A Cauchy dispersion function describes the SiO$_2$.
101
101
Tabulated literature values for Si are loaded from the refractiveindex.info database.
102
102
103
103
The necessary libraries are loaded before building the model:
104
-
PyElli is imported from the module `elli`.
104
+
**pyElli** is imported from the module `elli`.
105
105
The `ParamsHist` wrapper around the `Parameters` class from [lmfit](https://lmfit.github.io/lmfit-py/index.html)[@matt_newville_2024_12785036] is imported from `elli.fitting`.
106
106
It adds history functionality to revert any undesired model changes and to return to an earlier set of parameters.
107
107
Importing `linspace` from `numpy` enables the generation of a wavelength axis.
@@ -114,7 +114,7 @@ from elli.fitting import ParamsHist, fit
114
114
115
115
Initially, we define the fit parameters.
116
116
The Cauchy model for SiO$_2$ is defined by the `SiO2_n0` and `SiO2_n1` parameters along with its layer thickness measured in nanometers.
117
-
Optionally, additional settings for _lmfit_ parameters like constraints or bounds might be added; refer to _lmfit's_ documentation for a list of parameter arguments or consult our verbose [basic example](https://pyelli.readthedocs.io/en/stable/auto_examples/plot_01_basic_usage.html#sphx-glr-auto-examples-plot-01-basic-usage-py).
117
+
Optionally, additional settings for _lmfit_ parameters like constraints or bounds might be added; refer to _lmfit's_ documentation for a list of parameter arguments or consult our verbose [basic example](https://pyElli.readthedocs.io/en/stable/auto_examples/plot_01_basic_usage.html#sphx-glr-auto-examples-plot-01-basic-usage-py).
0 commit comments