Technical Issues - Index temperature dependencen,k vs. temperature data are
generally not available and will Temperature variations bring about n,k variations causing spectral shifts in optical coatings. Several approaches are supported by FilmStar. We can use dispersive index files corresponding to particular temperatures and/or implement temperature dependence thermo-optic coefficients dn/dT, dk/dT.
One approach is to simply create and store (using program INDEX) dispersion files corresponding to different temperatures. A user might, for example, store data for TiO2 at 150 deg as file TIO2-150. The dispersion files become referenced in the Film Indices dialog as shown below for material H. When considering index variations,
the design must be
|
BK7 | 2.3E-6/°K (bulk) |
TiO2 | -1.2E-4/°K |
SiO2 | 9.6E-6/°K (bulk) |
Al2O3 | 1.3E-5/°K (bulk) |
HfO2 | 5.8E-6/°K (doped) |
MgF2 | 8.8E-7/°K (bulk) |
Another approach is to use a FilmStar BASIC program to generate new index tables. In the following example (included in FilmStar installation and in basic.zip), index file 'TiO2' (room temperature, say 23°C) is processed into two new files: 'TiO2 +40C' and 'TiO2 -10C'.
' Program IndexTempVar.bas for FilmStar INDEX ' Copyright 2009 FTG Software ' Applies thermo-optic coefficient to n values ' NOTE: This model assumes a constant index dn/dT ' variation with temperature deviation from 23°C Option Base 1 Option Explicit DefInt i-N DefSng A-H, O-Z Public fName$, Coeff
Sub Main Dim s$ Const Title$ = "Index Adjust" On Error Resume Next fName$ = IndexName$ If fName$ <> "" Then Coeff = Val(InputBox(fName$ & " thermo-optic coefficient?", Title$, s$)) If MsgBox("Apply T-O coefficient " & Format$(Coeff, "0.00E+0") & _ " to index table " & fName$ & "?",vbQuestion + vbYesNo, Title$) = vbYes Then If nIndex > 0 Then TableModify MsgBox "New files (+40°C, -10°C) saved",vbInformation, Title$ Else MsgBox "Unsuccessful operation",vbExclamation, Title$ End If End If Else MsgBox "No index file specified", vbExclamation, Title$ End If End SubSub TableModify Dim i ReDim xIndx(1, 1) xIndx = nkTable ' original index tables at 23°C (room temperature) For i = 1 To nIndex ' increase 17°C xIndx(i, 2) = xIndx(i, 2) + 17 * Coeff ' + 40°C Next i nkTable = xIndx FileSave fName$ & " +40C" For i = 1 To nIndex ' decrease -50°C xIndx(i, 2) = xIndx(i, 2) - 50 * Coeff ' - 10°C Next i nkTable = xIndx FileSave fName$ & " -10C" End Sub
Copyright © 2023 FTG Software Associates
Last updated on
January 31, 2023