Category Archives: CODE

Special computations: Parameter variation enhanced

CODE 3.98

The capabilities of ‘parameter variation’ objects in the list of special computations have been enhanced. You can now define ‘offset functions’ which are computed once before the parameter variation is executed. The example below discusses an application of this feature.

Suppose you are computing the dependence of color coorinates a* and b* on layer thicknesses. For each layer you generate an ‘arrow diagram’ showing how the position of the layer stack in the a*-b*-plane changes with thickness modifications. Superimposing 3 of such diagrams would give a graph like this:

originalUnfortunately the model does not perfectly reproduce the measured reflectance spectrum. As a result, the ‘measured’ color position is different from the simulated one. In this situation you might want to display the arrows at the ‘measured’ color position, believing that the direction and the size of the arrows will be similar there. A graph like this would show operators where they are with their real product and where they would go with thickness variations.

You can generate the desired offset the following way. Compute a* and b* of the simulated spectrum in the list of integral quantities as item 1 and 2, and compute the a* and b* of the measured spectrum as items 4 and 5. In function definitions you can refer to these numbers as iq(1), iq(2), iq(4) and iq(5), respectively. The dialog for the first parameter variation object (modifying the TiO2 layer thickness) would look like this:

sc_parameter_variation_dialog

Defining similar offsets for the other two layer thickness variation objects you will get a shifted arrow graph, centered at the color position of the measured reflectance:

shiftedObviously, you should use this feature only in cases where you are sure that the applied offset is justified and does not lead to wrong conclusions.

 

 

More flexible layer stack view

Introduced with object generation 3.97

Visualizing a layer stack in views is now more flexible. Instead of representing each layer as a rectangle of constant height (i.e. the same height for all layers) the graph can now better visualize the proportions by drawing the rectangles with heights proportional to the thickness of the layer.

The graphs below show the difference. Up to now layer stack views looked like this:

16_3_design_0

Now you can have this:

16_3_design

This kind of drawing makes it much easier to compare layer stacks:

16_3_comparison

The new kind of drawing is activated by a click on the layer stack in the view. You will be asked for the thickness that the height of the base rectangle should represent. The value must be specified in micrometers – if you set a value to 0.075 the base rectangle shows 75 nm of the stack.

Since layer thickness values in stacks with thin films and (incoherent) thick layers are very different, it is not possible to see thick layers and thin films in one graph. Thin films with thicknesses 100000 times smaller than thick layers will simply not be visible (like in real life). If you still want to show the thin film part of the stack with the new feature you have to use 2 layer stacks: one for the thin film coating alone and the second one for the complete layer stack. In this case you have to insert the coating as ‘included layer stack’ in the second one.

Old filename menu items

Object generation 3.96

The management of the menu items that show the last accessed files has been improved. Since the list of files is now stored in a different way the menu items are all empty when you change to the new version. During your work the items will fill up again.

Fit sheet resistance values

CODE 3.96

A new OLE command has been implemented: import_measured_sheet_resistance(a_value : float)

Use this command to pass a measured sheet resistance value to CODE. This is useful if you would like to use this value in a fit, in addition to measured optical spectra.

The value is passed to the list of integral quantities. The list must contain an object of type ‘Sheet resistance’ with the name ‘Sheet resistance fit’ – only in this case the value is passed as target value.

In order to use this value you must set the option ‘optimize’ of the sheet resistance object. If you want to fit both spectra and sheet resistance, you must set the global fit option ‘Combine fit deviation of spectra and integral quantities’.