Tag Archives: optical constants

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.

Gradient?

How do I describe a gradient of optical constants?

A gradient of optical constants can be implemented in an optical model using the layer type ‘concentration gradient’.

The strategy is this:
Define an effective medium, i.e. a mixture of 2 materials, using one of the simple effective medium objects Bruggeman, Maxwell-Garnett or Looyenga. The best choice for gradients is Bruggeman, also known as EMA. The only parameter to describe the topology of the mixture is the volume fraction.
In the next step, insert a concentration gradient layer into the layer stack and assign the effective medium material to it. The gradient will be described by a user-defined function that defines the depth dependence of the volume fraction from the top of the layer to the bottom. Select the layer and use the Edit command to access the formula definition window.
Finally, you go back to the layer stack definition window and specify how many sublayers should be used to sample the gradient. Be careful not to take too many sublayers – this could increase the computational times a lot. On the other hand, be careful not too ‘undersample’ the gradient – if you increase the number of sublayers by 1 the spectra should not change significantly.

Please consult the manual for further details …

Improvement of Gervais oscillators

Certain parameter combinations of Gervais oscillators may lead to unphysical optical constants (i.e. negative imaginary part of the dielectric function). Physical meaningful solutions satisfy a sum rule for the damping constants which may be used to steer the fit into the direction of ‘good’ solutions.

The “check sum” (sum of the difference of LO damping and TO damping for all oscillators) can now be obtained as optical function. Use the optical function “my_material (Gervais_condition)” to retrieve the current value of the check sum.

In order to make use of this number in a fit you can proceed like this(this hint will work in CODE only): Generate an integral quantity of type ‘function of int. quant.’ and call it ‘Gervais check sum’. As formula to compute the value use the term “of(1)” (here it is assumed that the check sum is the first optical function). So the integral quantity is the check sum itself.

Now define a penalty shape function for this integral quantity. It should be 0 if the check sum is positive, and get large for large negative values of the check sum. An expression like “abs(y)*step(-y)y)” will do the job (in penalty shape functions for integral quantities the symbol “y” refers to the current value of the integral quantity). This way large negative values of the check sum are severely punished whereas positive values do not contribute to the fit deviation at all.

Finally activate the option “Combine fit deviations of integral quantities and spectra” in the fit options dialog (File/Options/Fit). This lets CODE simultaneously minimize the difference of measured and simulated spectra and the fit deviation of the integral quantities (which is in this case the penalty for an unphysical check sum). Eventually you have to experiment a little bit with the weight of the ‘Gervais check sum’ in the list of integral quantities in order to get a good fit.