Category Archives: Optical constants

How to develop flexible optical constant models based on given n and k tables

Materials used in thin films may differ in their optical constants n and k from the corresponding bulk versions. Even if you find optical constant tables in literature for your application you may need to make some adjustments to the n and k values. This is certainly difficult if you have just a table of fixed values – what you need is a flexible model which can adjust the spectral shape of n and k by modifying a few key parameters only. This short tutorial shows how to proceed in such a case.

Crystalline silicon is used as example. The database of our SCOUT and CODE software packages contain several silicon versions. Here I have selected the item ‘Silicon (crystalline, MIR-VUV)’. These are the n and k data, featuring several interband transitions and a slow decay of k towards the indirect band gap around 1.1 eV:

If you change the temperature of a silicon wafer or deposit poly-crystalline silicon thin films you may observe similar structures but not exactly the same n and k – a flexible model would be nice to have. Our strategy to develop such a model will be this: First, we generate ‘measured data’ which are computed using the existing n and k table values. Then, in the second step, we setup a suitable model and adjust its parameters to reproduce the ‘measured’ data. If the ‘measurements’ provide enough information the n and k values of the model should be almost the same as those of the original table.

Since we will simulate the measurements we can easily work with a system which would be almost impossible to realize. In order to clearly ‘see’ the weak silicon absorption in the visible we use a 2 micron thick free standing layer – this layer is quite transparent and it will generate a nice interference pattern. To match the amplitude of the fringes will be difficult with wrong k values – so this setup ensures good n and k data of the model in the visible and NIR. The layer stack is this:

Using this layer stack we could now generate several reflectance and transmittance spectra, taken at various angles of incidence. This would make a nice set of ‘measured data’ for the fit procedure. However, to make our life as easy as possible we can use an ellipsometry object in the list of spectra. Objects of this type have the option to compute so-called ‘Pseudo n and k’ values. With this option the ellipsometric angles Psi and Delta are represented by pseudo n and k values of a virtual single interface. In spectral regions where our silicon layer is opaque the pseudo n and k values are the same as the real ones. In the transparent region the pseudo n and k values reflect the interference structures – this looks strange, and one could certainly question the usefulness of the concept ‘Pseudo n and k’. However, the interference pattern is what we go for to get good small k values in the model. The blue curves below show the generated pseudo n and k values. Within this example we will work in the spectral range 200 … 1000 nm:

Ellipsometry objects offer the local menu command ‘Actions / Use simulated data as measured data’ which is what we need now. The blue curves are now copied to the red measurement data as if we had imported measured data.

We can now replace the material object by our first model in the layer stack. I have started with a very simple model which consists of a constant real part of the refractive index and a Tauc-Lorentz model (inside a KKR susceptibility object). It is a good idea to generate a new item of type ‘Multiple spectra view’ which can show both the original table values of n and k and the model values in one graph (lower left side). With this simple model, you cannot expect a good match since  silicon shows several interband transitions in the range 200 … 1000 nm:

However, if we limit the range to 400 … 1000 nm the simple model works quite well:

For the full range (200 … 1000 nm) we need more interband transitions. Sticking to the Tauc-Lorentz oscillator type, I have added 2 more which brings up to a new level (still not satisfying, though):

Depending on your patience (and the needs of the final application) you can add more features as you like, approaching the former table values of n and k more and more. I stopped my example at this level:

The model developed for silicon this way can now be saved to the optical constant database for future use. You can use it for studies of systematic variations of deposition conditions and generate tables like ‘resonance frequency vs deposition temperature’.

You can follow the strategy shown in this tutorial for all kinds of materials, as long as you get good tabulated values of n and k to start with.

Leng model for optical constants

We have implemented (starting with object generation 4.99) the Leng oscillator which has been developed to model optical constants of semiconductors. As shown in the original article (Thin Solid Films 313-314 (1988) 132-136) it works well for crystalline silicon:


Warning: While the model works fine in the vicinity of strong spectral features (critical points in the joint density of states) it may generate non-physical n and k values in regions of small absorption.

Store to database

How do I store optical constants in the database?

Make sure that the material object you want to store to the database is in good shape: It will appear in the database like it is formatted at this time. Select a proper name and color for the object.

In the treeview, open the subbranches of ‘Materials’ by clicking on the small ‘+’ sign. The materials in your configuration are now visible as treeview items, including the one you want to enter into the database.

Now right-click the treeview item ‘Optical constant database’ so that the content of the database appears on the right side.

Finally, drag the treeview line of the wanted material to the area on the right which displays the database items, and drop it there. You will have to answer a few questions about the object generation (i.e. program version) of the database item (select a version that every potential user of the database can read), your name and a database comment. Once you have answered all questions the new database item is available for future use.

Absorption

How does the software compute the absorption coefficient?

When the software re-computes optical constants, the so-called dielectric function is computed first. This material quantity (a complex number with real and imaginary part) connects the electric field of the light wave to the polarization that is caused in the material.

