Skip to content

Commit 2bd04ff

Browse files
committed
Text refinements and adding basic example
1 parent 4c2c605 commit 2bd04ff

File tree

1 file changed

+82
-37
lines changed

1 file changed

+82
-37
lines changed

paper/paper.md

Lines changed: 82 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -23,58 +23,103 @@ bibliography: paper.bib
2323

2424
# Summary
2525

26-
Spectroscopic ellipsometry is an easy applicable and useful tool for todays materials research.
27-
It is used throughout various scientific fields to determine the optical constants of materials.
28-
However, ellipsometry always needs numerical analysis to deduce material properties from a measurement.
29-
The algorithm of choice for such analysis is the so-called transfer-matrix approach, using matrices for each layer to construct a full matrix for the complete system.
30-
The matrix describes the whole light matter interaction - reflection, transmission and absorption - of the sample.
26+
PyElli is an open source analysis tool for linear optical interaction of layered materials written in python.
27+
It mainly targets spectroscopic ellipsometry, but is easily adaptable to transmission or reflection experiments.
3128

32-
Typically, software for such calculations is shipped together with ellipsometers, where each hardware vendor supplies their own version.
33-
Therefore, through different implementation details and different optical models the dispersion models for materials in literature cannot readily be adapted in the lab.
29+
Spectroscopic ellipsometry (SE) is used throughout various scientific fields to determine the optical constants of layered material stacks.
30+
To deduce actual material parameters from an SE experiment, numerical analysis needs to be performed.
31+
This is typically done with the transfer-matrix method (tmm), which associates an interaction matrix to the optical response of each material layer. The full optical response of a material system is then determined by matrix multiplication of the layers interaction matrices.
3432

35-
Further, if the supplied software does not support a specific kind of analysis (e.g. anisotropic materials or simultaneous fitting of multiple measurements) scientists need to use third party software, anyways.
33+
Proprietary software for such calculations is mostly shipped with ellipsometers, where each ellipsometer manufacturer supplies their own adapted version.
34+
While this is great for the workflow in the laboratory, it ties scientists to the optical models and experiments available in the software, is hard to reproduce with other systems and makes data interchange cumbersome.
35+
If such software does not support a specific kind of analysis, e.g., calculating anisotropic materials or simultaneous fitting of multiple measurements, scientists need to use third party software, anyways.
3636

37-
In this paper we present the open source python software pyElli, which tackles these problems by offering an open source platform, which is by design easily extendable and adaptable with new optical models or analysis algorithms.
37+
PyElli offers an open source alternative and tries to stay as compatible as possible to existing solutions.
38+
This allows scientist to adapt pyElli to their needs, either for single experiments not covered by other software or as a full FAIR data [FAIRpaper] analysis pipeline for SE measurements.
39+
It is designed with extensibility and adaptability in mind, to quickly allow scientists developing their custom analysis pipelines.
40+
It also serves the need of FAIR data by supporting recent advances in standardization of ellipsometry data and models.
3841

39-
The optical models used, try to stay as close as possible to formulas documented in literature [fujiwara].
40-
But it is possible to include vendor-specific models or self-designed models, too.
42+
The optical models used, try to stay as close as possible to formulas documented in literature [fujiwara].
43+
It is easily possible to add new dispersions or use a generic formula dispersion, which is able to parse a text-based formula into a fittable dispersion.
4144

42-
It leverages the popular public domain database for optical constants [refractiveindex.info] to use citeable reference materials.
45+
To quickly build models pyElli includes the popular public domain database for optical constants [refractiveindex.info], which allows users to load literature dispersions with a single line of code.
4346

44-
PyElli currently supports two solving algorithms, one based on a 2x2 matrix algorithm [byrnes] which is faster, but only applicable for simple problems and a 4x4 matrix algorithm based on the Berreman's transfer matrix formulation [berreman].
45-
While the 2x2 algorithm splits the two perpendicular polarized beams and solves them separately, the 4x4 matrix approach solves the complete electromagnetic field.
46-
Accordingly, it allows to solve more complex problems like anisotropic samples.
47+
PyElli supports using mutliple solving algorithms, which allows for specialized applications.
48+
Currently, two algorithms using different formulations are available.
49+
The first one is a simple algorithm based on a 2x2 matrix formulation [byrnes] and second one a more complex 4x4 formulation [berreman].
50+
While the 2x2 algorithm splits the light into two perpendicular polarized beams and solves them separately, the 4x4 matrix approach solves the complete electromagnetic field, which allows solving more complex problems, e.g., anistropic materials or active media.
4751

4852
# Statement of need
4953

50-
As it is more and more common to publish research data for reuse and review after the FAIR data guidelines [FAIR].
51-
The same benefits apply to research software and were summarized in the FAIR4RS principles [FAIR4RS].
54+
As it is more and more common to publish research data for reuse and review after the FAIR data guidelines [FAIR].
55+
The same benefits apply to research software and were summarized in the FAIR4RS principles [FAIR4RS].
5256
This is especially important for ellisometric data as the results are tightly related and dependant on the algorithms and models used for evaluation.
5357

