Whenever refering to "Optical", please cite a reference to the following publication: E.Centurioni, "Generalized matrix method for calculation of internal light energy flux in mixed coherent and incoherent multilayers", Applied Optics, Vol. 44, No. 35 (2005), pp 7532-7539.
Download source code from GitHub
Old version for Python 2 can be found here
Download and install Python. Please note: during installation select the option "Add python to PATH".
Optical should work with any version of Python 3. However, if you have problems with the last version of python, you can use this version python-3.10.8-amd64.exe.zip, that has been succesfully tested.
Open the command prompt and digit "pip install matplotlib wxpython msvc-runtime"
Download Optical as zip file from GitHub, uncompress and double-click on the file "optical"
Here is a video showing how to to install optical.
We assume the reader has some basic knowledge of optics and it is confident with terms like Reflectance, Transmittance, wavelength etc.
Optical is a software that can compute theoretical Reflectance (R ), Transmittance (T ) and internal light energy flux of a multilayer. A multilayer is a structure composed of several isotropic layers in intimate contact. A mirror is a simple example of multilayer: we have a glass (let's say 1 mm thick) then we have some metal on one side of the glass (let's say aluminium, 500 nm thick) for a total of two layers. We will use this multilayer to show how Optical works.
O.K., first of all I assume you have already launched Optical (see the Optical web page for instruction), you should see the following
Let's create a new empty Multilayer clicking on File ... New Multilayer. The button "Edit M" is active now, we can edit the multilayer clicking on it, the following window should appear
First of all we note that actually two layers already exist, one is the "TopMedium" and the other is the "BottomMedium". These two layers represent the media on the top and on the bottom of the multilayer. These media are usually air, but can be any other medium (the top must be transparent). The light source is assumed to be in the TopMedium. To add a new layer in between first select the TopMedium then click "Insert". You can verify that now there are 3 layers, a new layer named "Untitled" is now in position 1. You can give to the layer the name you want (Glass), you must define the thickness (1 mm = 1E7 A), you must chose if you want treat the layer as coherent or as incoherent (the glass is very thick, so choose incoherent) and finally you must choose an appropriate index file to represent the material (Click on Browse then choose "glass.in3"). The index file is the file containing the index of refraction of a specific material. Next we have to insert the aluminium layer. Select the glass layer and then click on insert button (the insert button insert a new layer at the bottom of selected layer). Use these values for aluminium: thickness = 5000 A, film is coherent, index file = aluminum.in3. If you like you can give a name to the multilayer (Mirror). Click on button OK to confirm, you should come back to the first windom.
To compute R and T spectra of your multilayer you can choose the incidence angle (on the bottom-right) then click on the button "Compute", you should get a graph as follows.
Every time you compute R and T these date are copied in a text file named "RT.dat". Of course you can save your multilayer then reload it later. If you like more or less points to be computed you can configure this in the file "settings.txt".
Let's say we want to know the spectral distribution of light absorbed in the glass. Click on the button "E Flux", the following window should appear
select the layer you want (glass) and click on button compute under "Layer absorption", you should get the following result
where the black line represent the fraction of light absorbed in the glass. Every time you compute light absorption these data are copied in a text file named "A.dat".
Let's say we want to know the spectral distribution of light energy flux in the aluminum layer at a depth of 50 A. Click on the button "E Flux", select the layer "aluminium", under "Energy Flux" insert the depth (50) and click on the associated compute button. Every time you compute energy flux these data are copied in a text file named "Flux.dat".
An index file is a simple text file with extension *.in3 containig information about n e k of the material. You can have a look to the existing index files after software installation in directory /n. To show the structure we use as example the index file "air.in3"
"Air" first line is free, for comments and information
100 200000 range of wavelenght, min max in angstrom
2 number of data point for n, here we have 2 points
100 1 first value for n, wavelength is 100 n is 1
200000 1 second (and last) value for n, wavelength is 200000 n is 1
2 number of data point for k, here we have 2 points
100 0 first value for k, wavelength is 100 k is 0
200000 0 second (and last) value for k, wavelength is 200000 k is 0