Technical Issues - Optimizing Two Designs Simultaneously

We were asked how FilmStar might handle a design in which L*a*b* color values are the same whether or not a 30 nm ITO layer is included. The coating is on glass and reflectance is calculated with light incident on the uncoated substrate. This exercise illustrates several points of interest for advanced users. The two files you need to reproduce our work are in ZMAT.zip (DESIGN 2.61.2249 or newer required).

Unzip and copy ZMAT.faw to c:\Winfilm\Designs and ZMAT.vts to c:\Winfilm\Workbook. Open FILM Archive ZMAT.faw and FilmStar Workbook ZMAT.vts. Click Optimize in the Workbook and watch the L*a*b* values equalize (almost). Note the following:

  1. n,k values are contained within FILM Archive ZMAT.faw. This eliminates the need to download *.itw dispersion files. Note the  Archive n,k  status box when you open the file.
  2. DataType 24 = 8 (single column) + 16 (no auto-pasting when clicking the Workbook window).
  3. Multi-line macros are supported by extending named region Macro accordingly.
  4. BasExec directly executes BASIC code. This is convenient for short Sub Main...End Sub programs. The pipe symbol "|" indicates line separation. Since there are no multi-line statements (e.g. If...Then), pipes can be replaced by colons ":". For more complex programs, use BasRun.
  5. In the Layers Mode editor, use Edit...Ignore Layer to temporarily remove 30I from the design. This is more convenient than actually deleting the layer.

A most powerful FilmStar feature is the ability to run BASIC macros during optimization. During each iteration the film stack is evaluated twice: layer 1 set to 0 nm and set to 30 nm. The actual BASIC macros are shown below. (BasExec automatically adds Sub Main and End Sub.)

Sub Main
    WbResetLoop
    SetLayerThk 1, 0 'layer 1=0 nm
    Calculate '380-780 x5 nm
    GetCieData ya!, yb!, yL!
    WbSetNum "$F$3", ya
    WbSetNum "$G$3", yb
    WbSetNum "$H$3", yL
End Sub
Sub Main
    SetLayerThk 1, 30 'layer 1=30 nm
    Calculate '380-780 x5 nm
    GetCieData ya!, yb!, yL!
    WbSetNum "$F$4", ya
    WbSetNum "$G$4", yb
    WbSetNum "$H$4", yL
End Sub

During optimization the Objective (defined in cell $F$7) is reduced from 20.36 to 0.63. A keen FilmStar user will want to repeat with different starting designs and various objectives and constraints.


Starting design: AIR 30I 20L 20H 20L 20H 20L 1S AIR
6 Layer Optimized: AIR 30I 6.99L 21.03H 44.49L 8.5H 18.84L 1S AIR

5 Layer Opti
mized: AIR 6.99L 21.03H 44.49L 8.5H 18.84L 1S AIR
Approximate n,k tables: I:ITO, L:SiO2, H:TiO2, S (substrate):BK7

Optimized designs in FSPlot zoom mode
(Setup...Plot %R + %T checked)

      
Reflectance color differences in initial and optimized designs
(Circle shows 5 layer design)