Technical Issues - Index temperature dependence

n,k vs. temperature data are generally not available and will
require a series of measurements. Click here to learn more.

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 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
characterized by physical rather than optical thickness. 

Facilitating switching between temperatures, entries displayed in the Film Indices dialog can be stored on disk independently of the thin film design itself. This is accomplished in several ways:

  1. Set DESIGN to use FILM mode instead of FILM Archive mode. Then Film Indices are loaded and saved via File Open and File Save As.

  2. If FILM Archive mode is utilized (recommended), Film Indices can still be opened with shortcut keys <Alt+Ctrl+I> and saved with <Alt+Shift+I>. Or, if  Augment File Open/Save is checked in File Configuration Preferences, the usual File Open and File Save As dialogs support Film Indices (.inw) files in addition to FILM Archive (.faw) files.

Other ways of including temperature dependence rely on User-Defined Index Functions. Suppose we know that the index of refraction of a material at 20 is 2.453 and the temperature dependence coefficient dn/dT = 11.5*10^-6/C. If the wavelength range of interest is restricted so that dispersion can be neglected, we might use the following Index Function to specify material M at 90C in the Film Indices dialog (see above). While variable A could be replaced by constant 2.453 in the formula, it is more general to utilize A as a coefficient.

Alternatively, suppose we need to use dispersion, but can assume that the temperature dependence dn/dT is relatively constant over the wavelength range of interest. Assuming once again that there is no absorption (k=0) we define User Index Function TMPTR2 which specifies material N at 90C in the Film Indices dialog.

Suppose we have dispersion curves for 20C and 150C and believe that intermediate values follow a linear relation. In this case, Index Function TMPTR3 specifies material P at 90C in the Film Indices dialog.

Approximate thermo-optic coefficients are given below.
These were obtained from various sources and, in some cases, apply to bulk materials.

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, index file 'TiO2' (room temperature, say 23C) 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 23C
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
                MsgBox "New files (+40C, -10C) saved",vbInformation, Title$
                MsgBox "Unsuccessful operation",vbExclamation, Title$
            End If
        End If
        MsgBox "No index file specified", vbExclamation, Title$
    End If
End Sub
Sub TableModify
    Dim i
    ReDim xIndx(1, 1)
    xIndx = nkTable
    ' original index tables at 23C (room temperature)
    For i = 1 To nIndex
        ' increase 17C
        xIndx(i, 2) = xIndx(i, 2) + 17 * Coeff  ' + 40C
    Next i
    nkTable = xIndx
    FileSave fName$ & " +40C"
    For i = 1 To nIndex
        ' decrease -50C
        xIndx(i, 2) = xIndx(i, 2) - 50 * Coeff  ' - 10C
    Next i
    nkTable = xIndx
    FileSave fName$ & " -10C"
End Sub

  Back to Technical Issues