54-
Opposite to the vendor provided software, an open source toolkit has many inherent benefits.
55-
The optical models used can vary between vendors and the translation may be difficult, if the information is not clearly documented.
56-
PyElli's open source nature makes the models extendable, auditable and occurring changes comprehensible.
58+
Opposite to the vendor provided software, an open source toolkit has many inherent benefits.
59+
The optical models used can vary between vendors and the translation may be difficult, if the information is not clearly documented.
60+
PyElli's open source nature makes the models extendable, auditable and occurring changes comprehensible.
5761
It allows the handling of files from many different measurement devices as importer scripts can be developed as plugins.
5862

5963
To provide fast processing of measurement data, PyElli's algorithms are fully vectorized for multiple wavelengths and leverage the numerical algebra libraries [NumPy] and [SciPy].
60-
This allows the use advanced fitting algorithms like global optimizers in reasonable evaluation times.
61-
On the other hand this makes realtime, in-situ monitoring of layered material growth possible.
64+
This allows the use advanced fitting algorithms like global optimizers in reasonable evaluation times.
65+
On the other hand this makes realtime, in-situ monitoring of layered material growth possible.
6266

63-
An [example] in the NORTH analysis toolkit within the research data management software NOMAD by the german FAIRmat consortium shows that the software can easily be integrated in emerging cloud-based analysis tools for science and supports a standardization of ellipsometry data formats within this project [NXellispometry].
67+
An [example] in the NORTH analysis toolkit within the research data management software NOMAD [NOMADpaper] by the german FAIRmat consortium [link_to_fairmat] shows that the software can easily be integrated in emerging cloud-based analysis tools for science and supports a standardization of ellipsometry data formats within this project [NXellispometry].
6468
We hope that the software contributes to easier analysis and reproducibility, as well as FAIR data management within the ellipsometry community.
6569

66-
Other notable python open source software for solving transfer-matrices are available, but tend to focus on different aspects:
67-
68-
* [PyGTM]: Slower, but more extensive general transfer matrix approach, calculates additional parameters, like the electric field strengths in the multilayer stack.
69-
* [PyLlama]: Provides transfer and scattering matrix algorithms (RCWA), better suited to simulate liquid crystals. Non vectorized.
70-
* [RayFlare]: Complete toolkit to simulate solar cells. Provides the same 2x2 [byrnes] algorithm and a scattering matrix approach.
71-
* Additional mentions: [refellips][EMpy][dtmm][py_matrix]
70+
# Software with similar functionalities
7271

73-
# Example
72+
Other notable python open source software for solving transfer-matrices are available, but tend to focus on different aspects:
7473

75-
* Show a walkthrough of the SiO2 on Si example.
76-
* Show a Mueller matrix example?
77-
* Show an anisotropy example? (Maybe quote my paper about SiPh4 and show the code in a separate git repo)
74+
- [PyGTM]: Slower, but more extensive general transfer matrix approach, calculates additional parameters, like the electric field strengths in the multilayer stack.
75+
- [PyLlama]: Provides transfer and scattering matrix algorithms (RCWA), better suited to simulate liquid crystals. Non vectorized.
76+
- [RayFlare]: Complete toolkit to simulate solar cells. Provides the same 2x2 [byrnes] algorithm and a scattering matrix approach.
77+
- Additional mentions: [refellips][EMpy][dtmm][py_matrix]
78+
- Fast TMM -> AI stuff
79+
80+
# Application
81+
82+
Here the SiPh example?
83+
84+
# Example: Building a simple model
85+
86+
```python
87+
import numpy as np
88+
import elli
89+
from elli.fitting import ParamsHist, fit
90+
```
91+
92+
```python
93+
params = ParamsHist()
94+
params.add("n0", value=1.452)
95+
params.add("n1", value=36.0)
96+
params.add("thickness", value=20)
97+
```
98+
99+
```python
100+
SiO2 = elli.Cauchy(
101+
params["n0"],
102+
params["n1"],
103+
).get_mat()
104+
```
105+
106+
```python
107+
rii_db = elli.db.RII()
108+
Si = rii_db.get_mat("Si", "Aspnes")
109+
```
110+
111+
```python
112+
structure = elli.Structure(
113+
elli.AIR,
114+
[elli.Layer(SiO2, params["thickness"])],
115+
Si,
116+
)
117+
```
118+
119+
```python
120+
wavelengths = np.linspace(210, 800, 100)
121+
structure.evaluate(wavelengths, 70)
122+
```
78123

79124
# Citations
80125

@@ -87,9 +132,9 @@ citation) then you can do it with the example BibTeX entry below for @fidgit.
87132

88133
For a quick reference, the following citation commands can be used:
89134

90-
* `@author:2001` -> "Author et al. (2001)"
91-
* `[@author:2001]` -> "(Author et al., 2001)"
92-
* `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
135+
- `@author:2001` -> "Author et al. (2001)"
136+
- `[@author:2001]` -> "(Author et al., 2001)"
137+
- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
93138

94139
# Figures
95140

@@ -105,4 +150,4 @@ Figure sizes can be customized by adding an optional second parameter:
105150
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
106151
Oh, and support from Kathryn Johnston during the genesis of this project.
107152

108-
# References
153+
# References

0 commit comments

Comments
 (0)