Skip to content

Commit

Permalink
Merge pull request #75 from haydenrob/tests
Browse files Browse the repository at this point in the history
Tests for Tauc-Lorentz and Gaussian
  • Loading branch information
andyfaff authored Aug 29, 2022
2 parents fcc1ae1 + d876560 commit 50d91a4
Show file tree
Hide file tree
Showing 7 changed files with 837 additions and 15 deletions.
33 changes: 18 additions & 15 deletions docs/faq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Frequently Asked Questions
.. _User defined oscillator: https://nbviewer.org/github/refnx/refellips/blob/master/demos/refellipsDemo_UserDefinedOscillator.ipynb
.. _Cauchy, Sellmeier: https://www.horiba.com/fileadmin/uploads/Scientific/Downloads/OpticalSchool_CN/TN/ellipsometer/Cauchy_and_related_empirical_dispersion_Formulae_for_Transparent_Materials.pdf
.. _Lorentz: https://www.horiba.com/fileadmin/uploads/Scientific/Downloads/OpticalSchool_CN/TN/ellipsometer/Lorentz_Dispersion_Model.pdf
.. _Tauc-Lorentz: https://www.horiba.com/fileadmin/uploads/Scientific/Downloads/OpticalSchool_CN/TN/ellipsometer/Tauc-Lorentz_Dispersion_Formula.pdf

A list of common questions.

Expand Down Expand Up @@ -76,33 +77,35 @@ with the package; please ask if you'd like this to happen.
Alternatively, users have the option to choose from any of the in-built oscillator
functions to model the optical properties of their material:
:class:`~refellips.structureSE.Cauchy`, :class:`~refellips.structureSE.Sellmeier`,
:class:`~refellips.structureSE.Lorentz` and :class:`~refellips.structureSE.Gauss`.
Both the `Cauchy` and `Sellmeier` oscillators monotonically decrease in refractive
index with increasing wavelength and are therefore not Kramers-Kronig consistent.
These optical models are frequently used to model the optical properties of
transparent materials, however, the Sellmeier is more accurate at higher
wavelengths, i.e., the infra-red region. Users can specify `Cauchy` and `Sellmeier`
parameters for their material::
:class:`~refellips.structureSE.Lorentz`, :class:`~refellips.structureSE.TaucLorentz`
and :class:`~refellips.structureSE.Gauss`. Both the `Cauchy` and `Sellmeier`
oscillators monotonically decrease in refractive index with increasing wavelength
and are therefore not Kramers-Kronig consistent. These optical models are frequently
used to model the optical properties of transparent materials, however, the
Sellmeier is more accurate at higher wavelengths, i.e., the infra-red region.
Users can specify `Cauchy` and `Sellmeier` parameters for their material::

my_cauchy_material = Cauchy(A=a, B=b, C=c)
my_sellmeier_material = Sellmeier(Am, En, P, Einf)

Both the `Lorentz` and `Gaussian` functions are Kramers-Kronig consistent, and allow
users to implement multiple oscillators. `Lorentz` oscillators are typically employed
when working with materials above the fundamental band gap, describing well the optical
properties of transparent and weakly absorbing materials. `Gaussian` oscillators are
The `Lorentz` `Tauc-Lorentz` and `Gaussian` functions are Kramers-Kronig consistent,
and allow users to implement multiple oscillators. `Lorentz` oscillators are typically
employed when working with materials above the fundamental band gap, describing well
the optical properties of transparent and weakly absorbing materials. `Tauc-Lorentz`
are often normally used for amorphous materials. `Gaussian` oscillators are
typically used for absorbing materials, where the complex component models the Gaussian
absorption and the real component is its Kramers-Kronig relation (a Hilbert transform).
Users can implement a one `Lorentz`, or two `Gaussian` oscillator model for their
material by::
Users can implement a one `Lorentz` or `Tauc-Lorentz`, or a two `Gaussian` oscillator
model for their material by::

my_lorentz_material = Lorentz([Am], [Br], [En], Einf)
my_TaucLorentz_material = TaucLorentz([Am], [C], [En], Eg, Einf)
my_gaussian_material = Gauss([Am_1, Am_2], [Br_1, Br_2], [En_1, En_2], Einf)

A demonstration on how to implement a user defined oscillator/dispersion curve is
presented in the `User defined oscillator`_ notebook.
Parameter values for `Cauchy, Sellmeier`_ and `Lorentz`_ are provided by Horiba.
Cauchy parameters can also be found on `refractiveindex.info`_.
Parameter values for `Cauchy, Sellmeier`_, `Lorentz`_ and `Tauc-Lorentz`_ are
provided by Horiba. Cauchy parameters can also be found on `refractiveindex.info`_.

