Simplex-Algorithm Analysis Programs

The "Optic" program in the previous section is the starting point for the analysis of film-growth data. Using it one can get a good idea of N and K values that give a reasonable fit to ellipsometric data. The Simplex Algorithm (click to see a graphical example of its application) provides an efficient method for refining N and K values for the film (and the substrate if appropriate). If two parameters (such as N and K of the film) are varied, the simplex is a 3-vertex figure (a triangle) in 2-dimensional N-K space (a plane). (In general, the Simplex has one more vertex than the number of parameters being varied.) The triangle moves around the N-K plane seeking a (local) minimum in the deviation of the data from a film-growth curve. The measure of deviation is taken to be the mean square deviation of the data from the "closest" points on a constant-index growth curve. The "closest" points may be just that on an equally scaled P-A plot, or the P deviations may be weighed more lightly than A deviations, particularly at A values near 0 or 90 degrees, to take into account the difference in the sensitivity of a null ellipsometer to P and A variations.

The program has three data sets: (1) measurements (in air) on a variable-thickness silicon nitride film on a silicon substrate, (2) measurements made during the growth of a polyaniline film on platinum in an aqueous electrolyte, and (3) measurements made during the removal of the reduced film in the vanadium oxidation experiment described in the next section (a file of 50 points recorded at 20-second intervals). Trial values of N and K are entered along with the data and are displayed in the textboxes. I suggest you start with 'Data1'. Click on 'Tplot' to see a film-growth curve with the trial values. You can fit these data by eye about as well as the algorithm can. Try entering values for 'Nf' in the textbox and click on 'Tplot' to see the corresponding curve. Next reload the data (i.e. reset the trial values), click on the 'Nf' to tell the algorithm to vary 'Nf' (and only 'Nf'), and click on 'Smplx'. The initial trial curve is plotted in green, the fitted curve in blue. Click on 'Print' to display the thickness values and P-A deviations determined by the analysis. You can allow 'Ns' to vary along with 'Nf', and if you really want, you can let the K's vary also. For the polyaniline data, I suggest you vary the N and K of the film and leave the substrate alone. You are, of course, free to vary anything you want, but remember that the Simplex algorithm only does arithmetic. Assessments of significance are rarely statistical in nature, and the polyaniline data provide a case in point. The film is deposited under conditions that do not guarantee uniformity in thickness. If the variation in thickness is a few percent, the effect on the optical data may not be very great when the film is thin, but it becomes progressively more pronounced as the film grows. The third data set also consists of measurements on an optically absorbing film, and again I suggest you vary the N and K of the film and leave the substrate alone. In this case, 'Print' displays results for every third point.

For most data sets there is other information that can be used to test the significance of the results of the Simplex analysis. In the case of the polyaniline data, the data form a time sequence, and film thickness should increase linearly with point number. My advice to you is this: use the algorithm with caution, vary the minimum number of parameters, and use whatever additional information is at hand to test the significance of the results.

The only question you are likely to have about the program is "what's going on in the upper right corner?". The range of variation of the parameters is being plotted on a log scale on the x-axis, and y increases downward with time (the plot is a "stripchart" of sorts). The program stops when the simplex has shrunk to the point where the maximum parameter variation is less than 0.0000001. On the logarithmic plotting scale, this is the line at the left of the "stripchart".

Java Source   Liberty Basic Source

The Simplex Algorithm can deal just as easily with transparent films whose optical properties differ in directions normal and transverse to the surface as it can with absorbing films. The underlying optical equations differ, but both have two parameters to be varied. Almost all anodic oxide films are optically anisotropic to some extent because they are grown with an extremely high anodizing field normal to the surface. The most obvious evidence of anisotropy in a transparent film is the failure of ellipsometric data to retrace the first cycle as the film continues to grow, and analysis techniques commonly make use of offsets between cycles to determine optical constants. The Simplex algorithm provides a better approach to the analysis of data on anisotropic films, and has the added advantage that it can deal with oxides that break down before the end of the first cycle. Mind you, 'the more data the better' is always true, no matter what the analysis technique, and it must be noted that the anisotropic Simplex analysis requires the optical instrumentation to meet severe limits on systematic errors.

Two data sets are built into the program, the first for tungsten oxide, the second for vanadium oxide, both for anodization in an organic electrolyte, and both spanning only a single cycle (or part thereof). The vanadium oxide data set consists of 63 points recorded at 12-second intervals in the vanadium oxidation experiment described in detail in the next section. Both data sets have substrate indices determined by direct measurement on a bare surface, and the initial trial values of Nx (transverse) and Nz (normal) are come from isotropic analysis, and are set equal. (To see the results of the isotropic analysis, click on "Fit" after selecting "Data1" or "Data2" without first clicking on checkboxes to vary parameters, and "Print" the result.)

I suggest that you first vary only the layer parameters, and note the extent to which the fit improves for each data set. Next you can try varying the substrate parameters to see how much further the fit can be improved. The "goodness of fit" gives some indication of the significance of the results, but complementary data provide a better test. For example, varying the substrate index varies the position of the thickness origin. Measurements of parameters (such as reciprocal capacitance) that are proportional to film thickness can also be used to locate the thickness origin, and hence test the validity of the Simplex analysis.

Java Source   Liberty Basic Source

If measurements over a range of film thicknesses are not possible, often measurements over a range of angles of incidence can be used to determine values for film thickness and refractive index. The method works best on a reasonably thick transparent film, but it can be tried on thin films and bilayers. The program restricts the number of variable parameters by requiring the films to be transparent and the substrate to have known optical constants. The other parameters are displayed in textboxes, and can be varied by clicking on their checkboxes. There are two data sets: (1) a thick film (thought to have L = 1148 nm and N = 1.46) on a transparent substrate (N = 1.75), and (2) a plastic bilayer on silicon (component layers 100 nm thick, the inner one of lower index). The fitting process in the two previous programs was aimed at passing a curve as close to the data points as possible. Here the fitting process is aimed at getting the highlighted points as close to the data points as possible - the curve itself is just a visual aid.

Java Source   Liberty Basic Source

Back to Index