Skip to content

Commit 0b2c0d9

Browse files
committed
match pyElli spelling
1 parent 03bbd95 commit 0b2c0d9

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

paper/paper.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bibliography: paper.bib
2424

2525
# Summary
2626

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.
2828
The code primarily targets spectroscopic ellipsometry (SE).
2929
In addition, it is adaptable to various transmission and reflection experiments featuring spectral and polarization resolution.
3030

@@ -43,28 +43,28 @@ For example, results may even be hard to reproduce on competitive systems due to
4343
In addition, limitations of the specific software included with each instrument may stimulate scientists to use third-party software:
4444
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.
4545

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).
4747
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.
4848
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].
5050

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.
5252
All optical models adhere closely to the literature [@Hilfiker2018].
5353
The software easily includes the popular public-domain database for optical constants [refractiveindex.info](https://refractiveindex.info) [@rii].
5454
This allows the inclusion of literature dispersions with a single line of code.
5555
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.
5656

57-
**PyElli** supports multiple solving algorithms with different characteristics.
57+
**pyElli** supports multiple solving algorithms with different characteristics.
5858
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].
5959
The 2x2 matrix algorithm divides the light into two perpendicular linearly polarized beams, which are solved separately.
6060
One of its limitations is eliminating the possibility to include birefringent materials.
6161
The 4x4 matrix approach fully solves Maxwell's equations.
6262
These equations describe the complete electromagnetic field inside each layer of the sample and couple these together using the matrix formalism.
6363
This allows finding solutions to more complex problems such as anisotropic materials, active media or magneto-optic samples.
6464

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].
6666
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.
6868
Furthermore, the use of Python and vectorization libraries also facilitates the development of artificial intelligence-based SE data analysis.
6969

7070
# Statement of need
@@ -74,13 +74,13 @@ Many research journals already require authors to add supporting data, and there
7474
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].
7575
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.
7676

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.
7878
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.
8181
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].
8282

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

8585
# Software with similar functionalities
8686

@@ -95,13 +95,13 @@ Other notable Python open-source software for solving transfer-matrices is avail
9595

9696
# Example: Building a model for an oxide layer on silicon
9797

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**.
9999
The chosen model system is a thin SiO$_2$ layer on bulk Si.
100100
A Cauchy dispersion function describes the SiO$_2$.
101101
Tabulated literature values for Si are loaded from the refractiveindex.info database.
102102

103103
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`.
105105
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`.
106106
It adds history functionality to revert any undesired model changes and to return to an earlier set of parameters.
107107
Importing `linspace` from `numpy` enables the generation of a wavelength axis.
@@ -114,7 +114,7 @@ from elli.fitting import ParamsHist, fit
114114

115115
Initially, we define the fit parameters.
116116
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).
118118

119119
```python
120120
params = ParamsHist()
@@ -126,7 +126,7 @@ params.add("SiO2_thickness", value=20)
126126
Next, the Cauchy model is created using the `Cauchy` class and the defined parameters.
127127
All undefined Cauchy coefficients are kept at their default value of zero in this particular case.
128128
Subsequently, the `.get_mat()` method is called on the created object to automatically convert the dispersion into an isotropic material.
129-
A list of different dispersion classes and their usage is given in the [documentation](https://pyelli.readthedocs.io/en/stable/dispersions.html).
129+
A list of different dispersion classes and their usage is given in the [documentation](https://pyElli.readthedocs.io/en/stable/dispersions.html).
130130

131131
```python
132132
SiO2 = elli.Cauchy(
@@ -138,7 +138,7 @@ SiO2 = elli.Cauchy(
138138
Next, tabulated literature values for silicon is read from a database.
139139
Therefor, the code instantiates the refractiveindex.info database and queries it for the material (`Si`) and author (`Aspnes`).
140140
It is also possible to search the database to get a list of matching entries.
141-
See the [documentation](https://pyelli.readthedocs.io/en/stable/database.html) for details.
141+
See the [documentation](https://pyElli.readthedocs.io/en/stable/database.html) for details.
142142

143143
```python
144144
rii_db = elli.db.RII()
@@ -172,15 +172,15 @@ angle = 70
172172
result = structure.evaluate(wavelengths, angle)
173173
```
174174

175-
The calculation is stored in the `result` variable, which is a [`Result` object](https://pyelli.readthedocs.io/en/stable/result.html).
175+
The calculation is stored in the `result` variable, which is a [`Result` object](https://pyElli.readthedocs.io/en/stable/result.html).
176176
This object can hold all input parameters and the calculation results.
177177
Methods like `psi`, `delta`, `R`, etc., will deliver the desired output.
178178
Alternatively, the `@fit` decorator in `elli.fitting` automatically calls a widget-based fitting GUI for Jupyter notebooks.
179179
\autoref{fig:fit_dec_example} shows the output when used with this example model and some experimental data.
180180

181181
![The ipywidgets based fitting GUI.\label{fig:fit_dec_example}](fit_decorator_example.png)
182182

183-
The [examples](https://pyelli.readthedocs.io/en/stable/auto_examples/index.html) provide additional information.
183+
The [examples](https://pyElli.readthedocs.io/en/stable/auto_examples/index.html) provide additional information.
184184

185185
# Acknowledgements
186186

0 commit comments

Comments
 (0)