In order to compute the reflection and transmission properties of interfaces between two adjacent materials, the complex square root of the dielectric function is needed. This is called the refractive index. The real part is usually denoted as n, the imaginary part as k. Whereas the real part contains information about the speed of light in the material, the imaginary part is responsible for absorption.

The absorption coefficient alpha, finally, is the exponent of the intensity decay of a light wave traveling through the material, i.e. the intensity decays proportional to exp(-alpha*x) where alpha = 4*pi*k*wavenumber. The wavenumber is the inverse of the wavelength, usually measured in cm.

Master model

The list of materials offers the object type ‘Master model’. What’s that?

Master models are based on the object type ‘Dielectric function model’, i.e. they are used to compute optical constants using a user-defined set of susceptibility terms. In addition, master models have built-in so-called master parameters (you can use up to 6 of them) which can be used to compute selected parameters of the optical constant model as ‘slave parameters’.

A typical application of a master model is this: Suppose you are producing an oxide by a deposition process which can end up in various oxygen concentrations in a layer. If you describe the optical constants with an OJL model, the OJL parameters like bandgap or strength will then depend on the oxygen content of your material. In such a case you can define a master parameter ‘Oxygen content’ and compute the values for the bandgap and strength based on the oxygen content of a particular sample. In order to do this you must know the relations, of course. You can apply user-defined formulas (bandgap vs. oxygen content, for example) or lookup tables which you can generate after a batch analysis of several samples with different oxygen content.
Sometimes it is convenient to apply master parameters just to re-scale parameters. For example, if you do not like to enter bandgaps in wavenumbers, you can define a master parameter that gives the bandgap in eV, and then re-compute the OJL bandgap (which must be specified in wavenumbers for historical reasons) as a slave parameter (like OJL_bandgap = bandgap_eV* 8065).

Warning:
The SCOUT and CODE software contain a list of global master parameters in their treeview which are used to connect and control any parameter of the optical model in these programs. Please try not to mix up global master parameters and the individual master parameters of master models.

Model selection

How do I select the right model for the optical constants?

Selecting appropriate optical constant models with the right number of parameters is difficult and requires some experience. The choice depends – first of all – on the material and also on the spectral range of interest.

In the infrared the choice is rather easy: Use a constant refractive index, and add for each clearly visible vibrational mode a Kim oscillator. If you have free charge carriers (i.e. you deal with a metal or a doped semiconductor) you should add a simple Drude model (in case of highly doped semiconductors use an enhanced Drude model instead).

In the NIR, visible or UV the right choice is not so simple. Here you can be guided by the following rules of thumb:

Metals:
Use a constant to represent high energy interband transitiions. For every interband transition causing structure in the wanted spectral range use a Tauc-Lorentz or an OJL term. Take a Drude model for the free electrons.

Semiconductors (crystalline):
Combine a constant and Tauc-Lorentz terms for interband transitions. Add a Drude model for low doped materials. In the case of high doping levels use an extended Drude model.

Semiconductors (amorphous):
Setup a model like for crystalline semiconductors (see above) but replace the Tauc-Lorentz terms by OJL terms.

Oxides and Nitrides:
Combine a constant and an OJL term. If the OJL term alone cannot generate the right absorption and dispersion, you should add a harmonic oscillator in the far UV (resonance frequency 60000 1/cm, oscillator strength in the range 10000 … 100000 1/cm, damping 1 1/cm). In the fitting procedure the harmonic oscillator parameters should be kept fixed with the exception of the oscillator strength.

Organic materials:
Combine a constant, an OJL model and Kim oscillators. Whereas the OJL model is used to describe the ‘fundamental absorption’ in the UV, the Kim oscillators should represent absorption bands in the visible and NIR.

!!! Please note that OJL and Tauc-Lorentz terms may not be inserted in the susceptibility list as the other models. Instead, they have to be used within a KKR susceptibility object. !!!

Import n and k data

How can I import tables of n and k data and use them in SCOUT or CODE?

Open the list of materials and generate a new object of type ‘Imported dielectric function’.

If you have a text file with 3 columns (like wavelength, n, k or energy, n, k) open the new object and execute the local command ‘Import’. In the file dialog you should set the file type to ‘n and k from data table (x,n,k)’. You will be asked to specify the spectral unit (nm, eV, 1/cm, …). After the data import you should use the menu command ‘Property/Refractive index’ to visulize the imported data.
If you have an Excel table of the data (a data block with columns of the spectral position, n and k), you can import the Excel table into the workbook. In the object tree view, right-click the workbook and use the ‘File/Open’ command of the workbook (or copy & paste from Excel directly). Select the cell in the workbook where you want to start reading the data – this should be the first spectral position (usually the first wavelength, wavenumber or energy value). Go back in the treeview to the material object that wants to read the data (right click on the corresponding treeview line) and execute the lcoal menu command ‘Workbook/ Import x,n,k’ of the material object.

When you are finished importing the data and you have adjusted the graphics of the object (set an appropriate title, …) you can enter the new material into the database. First right-click the treeview item ‘Optical constant database’ and then drag&drop the material from the treeview into the database window on the right side.