Alternatively, users can simply supply a refractive index (n) and extinction coefficient
(k) for a single wavelength measurement::
Expand Down
75 changes: 75 additions & 0 deletions refellips/tests/GaussianMulti_fromCompleteEase.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
4.96 0.75249 0.149436
4.769231 0.745836 0.186491
4.592593 0.744822 0.224415
4.428571 0.749256 0.261956
4.275862 0.75867 0.298058
4.133333 0.77242 0.331897
4 0.789768 0.362889
3.875 0.809955 0.390661
3.757576 0.832247 0.415027
3.647059 0.855966 0.43595
3.542857 0.880514 0.453506
3.444444 0.905373 0.467852
3.351351 0.93011 0.479201
3.263158 0.954372 0.487798
3.179487 0.977875 0.493903
3.1 1.000401 0.497781
3.02439 1.021783 0.499689
2.952381 1.041899 0.499873
2.883721 1.060662 0.498562
2.818182 1.078016 0.495967
2.755556 1.093925 0.492281
2.695652 1.108369 0.487675
2.638298 1.121338 0.482305
2.583333 1.132832 0.476306
2.530612 1.142849 0.469798
2.48 1.151388 0.462886
2.431373 1.158445 0.455662
2.384615 1.164005 0.448203
2.339623 1.168044 0.440579
2.296296 1.170522 0.432847
2.254545 1.171378 0.425057
2.214286 1.170526 0.417252
2.175439 1.167842 0.409465
2.137931 1.163158 0.401728
2.101695 1.156237 0.394066
2.066667 1.146746 0.386501
2.032787 1.134205 0.379066
2 1.117893 0.371839
1.968254 1.096724 0.365053
1.9375 1.069106 0.359353
1.907692 1.032913 0.356275
1.878788 0.985814 0.358932
1.850746 0.926191 0.372648
1.823529 0.854736 0.40503
1.797101 0.776289 0.464891
1.771429 0.70106 0.559791
1.746479 0.644178 0.6927
1.722222 0.623065 0.859033
1.69863 0.653101 1.045526
1.675676 0.743005 1.231831
1.653333 0.891697 1.394591
1.631579 1.087841 1.512669
1.61039 1.312229 1.571772
1.589744 1.542074 1.567048
1.56962 1.755714 1.503121
1.55 1.93637 1.391949
1.530864 2.074148 1.249498
1.512195 2.166195 1.092338
1.493976 2.215454 0.934966
1.47619 2.228702 0.788257
1.458824 2.214513 0.65901
1.44186 2.18157 0.550321
1.425287 2.13755 0.462412
1.409091 2.088549 0.3936
1.393258 2.038961 0.341179
1.377778 1.991633 0.302095
1.362637 1.948168 0.273407
1.347826 1.909259 0.252537
1.333333 1.874994 0.237367
1.319149 1.845103 0.22625
1.305263 1.819132 0.21795
1.291667 1.796566 0.211577
1.27835 1.776895 0.206503
1.265306 1.759656 0.2023
1.252525 1.744448 0.198679
75 changes: 75 additions & 0 deletions refellips/tests/TaucLorentz_fromCompleteEase.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
4.96 -11.960728 10.926159
4.769231 -12.847485 13.040855
4.592593 -13.588346 15.51791
4.428571 -14.085502 18.389723
4.275862 -14.209666 21.666882
4.133333 -13.800831 25.319349
4 -12.679604 29.252659
3.875 -10.675628 33.285217
3.757576 -7.67591 37.139767
3.647059 -3.684495 40.466755
3.542857 1.131984 42.910149
3.444444 6.446633 44.202003
3.351351 11.838364 44.243889
3.263158 16.897631 43.130299
3.179487 21.320011 41.103176
3.1 24.94788 38.46854
3.02439 27.757715 35.519165
2.952381 29.817532 32.488956
2.883721 31.241093 29.539896
2.818182 32.153576 26.769629
2.755556 32.671513 24.227121
2.695652 32.89397 21.928556
2.638298 32.900631 19.870087
2.583333 32.75333 18.036863
2.530612 32.498932 16.408918
2.48 32.172371 14.964709
2.431373 31.79937 13.683129
2.384615 31.398697 12.544542
2.339623 30.983923 11.53122
2.296296 30.564774 10.627457
2.254545 30.148136 9.819489
2.214286 29.738825 9.095343
2.175439 29.340132 8.444635
2.137931 28.954233 7.858382
2.101695 28.582502 7.328804
2.066667 28.225723 6.849162
2.032787 27.884256 6.413609
2 27.558161 6.017056
1.968254 27.247274 5.655065
1.9375 26.951286 5.32375
1.907692 26.669777 5.019705
1.878788 26.402256 4.739925
1.850746 26.148186 4.481758
1.823529 25.907001 4.242849
1.797101 25.678116 4.021108
1.771429 25.460938 3.814667
1.746479 25.254866 3.621856
1.722222 25.059309 3.441179
1.69863 24.873669 3.271291
1.675676 24.697357 3.110983
1.653333 24.529789 2.959168
1.631579 24.370384 2.814869
1.61039 24.218567 2.677209
1.589744 24.073769 2.545401
1.56962 23.935423 2.418747
1.55 23.802971 2.296628
1.530864 23.675865 2.1785
1.512195 23.553558 2.063895
1.493976 23.43552 1.952409
1.47619 23.321226 1.843711
1.458824 23.210171 1.737529
1.44186 23.101864 1.633657
1.425287 22.995834 1.531947
1.409091 22.891638 1.432308
1.393258 22.788855 1.334701
1.377778 22.687098 1.239141
1.362637 22.586016 1.145687
1.347826 22.485294 1.054441
1.333333 22.384661 0.965543
1.319149 22.283884 0.879164
1.305263 22.182787 0.795505
1.291667 22.081232 0.714785
1.27835 21.979136 0.637239
1.265306 21.876467 0.563114
1.252525 21.773237 0.492656
Loading

0 comments on commit 50d91a4

Please sign in to comment.